Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемwww.novsu.ru
1 История создания и развития ДССП: от Сетуни-70 до троичной виртуальной машины А.А. Бурцев, С.А.Сидоров НИИСИ РАН, НИЛ ЭВМ МГУ
2 Аннотация ДССП, первоначально созданная в НИЛ ЭВМ МГУ под руководством Брусенцова Н.П., на протяжении ряда лет была реализована на мини- и микрокомпьютерах самой разнообразной архитектуры и в различных операционных средах. ДССП, первоначально созданная в НИЛ ЭВМ МГУ под руководством Брусенцова Н.П., на протяжении ряда лет была реализована на мини- и микрокомпьютерах самой разнообразной архитектуры и в различных операционных средах. В докладе раскрываются цели создания системы, основные характерные черты и особенности различных версий ДССП, прослеживается эволюция языка ДССП, развитие системы команд ядра и состава компонентов интегрированной среды. Даётся сравнительная характеристика разновидностей сшитого кода, применяемых в различных версиях ДССП. В докладе раскрываются цели создания системы, основные характерные черты и особенности различных версий ДССП, прослеживается эволюция языка ДССП, развитие системы команд ядра и состава компонентов интегрированной среды. Даётся сравнительная характеристика разновидностей сшитого кода, применяемых в различных версиях ДССП. Представляется система программирования ДССП-ТВМ, позволяющая разрабатывать программы для троичной виртуальной машины. Представляется система программирования ДССП-ТВМ, позволяющая разрабатывать программы для троичной виртуальной машины.
3 План доклада 1. Общая характеристика системы 2. Первая версия ДССП 3. ДССП для компьютеров унифицированной архитектуры 4. Распространение ДССП на другие компьютерные платформы 5. ДССП для 32-разрядных микрокомпьютеров 6. Мобильная версия ДССП/С 7. ДССП в мире науки и современной компьютерной техники 8. ДССП для троичной виртуальной машины 9. Заключение 10. Библиография 11. Приложения. Примеры программирования на ДССП
4 1. Общая характеристика системы создана в НИЛ ЭВМ МГУ под руководством Брусенцова Н.П. итог развития миникомпьютерной архитектуры: Сетунь => Сетунь-70 => ДССП программно эмулируемый стековый процессор 1) два стека: арифметический и управляющий 2) команды структурированного управления (от Сетуни-70) 3) сшитый (threaded) код для внутреннего представления программы 4) внутренний интерпретатор сшитого кода интегрированная среда разработки: 1) легко доступная для освоения пользователю-непрофессионалу 2) диалоговый режим на всех стадиях работы 3) словарная организация как в системе ФОРТ (Forth) 4) простота расширения системы основные компоненты базового ПО системы: - словарь ядра - внутренний интерпретатор - внешний интерпретатор - компилятор - редактор текстов - отладчик
5 Словарная организация системы Словарная организация системы слово - любая последовательность печатных символов (без пробелов) словарь - совокупность слов, понимаемых системой (язык ДССП) предложение – последовательность слов, разделенных пробелами основной цикл работы системы – исполнение команд-предложений любое действие системы – выполнение слова. виды слов:примеры: 1) слова для выполнения вычислений+ – * 2) слова для манипуляции с данными в стекеE3 C2 D 3) слова для доступа к памяти и !W ! 4) слова для организации ветвлений и цикловIF+ BR- BRS DW DO RP EX 5) слова для построения тел новых слов: VAR VALUE, ; 6) слова, управляющие словарёмFORGET :: CLEAR 7) слова для загрузки и сохранения системыLOAD SAVE программирование в ДССП – это наполнение словаря SAVE – сохранение словаря и состояния системы LOAD – загрузка исполняемых команд-предложений из файла пример диалога: * : ^2 C * ; [новое слово для возведения в квадрат] * 5 ^2. 25 * VAR X [ новая переменная ] * 7 ! X [X:=7] * [вычислим X^2+3X+8] X ^2 X 3 * *
6 Характерные черты ДССП и ФОРТа Характерные черты ДССП и ФОРТа диалоговые интерпретируемые системы словарная организация системы относятся классу систем, функционирующих на основе интерпретации сшитого кода двухстековая архитектура - арифметический стек для хранения обрабатываемых данных - управляющий стек для сохранения адресов возвратов из процедур Бесскобочная запись арифметических выражений X Y – Z V + * [ (X-Y)*(Z+V) ] ( польско инверсная запись - ПОЛИЗ ) Отличительные черты ДССП (от ФОРТа) свой ассортимент слов базового словаря специфическая процедурная версия структурированных команд управления поддержка пошаговой нисходящей разработки программы принцип компоновки внутреннего представления слово в слово: одно слово исходного текста переводится в одно слово машинного кода
7 Команды структурированного управления поддерживают структурированное программирование на уровне сшитого кода нет команд перехода по меткам, только команды вызова процедур в качестве процедуры можно вызвать любое слово словаря параметрами процедуры служат значения, помещаемые в стек безусловные вызовы процедур: 1) это обычный (прямой) вызов слова 2) предусмотрена также и команда косвенного вызова слова, адрес которого передан через стек : PROC... [ адрес слова PROC ] EXEC [ вызывается слово PROC ] условные вызовы процедур – это команды ветвлений : - одиночное ветвлениеIF- IF0 IF+ - двойное ветвление BR- BR0 BR+ - тройное ветвление BRS - множественное ветвлениеBR многократные вызовы процедур – это команды циклов : - циклы с условием DW DO- LOOP - циклы с экстренными выходами DO RP EX EX- EX0 EX+ эти команды способствуют структуризации программы, т.к. требуют тела ветвлений и циклов оформлять как процедуры, т.е. записывать их в тексте программы в виде отдельных слов
8 Поддержка нисходящей разработки программ Поддержка нисходящей разработки программ Определение нового слова как процедуры: : P P1 P2 P3 … Pn ; [ определение новой процедуры с именем P ] в ФОРТе слова P1 P2 P3 … Pn должны быть уже известны а в ДССП слова P1 P2 P3 … Pn могут быть определены и позднее ФОРТ вынуждает строить программу только снизу-вверх ДССП позволяет определять слова в любом порядке и тем самым разрешает строить программу, сочетая методы сверху-вниз и снизу-вверх ДССП позволяет в тексте отразить древовидную структуру программы : : P PA PB … PX ; [ определение главной процедуры P всей программы ] : PA PA1 PA2 … PAk ; [ определение процедуры PA 1-го уровня ] : PA1 PA1a PA1b … PA1z ; [ определение процедуры PA1 2-го уровня ] : PA2 PA2a PA2b … PA2z ; [ определение процедуры PA2 2-го уровня ]... : PAk PAka PAkb … PAkz ; [ определение процедуры PAk 2-го уровня ] : PB PB1 PB2 … PBm ; [ определение процедуры PB 1-го уровня ] : PB1 PB1a PB1a … PB1z ; [ определение процедуры PB1 2-го уровня ] : PB2 PB2a PB2a … PB2z ; [ определение процедуры PB2 2-го уровня ]... : PBm PBma PBmb … PBmz ; [ определение процедуры PBm 2-го уровня ]... : PX PX1 PX2 … PXn ; [ определение процедуры PX 1-го уровня ] : PX1 PX1a PX1a … PX1z ; [ определение процедуры PX1 2-го уровня ] : PX2 PX2a PX2a … PX2z ; [ определение процедуры PX2 2-го уровня ]... : PXn PXna PXnb … PXnz ; [ определение процедуры PXn 2-го уровня ] : P PA PB … PX ; [ определение главной процедуры P всей программы ] : PA PA1 PA2 … PAk ; [ определение процедуры PA 1-го уровня ] : PA1 PA1a PA1b … PA1z ; [ определение процедуры PA1 2-го уровня ] : PA2 PA2a PA2b … PA2z ; [ определение процедуры PA2 2-го уровня ]... : PAk PAka PAkb … PAkz ; [ определение процедуры PAk 2-го уровня ] : PB PB1 PB2 … PBm ; [ определение процедуры PB 1-го уровня ] : PB1 PB1a PB1a … PB1z ; [ определение процедуры PB1 2-го уровня ] : PB2 PB2a PB2a … PB2z ; [ определение процедуры PB2 2-го уровня ]... : PBm PBma PBmb … PBmz ; [ определение процедуры PBm 2-го уровня ]... : PX PX1 PX2 … PXn ; [ определение процедуры PX 1-го уровня ] : PX1 PX1a PX1a … PX1z ; [ определение процедуры PX1 2-го уровня ] : PX2 PX2a PX2a … PX2z ; [ определение процедуры PX2 2-го уровня ]... : PXn PXna PXnb … PXnz ; [ определение процедуры PXn 2-го уровня ]
9 2. Первая версия ДССП-НЦ г. Златкус Г.В. Златкус Г.В. Электроника-НЦ-03Д Электроника-НЦ-03Д Сшитый код двойной косвенности (для поддержки нисходящей разработки программы) Характерные черты Сетуни-70 : - троичное ветвление BRS - цикл по условию DWON
10 3. ДССП для компьютеров унифицированной архитектуры ДССП ДССП для компьютеров унифицированной архитектуры ДССП г. Руднев И.А., Захаров В.Б., Сидоров С.А. Электроника-НЦ80 (LSI-11, PDP-11) Электроника-НЦ80 (LSI-11, PDP-11) прямой сшитый код (NEXT) циклы с экстренными выходами RP DO EX EX- EX0 EX+ унифицированный набор префиксных операций для работы с переменными и массивами различных типов ! !+ !- !+1 !-1 !!! DIM? SIZE? словарь разбит на подсловари и секции :: CLEAR GROW FORGET [Захаров В.Б.] встроенный ассемблер [Чанышев Н.А.] компоновщик [Сидоров С.А.] целевой компилятор [Руднев И.А.]
11 Экспериментальная версия ДССП-РВ (реального времени) Экспериментальная версия ДССП-РВ (реального времени) г. Борисов А.В. Электроника-НЦ80 (PDP-11) Электроника-НЦ80 (PDP-11) прямой сшитый код (NEXT) сопрограммный механизм NewProcess Transfer переход на сопрограмму по прерыванию IOTransfer построение разнообразных средств организации и взаимодействия параллельных процессов на основе сопрограммного механизма средства модульного построения программы (блоки, модули, мониторы)
12 Экспериментальная версия ДССП-ПМ (периферийный монитор) Экспериментальная версия ДССП-ПМ (периферийный монитор) г. Бурцев А.А. Электроника-НЦ80 (PDP-11)Электроника-НЦ80 (PDP-11) прямой сшитый код (NEXT) цикл с условием WHILE УСЛОВИЕ DW ТЕЛО типы данных для доступа к флагам и полям периферийных регистров механизм обработки исключительных ситуаций SITUATION ON_ RERAISE _NOTIFY _ESCAPE _RETRY ( TRAP ON EON RON ) средства организации и взаимодействия параллельных процессов механизм прерываний на уровне сшитого кода
13 ДССП в среде операционных систем для компьютеров унифицированной архитектуры ДССП в среде операционных систем для компьютеров унифицированной архитектуры Чанышев Н.А. ДВК-3,ДВК-4. СМ-3, СМ-4 (PDP-11) ДССП-80 в ОС РАФОС (RT-11) ДССП-80 в ОС РВ (RSX-11) команды для взаимодействия со службами используемой ОС команды для работы с файлами базовой ОС
14 Методическое обеспечение программирования в ДССП Методическое обеспечение программирования в ДССП методические пособия для студентов и школьников: Брусенцов Н.П., Захаров В.Б., Руднев С.А., Сидоров С.А., Чанышев Н.А. Развиваемый адаптивный язык РАЯ диалоговой системы программирования ДССП. М.: Изд-во Моск. Ун-та, 1987 г. – 80 с. Брусенцов Н.П., Захаров В.Б., Руднев С.А., Сидоров С.А., Чанышев Н.А. Методические указания по программированию в ДССП. Ротапринт НИВЦ МГУ, 1988г. – 40 с.
15 4. Распространение ДССП на другие компьютерные платформы 4. Распространение ДССП на другие компьютерные платформы начало 90-х годов ДССП в НИИСИ РАН разработка внутреннего ПО компьютерных модулей на основе микропроцессоров MC68020, R3000, Intel80386 Лякина Е.Н., Пшеничный К.А., Сидоров С.А., Шумаков М.Н. Система внутреннего программного оснащения DPROM. НИЛ ЭВМ МГУ + НИИСИ РАН = совместное развитие ДССП к середине 90-х годов ДССП функционирует на платформах: PDP-11, Intel8080, Intel8086, Motorola 68020, VAX, R3000 в операционных средах: RT-11, RSX-11, UNIX, CP/M, MS-DOS, MS Windows
16 5. ДССП для 32-разрядных микрокомпьютеров 5. ДССП для 32-разрядных микрокомпьютеров г. ДССП-32 для Intel8086 в MS-DOS Волынец Р.В. ДССП-32p для Intel80386 в MS-DOS + DOS4gw (под управлением ДОС-экстендера) преодолено ограничение по памяти (640 Кб) Бурцев А.А. Модификация ядра ДССП-32p : 1) полная версия механизма ситуаций 2) цикл с условием DW 2) механизм прерываний на уровне сшитого кода 3) сопрограммный механизм 4) создание разнообразных мониторов для организации параллельных процессов и их взаимодействия на языке ДССП
17 6. Мобильная версия ДССП/С 6. Мобильная версия ДССП/С г. Бурцев А.А., Франтов Д.В., Шумаков М.Н. ядро ДССП на языке Си знаковый сшитый код с относительной адресацией (примитив = номер Си-функции ядра) мобильность программ на уровне сшитого кода в операционных средах: 1) MS Windows 2) MS-DOS + DOS-extender DOS4gw 3) LINUX 4) ОС Solaris для Ultra Sparc модифицирован унифицированный механизм работы с данными (переменными и массивами) добавлены средства ООП [ Бурцев А.А. ] (объектно-ориентированного программирования) CLASS: SUBCLASS METHOD ;CLASS
18 7. ДССП в мире науки и современной компьютерной техники 7. ДССП в мире науки и современной компьютерной техники итог 20-летнего развития ДССП-НЦ ==> ДССП-80 ==> ДССП-32 ==> ДССП-32p ==> ДССП/С к концу XX века ДССП – среда программирования с широким спектром современных методов структурированной разработки сложных программных систем ДССП включает средства для - структурированного программирования - модульного программирования - объектно-ориентированного программирования - параллельного программирования - структурированной обработки исключительных ситуаций почему ДССП не получила широкого распространения ? на рынке систем программирования для микрокомпьютеров возобладали интегрированные системы программирования на основе языков Си и Паскаль
19 Примеры применения ДССП Программное оснащение автоматизированной системы обучения Наставник. Система автоматизированной подготовки учебных курсов для АСО Наставник. Кросс-система для микропроцессора К580 в ДССП. Продукционная система в ДССП-80. Адаптируемая отладочная система разработки микроконтроллерных устройств. Система внутреннего программного оснащения DPROM. Система компьютеризации булевой алгебры в ДССП. DED – экранный отладчик и редактор в стиле микромир. курсовые и дипломные работы в МГУ и других ВУЗах
20 Кандидатские диссертации, связанные с развитием ДССП 1983 Златкус Г.В. Диалоговая Система Структурированного программирования (ДССП) для микрокомпьютеров Руднев И.А. Исследование путей и реализация на основе ДССП целевой компиляции программ для встраиваемых микропроцессоров Сидоров С.А. Исследование мобильности ДССП и разработка средств её переноса Захаров В.Б. Средства разработки программ в ДССП Грачёв А.Ю. Структурирование данных в диалоговой системе программирования ДССП Бурцев А.А. Расширение языков программирования средствами обработки исключительных ситуаций.
21 Информация о ДССП в научном мире регулярные публикации статей в отечественных журналах и научных сборниках трудов ( например, в серии совмеcтных сборниках МГУ+СПГУ Вычислительная техника и вопросы кибернетики ) доклады на междунарожных конференциях (например, на EuroForth conferences в гг.) ДССП распространялась как свободное ПО с 1996 г. сайт о ДССП в Интернете: [ Шумаков М.Н., Локтев Н.М. ] по адресу: с 1998 г. по адресу: на сайте виртуального компьютерного музея: по адресу:
22 8. ДССП для ТВМ ТВМ – троичная виртуальная машина 8. ДССП для ТВМ ТВМ – троичная виртуальная машина гг.Сидоров С.А. имитационная модель троичного процессора программный комплекс (на языке Си), включающий: + ассемблер ТВМ + имитатор исполнения троичных программ + диалоговый монитор, позволяющий следить за процессом исполнения программы в режиме отладки: - прокрутка по шагам, точки останова, - просмотр и модификация регистров, стеков, памяти особенности архитектуры: + двухстековая (арифметический стек и управляющий стек) + система счисления: троичная симметричная (-1,0,+1) + команды структурированного управления IF- IF0 IF+ BR- BR0 BR+ BRS DW + система команд нацелена на прямое исполнение ДССП-программ, представленных в сшитом коде + адрес = команда вызова процедуры => сшитый код = процедурный код при реализации на двоичных машинах трит представляется парой битов: (1,0)= +1 (0,0)= 0 (0,1)= -1
23 ДССП для троичной виртуальной машины ДССП-ТВМ гг. Бурцев А.А. кросс-система разработки программ для ТВМ на языке ДССП-Т (троичном варианте языка ДССП) ДССП-ТВМ включает: + кросс-компилятор с языка ДССП-Т на язык ассемблера ТВМ + стандартный препроцессор (языка Си) + ассемблерное ядро для исполнения ДССП-программ + библиотека стандартных модулей на языке ДССП-Т + диалоговый командный монитор для прогона ДССП-программ особенности языка ДССП-Т : + основа = подмножество базового языка ДССП-80 + операции троичной логики и арифметики вместо двоичных + операции доступа к трайтам и троичным словам памяти + добавлен ряд полезных возможностей других версий ДССП: (цикл с условием DW, механизм ситуаций, сопрограммный механизм) + нет средств, чтобы создавать новые компилирующие слова соблюдается ДССП-принцип слово в слово внутреннее представление ДССП-программы = сшитый (процедурный) код, который напрямую исполняет ТВМ
24 9. Заключение ДССП почти 30 лет ДССП = как результат эмуляции двухстековой архитектуры Сетуни-70 с поддержкой управляющих команд структурированного программирования + словарная организация ДССП для двоичных машин: ДССП-НЦ ==> ДССП-80 ==> ДССП-32 ==> ДССП-32p ==> ДССП/С ==> ДССП-ТВМ как основная система разработки программ для создаваемой троичной машины следующий этап развития ДССП : создание полноценного интерпретатора языка ДССП, способного функционировать на создаваемой троичной машине в качестве резидентной системы программирования интерпретатор ДССП на ТВМ (на языке ДССП-Т) следующий этап развития ДССП : создание полноценного интерпретатора языка ДССП, способного функционировать на создаваемой троичной машине в качестве резидентной системы программирования интерпретатор ДССП на ТВМ (на языке ДССП-Т)
25 10. Библиография 1. Брусенцов Н.П., Златкус Г.В, Руднев И.А. ДССП - диалоговая система структурированного программирования. // Программное оснащение микрокомпьютеров. М.: Изд-во МГУ,1982, с Брусенцов Н.П., Рамиль Альварес Х. Структурированное программирование на малой цифровой машине. // Вычислительная техника и вопросы кибернетики. Вып. 15. М.: Изд-во МГУ, 1978, с Златкус Г.В. Принципы построения системы структурированного программирования для микрокомпьютеров. // Вычислительная техника и вопросы кибернетики. Вып. 19. М.: Изд-во МГУ, 1982, с Захаров В.Б., Златкус Г.В., Руднев И.А., Сидоров С.А. Реализация диалоговой системы структурированного программирования на микрокомпьютере Электроника НЦ-03Д. // Архитектура и программное оснащение цифровых систем. М.: Изд-во МГУ, 1984, с Златкус Г.В. Ассемблер малой ЦМ Сетунь-70. // Вычислительная техника и вопросы кибернетики. Вып. 17. М.: Изд-во МГУ, 1981, с Брусенцов Н.П., Захаров В.Б., Руднев И.А., Сидоров С.А. Диалоговая система структурированного программирования ДССП-80. // Диалоговые микрокомпьютерные системы. М.: Изд-во МГУ, 1986, с.3-21.
26 Библиография Библиография 7. Бурцев А.А. Периферийный монитор – развитие архитектуры ввода/вывода ДССП. // Диалоговые микрокомпьютерные системы. М.: Изд-во МГУ, 1986, с Борисов А.В. Диалоговая система структурированного программирования в реальном времени – ДССП-РВ. // Диалоговые микрокомпьютерные системы. М.: Изд- во МГУ, 1986, с Чанышев Н.А. Язык встроенного ассемблера для ДССП-80. // Диалоговые микрокомпьютерные системы. М.: Изд-во МГУ, 1986, с Захаров В.Б., Мельникова Е.А. Организация словаря в ДССП-80. // Диалоговые микрокомпьютерные системы. М.: Изд-во МГУ, 1986, с Сидоров С.А. Исследование переносимости ДССП. // Диалоговые микрокомпьютерные системы. М.: Изд-во МГУ, 1986, с Руднев И.А. Целевая компиляция ДССП-программ. // Диалоговые микрокомпьютерные системы. М.: Изд-во МГУ, 1986, с Брусенцов Н.П., Захаров В.Б., Руднев С.А., Сидоров С.А., Чанышев Н.А. Развиваемый адаптивный язык РАЯ диалоговой системы программирования ДССП. М.: Изд-во Моск. Ун-та, 1987 г. – 80 с. 14. Брусенцов Н.П., Захаров В.Б., Руднев С.А., Сидоров С.А., Чанышев Н.А. Методические указания по программированию в ДССП. Ротапринт НИВЦ МГУ, 1988г. – 40 с.
27 Библиография Библиография 15. Чанышев Н.А. ДССП на персональных компьютерах в операционной среде RT-11. // Программное оснащение персональных компьютеров. М.: Изд-во Моск. ун-та, 1990, с Чанышев Н.А. ДССП в операционной среде ОС-РВ. // Математические проблемы информатики. М.: Изд-во Ленингр. ун-та, 1987, с Лякина Е.Н., Пшеничный К.А., Сидоров С.А., Шумаков М.Н. Система внутреннего программного оснащения DPROM. // Вопросы кибернетики. Сб. статей под ред. В.Б.Бетелина. М., с Сидоров С.А., Шумаков М.Н. ДССП как открытая система. // Дискретные модели. Анализ, синтез и оптимизация. Спб.: СпбГУ, с Волынец Р.В. Реализация ДССП для микропроцессоров Intel // Дискретные модели. Анализ, синтез и оптимизация. Спб.: СпбГУ, с Бурцев А.А. Механизм прерываний для интерпретатора сшитого кода. // Вопросы кибернетики. Сб. статей под ред. В.Б.Бетелина. М., с Бурцев А.А., Шумаков М.Н. Сопрограммный механизм в ДССП как основа для построения мониторов параллельных процессов. // Вопросы кибернетики. Сб. статей под ред. В.Б.Бетелина. М., с Волынец Р. Диспетчер параллельных процессов в ДССП-32р. // Интегрированная система обучения, конструирования программ и разработки дидактических материалов. М.: Изд-во факультета ВМиК МГУ, с
28 Библиография Библиография 23. Бурцев А.А., Франтов Д.В., Шумаков М.Н. Разработка интерпретатора сшитого кода на языке Си. // Вопросы кибернетики. Сб. статей под ред. В.Б.Бетелина. М., с Бурцев А.А., Рамиль Альварес Х. Средства объектно-ориентированного программирования в ДССП. // Программные системы и инструменты. Тематический сборник 4, М.: Изд-во факультета ВМК МГУ, с Бурцев А.А. ДССП – среда структурированной разработки программ как сложных систем. // Вторая Международная конференция Системный анализ и информационные технологии САИТ-2007 (10-14 сентября 2007 г., Обнинск, Россия): Труды конференции. Изд-во ЛКИ, т. 2. с Брусенцов Н.П., Маслов С.П., Рамиль Альварес Х. Микрокомпьютерная система обучения Наставник. –М.: Наука, Гл. ред. физ.-мат. лит., гл.4. с Лозовая Е.А. Система автоматизированной подготовки учебных курсов для МСО Наставник. // Дискретные системы и их программное обеспечение. Л.: Изд-во Ленингр. Ун-та, с Сидоров С.А. Кросс-система для микропроцессора К580 в ДССП. // Автоматизация разработки и моделирование вычислительных и микропроцессорных систем: Материалы семинара. М., с Грачев А.Ю. Продукционная система в ДССП-80. // Программное оснащение персональных компьютеров. М.: изд-во МГУ, 1990, с
29 Библиография Библиография 30. Лобанов В.И., Локтев Н.М. Адаптируемая отладочная система разработки микроконтроллерных устройств (МКУ) в среде ДССП. ( defd-46a7-ae2e-7180d31eb98c). defd-46a7-ae2e-7180d31eb98chttp://trinary.ru/kb/b072e4dd- defd-46a7-ae2e-7180d31eb98c 31. Владимирова Ю.С. Конструктная реализация булевой алгебры. // Интегрированная система обучения, конструирования программ и разработки дидактических материалов. М.: Изд-во факультета ВМиК МГУ, с Sidorov S.A., Shumakov M.N. DSSP and Forth. Compare analysis. // EuroForth96 conference proceedings. St.Peterburg, Russia, (11 pp). 33. Frantov D.V., Shumakov M.N. DED (DSSP Editor + Debugger). // EuroForth97 conference proceedings. Oxford, England, p Sidorov S.A. Data in DSSP – prefix access in postfix language. // EuroForth97 conference proceedings. Oxford, England, p Sidorov S.A. Top-down thinking and top-down writing in DSSP. // EuroForth98 conference proceedings. Schloss Dagstuhl, Germany, 1998 (5 pp.). 36. Burtsev A.A. Interrupt mechanism for threaded code interpreter. // EuroForth99 conference proceedings. St.Peterburg, Russia, (8 pp).
30 11. ПРИЛОЖЕНИЯ Примеры программирования на ДССП
31 П1. Структурированные команды ветвления Одиночные ветвления или условные вызовов процедуры : [ T ] IF- P1 [ ] [ вызов процедуры P1, если вершина стека (T) 0 ] Двоичные ветвления или вызовы одной из двух процедур : [ T ] BR- P0 P1 [ ] [ вызов процедуры P0, если T 0, иначе вызов P1 ] Троичное ветвление или вызов одной из трёх процедур : [ T ] BRS PN PZ PP [ ] [ вызов одной из процедур: или PN (T 0) ] Множественное ветвление или вызов одной из многих процедур : [ T ] BR V1 P1 V2 P2 … VX PX ELSE P0 [ ] [ вызов процедуры Pi (если T=Vi), иначе P0 ]
32 П2. Примеры применения команд ветвлений функция Abs(X) : если X
33 П3. Структурированные команды циклов Цикл с параметром счётчиком: [ N ] DO- BODY [ ] [ многократный вызов процедуры BODY ( N раз ) ] [ параметр T (значение вершины стека) уменьшается на 1 каждый раз ] [ перед очередным вызовом процедуры BODY, т.е. T= N-1,N-2, …,1,0 ] [ вызовы прекращаются, когда этот параметр становится
34 П4. Примеры применения команд циклов функция Fact(N):{Факториал} F:=1; для k от N-1 до 0 повт нц F:= F*(k+1); кц Fact:=F; для k от N-1 до 0 повт нц F:= F*(k+1); кц Fact:=F; : Fact [N] [ Факториал ! ] 1 E2 [1,N] DO- FI [N!] ; : FI [F,k] [при k=N-1,..,1,0] : FI [F,k] [при k=N-1,..,1,0] E2 C2 1+ * E2 [F*(k+1),k] ; E2 C2 1+ * E2 [F*(k+1),k] ; { вычисление значения полинома, заданного массивом коэффициэнтов A[0:n] по схеме Горнера } функция Plnm (X): S:= A[n]; для i от N-1 до 0 повт нц S:= S*X+A[i]; кц Plnm:= S; S:= A[n]; для i от N-1 до 0 повт нц S:= S*X+A[i]; кц Plnm:= S; [ вычисление значения полинома, заданного массивом коэффициэнтов A(0:n) по схеме Горнера ] : Plnm [X] n A [A(n)] n [X,A(n),n] DO- PI [P(X)] ; : PI [X,S,i] E2 C3 * [X,i,S*X] C2 A + [S*X+A(i)] E2 [X,S,i] ; функция NOD(X,Y): пока XY повт нц если X Y повт нц если X
35 П5. Команды структурированной обработки исключительных ситуаций новые ситуации объявляются в ДССП как новые слова особого типа: SITUATION S! FR [ объявление нового слова-ситуации с именем S! ] вызов такого слова S! означает возбуждение ситуации, которое запускает механизм поиска реакции на ситуацию для ее обработки. в каждой процедуре можно задать свою реакцию на любую ситуацию реакция задаётся спец.командой в теле процедуры, возможны три типа реакций: 1) ON_ S! _NOTIFY MyR или кратко: ON S! MyR предлагает продолжить исполнение процедуры (с места возникновения ситуации в ней) 2) ON_ S! _RETRY MyR или кратко: RON S! MyR предлагает повторить процедуру (начиная с этой самой команды в её теле) 3 ) ON_ S! _ESCAPE MyR или кратко: EON S! MyR предлагает завершить процедуру (и продолжать программу) В слове-реакции MyR можно повторно возбудить ситуацию командой RERAISE Пример использования ситуации для экстренного выхода: SITUATION EXIT!.EXIT! :.EXIT!. ситуация EXIT! BYE ; : P EON EXIT! NOP... PA PB... PX ; : PA PA1 PA2 … PAk ; : PB PB1 PB2 … PBm ; : PX PX1 PX2 … PXn ;... : PA2 … IF+ EXIT! [ экстренный выход из процедуры P ] … ; обеспечивается возможность возбуждать ситуацию по прерыванию и по воздействию от другого параллельного процесса
36 П6. Модульное построение программы и словаря логически обособленные компоненты программы модули (Модула-2), пакеты (АДА), юниты (Турбо Паскаль) в ДССП оформляются как именованные подсловари операции с подсловарями: GROW NAME – открыть подсловарь NAME на наполнение (наращивание) USE NAME – сделать подсловарь NAME доступным для использования CLEAR – очистить текущий подсловарь, оставив лишь видимые извне слова разделение подсловаря на видимую и скрытую части: :: – этим словом помечаются (перед их определением) видимые слова, т.е. те слова, которые останутся в подсловаре и после его очистки разделение подсловаря на видимую и скрытую части: :: – этим словом помечаются (перед их определением) видимые слова, т.е. те слова, которые останутся в подсловаре и после его очистки пример оформления модуля Турбо Паскаля как подсловаря в ДССП: UNIT Queue; { Видимая ая часть } const Max=1000; procedure Init; procedure Put(x:TItem); function Get: TItem; GROW Queue [ объявления видимых слов ] :: 1000 VALUE Max :: : Init... _Init... ; :: : Put... _Put... ; :: : Get... _Get... ; IMPLENENTATION { Скрытая часть } var n,k:0..Max; T: array[0..Max-1]of TItem; { реализация Init, Put, Get }... END. [ объявления всех остальных скрытых слов ] VAR n VAR k Max 1- TItem VCTR T [ реализация вспомогательных слов ]... [ _ Init, _Put, _Get ] CLEAR
37 П7. Средства параллельного программирования двухуровневый ассортимент средств в духе языка Модула-2 Н.Вирта 1-ый уровень – сопрограммный механизм с операциями: NEWCONTEXT – создания контекста новой сопрограммы; TRANSFER – переключения с одного сопрограммного контекста на другой; 2-ой уровень – построенные на основе сопрограммного механизма мониторы, управляющие развитием параллельных процессов: Простой монитор SPMON предоставляет операции: START – з апустить процесс STOP – остановить процесс DELAY – задержать процесс на заданное время PAUSE – приостановить процесс, чтобы возобновить следующий по очереди все процессы в этом мониторе равноправны (одного приоритета) Монитор с приоритетами PPMON предоставляет дополнительно операции: WAIT – задержать процесс в ожидании сигнала SEND – послать сигнал для возобновления процесса PRIO! – изменить приоритет текущего процесса исполняется процесс с наивысшим приоритетом, а если таковых несколько, то процессор регулярно переключается между ними по прерыванию от таймера любую операцию с процессами можно выполнять по прерыванию
38 П8. Механизм прерываний на уровне интерпретатора сшитого кода не на уровне машинного кода, а на уровне интерпретатора сшитого кода Э то означает, что назначенную процедуру обработки прерывания интерпретатор ДССП/C начинает исполнять не в сам момент прерывания, а только по завершении текущей ДССП-команды, т.е. примитивной процедуры (примитива) гибкий (универсальный) механизм прерываний позволяет в процедуре обработки прерывания исполнять любые ДССП-команды, в том числе: возбуждать ситуацию переключать сопрограммный контекст запускать новый процесс посылать сигнал для возобновления задержанного процесса
39 П9. Средства ООП (Объектно-Ориентированного Программирования) type MyClass= object(TClass) p1:type1; … pk:typek; p1:type1; … pk:typek; procedure Mt1(…); virtual; procedure Mt1(…); virtual; … procedure Mtn(…); virtual; … procedure Mtn(…); virtual;end; procedure MyClass.Mt1;begin…end; procedure MyClass.Mtn;begin…end; var MyObj:MyClass;… var x:type1; … MyObj.Init(…); {инициализация} … MyObj.Mt1(…);… MyObj.Mtn(…); … x:=MyObj.p1; … MyObj.p1:=x; CLASS: MyClass SUBCLASS TClass type1 VAR p1 … typek VAR pk type1 VAR p1 … typek VAR pk METHOD Mt1 METHOD Mt1 … METHOD Mtn … METHOD Mtn;CLASS MyClass :M: Mt1 [P] … ; MyClass :M: Mtn [P] … ; MyClass VAR MyObj … type1 VAR X … CONSTRUCT MyObj {иници-ация} … CONSTRUCT MyObj {иници-ация} … Mt1 MyObj … Mtn MyObj … Mt1 MyObj … Mtn MyObj … MyObj p1 ! X … X MyObj ! p1 … MyObj p1 ! X … X MyObj ! p1 procedure MyClass.Mt0; begin … TClass.Mt0(…); … end; MyClass :M: Mt0 [P] … … [P] Mt0 AS TClass … ; … [P] Mt0 AS TClass … ; procedure ExecMt0(P:TClass); begin … P.Mt0(…); … end; : ExecMt0 [P] … … [P] Mt0 SELF … ; … [P] Mt0 SELF … ; на языке ДССП на языке Турбо Паскаль поддерживается упрощенная концепция ООП (= в языке Турбо Паскаль) простое наследование (только от одного класса) полноценный полиморфизм с возможностью перекрытия любого метода ( все методы виртуальные ) инкапсуляция посредством управления видимостью имён в подсловарях ( :: CLEAR )
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.