Опубликован: 21.08.2007 | Уровень: для всех | Доступ: платный
Лекция 4:

Машинно ориентированное программирование

< Лекция 3 || Лекция 4: 123 || Лекция 5 >

При работе со словарем, рассматриваемым как список слов, можно применять отношение порядка:

ORDER    - в порядке поиска

Имеются средства работы с событиями, исключениями (0 - успех) и прерываниями:

CATCH - THROW

Можно создавать метаопределения:

CREATE DOES>

Таким образом обеспечены базовые функциональные возможности, характерные для систем программирования для языков высокого уровня.

В отличие от языка Forth предложенный Дж.Шварцем машинно независимый машинно ориентированный язык программирования Little включает средства обработки битовых строк в привычную языковую схему языка Фортран. Сохраняется обычная система подготовки и понимания программ, меняются лишь операции по обработке данных и набор встроенных типов данных. Данные - это битовые строки произвольной длины, а операции обеспечивают манипулирование битовыми строками как на уровне отдельных подстрок и битов, так и на уровне крупных, совместно используемых блоков и структур данных. [ [ 32 ] ]

X = 23
.f. 1,10, a (2)  = 44   /*  в поле с 1 по 10-й разряд записать 44 */
.ch. 5, text = 'A'      /*   в 5-й символ текста записать 'A' */
Листинг 4.1. Примеры операторов присваивания в языке Little
subr START;          /*  Разбор оператора присваивания  языка Little */
   size SYM (48);
      call SCAN (SYM);    /*  Чтение первого символа */
      call ASSIGN;         
   return;
end;

subr ASSIGN;   /* Разбор оператора присваивания,           
                              первый символ которого уже прочитан процедурой SYM */

   if TC(SYM).EQ. TC ( '.' )            go to ASS;
   if TC(SYM).EQ. TC (NAME) go to NAME1;
                                                     ERROR;

/ASS/    call SCAN (SYM);  /* левая часть*/
          IF TC (SYM).ne. TC (PREF) ERROR;
             call SCAN (SYM);

          IF TC (SYM).ne. TC ( '.' ) ERROR;
              call SCAN (SYM);
              call SCAN (PREF); /* f, s, e, ch */
                                               /* выделение поля из левой части */
              call SCAN (SYM);

     IF TC (SYM).ne. TC (NAME) ERROR;
                                                       go to NAME1;

/NAME1/    call SCAN (SYM);
                if TC(SYM).EQ. TC ( '=' ) go to NAME2;
                if TC(SYM).EQ. TC ( '(' ) go to RI-PAR;
                                                         ERROR;

/RI-PAR/      call SCAN (SYM);
                IF TC (SYM).ne. TC (EXPR) ERROR;
                      call SCAN (SYM);
                IF TC (SYM).ne. TC ( ')' ) ERROR;
                     Call SCAN (SYM);
                IF TC (SYM).ne. TC ( '=' ) ERROR;
                                                        go to NAME2;  

/NAME2/      call SCAN (SYM);
               IF TC (SYM).ne. TC (NAME) ERROR;
           return;

/NO/   end;
Листинг 4.2. Программа синтаксического анализа операторов присваивания написанная на языке Little.

Средства машинно ориентированного программирования обычно доступны в системах программирования для языков высокого уровня в виде операций или команд, образующих линейные участки. Язык Little не получил особого распространения, хотя был успешно применен для эффективной реализации языка сверх высокого уровня Setl. Принятые в нем решения представляют интерес как эксперимент по разработке многоуровневых систем программирования.

< Лекция 3 || Лекция 4: 123 || Лекция 5 >
Федор Антонов
Федор Антонов

Здравствуйте!

Записался на ваш курс, но не понимаю как произвести оплату.

Надо ли писать заявление и, если да, то куда отправлять?

как я получу диплом о профессиональной переподготовке?

Илья Ардов
Илья Ардов

Добрый день!

Я записан на программу. Куда высылать договор и диплом?

Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989