Важная информация

User Tag List

Показано с 1 по 10 из 48

Тема: Паскаль о котором не знали...

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Activist Аватар для ezswift
    Регистрация
    26.02.2011
    Адрес
    Москва
    Сообщений
    258
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    25
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Паскаль о котором не знали...

    Сага о CLSN Pascal.
    Часть1.

    Снова мне хотелось бы представить Вам новый древний язык программирования для Атари.

    Прежде всего - это Паскаль.
    Затем, Паскаль ВПОЛНЕ совершенный!
    И, наконец, он - Атарьский. (* Я имею ввиду, что системные вещи Атари в нём весьма заметно реализованы *).

    (* Вот так в CLSN пишутся комментарии (,в отсутствии фигурных скобок...) *)

    Как Вы понимаете, и CC8 и PL65 и CLSN являются ПРЯМЫМИ наследниками ПЕРВОГО языка программирования - ALGOL. Для нас значимо, что синтаксис у наследников заимствует большинство принцыпов синтаксиса родителя.
    Уточню, НЕ САМОГО СИНТАКСИСА, А ПРИНЦЫПОВ!

    Что же внесено нового после ALGOL'а?
    IMHO:
    PL65 - Эклектичность = бессистемная всеядность. (всё новое, что тогда было...)
    CC8 - Приверженность к C = (максимальная безошибочность чтения C текстов, как источника логично-короткого, но полноценного синтаксиса для переносимости.)
    CLSN - Приверженность к Pascal = (максимальная предобработка текстов для беспроблемной их компиляции при условии точного соблюдения правил языка.)

    Откровенно, мне до лампочки на каком языке писать. Хочется найти СВОЙ!
    И CLSN близок к этому. Причин необычайно много! О них я расскажу позднее.

    Давайте, будучи знакомыми с моими ранее опубликованными постами об ассемблере, напишем программку для инверсии строки символов со скоростью ассемблера.
    (* Кстати, в CLSN есть встроенная функция инверсии символов с клавиатуры!
    Но это не то, что нам надо... *).
    Мы хотим - просто взять строку (либо ATASCII, либо INTERNAL) и преобразовать её в инверсную. Здесь строка = короткая (0-255) символов.

    Вот код:

    Код:
    (* Global *)
    var
      _s_temp: string;    (* Temporary global *)
    
    function invStr(s: string): string;
    begin
      _s_temp := s; (* Copy the local to an absolute memory location *)
    
      inline($ac/_s_temp/ (*     LDY _S_TEMP   *)
             $f0/$0c/     (*     BEQ XIT       *)
             $b9/_s_temp/ (* NXT LDA _S_TEMP,Y *)
             $49/$80/     (*     EOR #$80      *)
             $99/_s_temp/ (*     STA _S_TEMP,Y *)
             $88/         (*     DEY           *)
             $d0/$f3);    (*     BNE NXT       *)
                          (* XIT               *)
      invstr := _s_temp;  (* Return the value  *)
    end;
    
    (* Main Procedure *)
    procedure main;
    (* Local *)
    var
      s: string;
    
    begin
      repeat (*repeat this ...*)
        writeln('Enter some string:'); write('>'); (*prompt symbol*)
        readln(s); (*reads line*) writeln; (*place it on screen as input*)
        writeln(invstr(s)); (*place on screen the result*) writeln; (*skip line*)
      until (s=''); (*... to the end of line, looking at chars *)
    end;
    
    (* Calling *)
    begin main; end.

    Как Вы видете, CLSN не различает Прописных и Строчных символов.
    Последний раз редактировалось ezswift; 22.06.2018 в 22:26.
    MAC и PC - это всего лишь периферия для Атари...
    130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Компилятор языка Паскаль - планы на будущее
    от Bolt в разделе Программирование
    Ответов: 212
    Последнее: 13.10.2019, 17:12

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •