История создания и развития ДССП: от Сетуни-70 до троичной виртуальной машины А.А. Бурцев, С.А.Сидоров НИИСИ РАН, НИЛ ЭВМ МГУ.

Презентация:



Advertisements
Похожие презентации
Учебный курс Объектно-ориентированный анализ и программирование Лекция 4 Трансформация логической модели в программный код Лекции читает кандидат технических.
Advertisements

Объектно-ориентированное программирование Карпов В.Э. Смолток. Лекция 4. Байт-код.
Алгоритмизация и программирование. Языки программирования высокого уровня. Технологии программирования Алгоритмизация и программирование. Языки программирования.
История создания ОС. Семейство ОС MS Windows.. Операционная система базовый комплекс компьютерных программ, обеспечивающий управление аппаратными средствами.
1. Этапы развития вычислительной техники и программного обеспечения. 2.Структура вычислительной системы. Ресурсы ВС- физические ресурсы, виртуальные ресурсы.
Программа 8-9 класс Семакин И.Г.. 8 класс (1 час в неделю) 1.Введение в предмет (1 ч) 2.Человек и информация (4 ч (3 + 1)) 3.Первое знакомство с компьютером.
АРХИТЕКТУРА СОВРЕМЕННЫХ ЭВМ Лекция 6: Уровень архитектуры набора команд ВМиК МГУ им. М.В. Ломоносова, Кафедра АСВК Чл.-корр., профессор, д.ф.-м.н. Королёв.
Лекция 6. Способы адресации в микропроцессорных системах.
Архитектура операционной системы. Ядро и вспомогательные модули операционной системы При функциональной декомпозиции ОС модули разделяются на две группы:
Методы оценки времени отклика задач в двухъядерных системах реального времени СоискательГуцалов Н.В. Научный руководитель д.т.н., профессор Никифоров В.В.
Демидов А.В г.1 Операционные системы Лекция 1 Определение, история, классификация ОС, Архитектура ЭВМ.
Учитель информатики Кюкяйской СОШ,Сунтарского улуса, Республики Саха Федоров Александр Михайлович,2010 год.
Прерывания Определение прерывания Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств.
1 Тема 1.7. Алгоритмизация и программирование Информатика.
Учебный курс Принципы построения и функционирования ЭВМ Лекция 11 Микрокоманды и микрооперации профессор ГУ-ВШЭ, доктор технических наук Геннадий Михайлович.
Практическое занятие Вводное занятие Преподаватели: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ»
Архитетура компьютерных систем. Архитектура системы команд как интерфейс между программным и аппаратным обеспечением Архитектура системы команд.
ВЫПОЛНЕНИЕ АЛГОРИТМОВ КОМПЬЮТЕРОМ. Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой. Программа данные, предназначенные.
Системное программное обеспечение. Вычислительная система 2.
Глава 6. УПРАВЛЯЮЩИЕ СТРУКТУРЫ Оператор присваивания Простой и составной операторы Условный оператор Оператор множественного выбора Оператор цикла с предусловием.
Транксрипт:

История создания и развития ДССП: от Сетуни-70 до троичной виртуальной машины А.А. Бурцев, С.А.Сидоров НИИСИ РАН, НИЛ ЭВМ МГУ

Аннотация ДССП, первоначально созданная в НИЛ ЭВМ МГУ под руководством Брусенцова Н.П., на протяжении ряда лет была реализована на мини- и микрокомпьютерах самой разнообразной архитектуры и в различных операционных средах. ДССП, первоначально созданная в НИЛ ЭВМ МГУ под руководством Брусенцова Н.П., на протяжении ряда лет была реализована на мини- и микрокомпьютерах самой разнообразной архитектуры и в различных операционных средах. В докладе раскрываются цели создания системы, основные характерные черты и особенности различных версий ДССП, прослеживается эволюция языка ДССП, развитие системы команд ядра и состава компонентов интегрированной среды. Даётся сравнительная характеристика разновидностей сшитого кода, применяемых в различных версиях ДССП. В докладе раскрываются цели создания системы, основные характерные черты и особенности различных версий ДССП, прослеживается эволюция языка ДССП, развитие системы команд ядра и состава компонентов интегрированной среды. Даётся сравнительная характеристика разновидностей сшитого кода, применяемых в различных версиях ДССП. Представляется система программирования ДССП-ТВМ, позволяющая разрабатывать программы для троичной виртуальной машины. Представляется система программирования ДССП-ТВМ, позволяющая разрабатывать программы для троичной виртуальной машины.

План доклада 1. Общая характеристика системы 2. Первая версия ДССП 3. ДССП для компьютеров унифицированной архитектуры 4. Распространение ДССП на другие компьютерные платформы 5. ДССП для 32-разрядных микрокомпьютеров 6. Мобильная версия ДССП/С 7. ДССП в мире науки и современной компьютерной техники 8. ДССП для троичной виртуальной машины 9. Заключение 10. Библиография 11. Приложения. Примеры программирования на ДССП

1. Общая характеристика системы создана в НИЛ ЭВМ МГУ под руководством Брусенцова Н.П. итог развития миникомпьютерной архитектуры: Сетунь => Сетунь-70 => ДССП программно эмулируемый стековый процессор 1) два стека: арифметический и управляющий 2) команды структурированного управления (от Сетуни-70) 3) сшитый (threaded) код для внутреннего представления программы 4) внутренний интерпретатор сшитого кода интегрированная среда разработки: 1) легко доступная для освоения пользователю-непрофессионалу 2) диалоговый режим на всех стадиях работы 3) словарная организация как в системе ФОРТ (Forth) 4) простота расширения системы основные компоненты базового ПО системы: - словарь ядра - внутренний интерпретатор - внешний интерпретатор - компилятор - редактор текстов - отладчик

Словарная организация системы Словарная организация системы слово - любая последовательность печатных символов (без пробелов) словарь - совокупность слов, понимаемых системой (язык ДССП) предложение – последовательность слов, разделенных пробелами основной цикл работы системы – исполнение команд-предложений любое действие системы – выполнение слова. виды слов:примеры: 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 * *

Характерные черты ДССП и ФОРТа Характерные черты ДССП и ФОРТа диалоговые интерпретируемые системы словарная организация системы относятся классу систем, функционирующих на основе интерпретации сшитого кода двухстековая архитектура - арифметический стек для хранения обрабатываемых данных - управляющий стек для сохранения адресов возвратов из процедур Бесскобочная запись арифметических выражений X Y – Z V + * [ (X-Y)*(Z+V) ] ( польско инверсная запись - ПОЛИЗ ) Отличительные черты ДССП (от ФОРТа) свой ассортимент слов базового словаря специфическая процедурная версия структурированных команд управления поддержка пошаговой нисходящей разработки программы принцип компоновки внутреннего представления слово в слово: одно слово исходного текста переводится в одно слово машинного кода

Команды структурированного управления поддерживают структурированное программирование на уровне сшитого кода нет команд перехода по меткам, только команды вызова процедур в качестве процедуры можно вызвать любое слово словаря параметрами процедуры служат значения, помещаемые в стек безусловные вызовы процедур: 1) это обычный (прямой) вызов слова 2) предусмотрена также и команда косвенного вызова слова, адрес которого передан через стек : PROC... [ адрес слова PROC ] EXEC [ вызывается слово PROC ] условные вызовы процедур – это команды ветвлений : - одиночное ветвлениеIF- IF0 IF+ - двойное ветвление BR- BR0 BR+ - тройное ветвление BRS - множественное ветвлениеBR многократные вызовы процедур – это команды циклов : - циклы с условием DW DO- LOOP - циклы с экстренными выходами DO RP EX EX- EX0 EX+ эти команды способствуют структуризации программы, т.к. требуют тела ветвлений и циклов оформлять как процедуры, т.е. записывать их в тексте программы в виде отдельных слов

Поддержка нисходящей разработки программ Поддержка нисходящей разработки программ Определение нового слова как процедуры: : 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-го уровня ]

2. Первая версия ДССП-НЦ г. Златкус Г.В. Златкус Г.В. Электроника-НЦ-03Д Электроника-НЦ-03Д Сшитый код двойной косвенности (для поддержки нисходящей разработки программы) Характерные черты Сетуни-70 : - троичное ветвление BRS - цикл по условию DWON

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 [Захаров В.Б.] встроенный ассемблер [Чанышев Н.А.] компоновщик [Сидоров С.А.] целевой компилятор [Руднев И.А.]

Экспериментальная версия ДССП-РВ (реального времени) Экспериментальная версия ДССП-РВ (реального времени) г. Борисов А.В. Электроника-НЦ80 (PDP-11) Электроника-НЦ80 (PDP-11) прямой сшитый код (NEXT) сопрограммный механизм NewProcess Transfer переход на сопрограмму по прерыванию IOTransfer построение разнообразных средств организации и взаимодействия параллельных процессов на основе сопрограммного механизма средства модульного построения программы (блоки, модули, мониторы)

Экспериментальная версия ДССП-ПМ (периферийный монитор) Экспериментальная версия ДССП-ПМ (периферийный монитор) г. Бурцев А.А. Электроника-НЦ80 (PDP-11)Электроника-НЦ80 (PDP-11) прямой сшитый код (NEXT) цикл с условием WHILE УСЛОВИЕ DW ТЕЛО типы данных для доступа к флагам и полям периферийных регистров механизм обработки исключительных ситуаций SITUATION ON_ RERAISE _NOTIFY _ESCAPE _RETRY ( TRAP ON EON RON ) средства организации и взаимодействия параллельных процессов механизм прерываний на уровне сшитого кода

ДССП в среде операционных систем для компьютеров унифицированной архитектуры ДССП в среде операционных систем для компьютеров унифицированной архитектуры Чанышев Н.А. ДВК-3,ДВК-4. СМ-3, СМ-4 (PDP-11) ДССП-80 в ОС РАФОС (RT-11) ДССП-80 в ОС РВ (RSX-11) команды для взаимодействия со службами используемой ОС команды для работы с файлами базовой ОС

Методическое обеспечение программирования в ДССП Методическое обеспечение программирования в ДССП методические пособия для студентов и школьников: Брусенцов Н.П., Захаров В.Б., Руднев С.А., Сидоров С.А., Чанышев Н.А. Развиваемый адаптивный язык РАЯ диалоговой системы программирования ДССП. М.: Изд-во Моск. Ун-та, 1987 г. – 80 с. Брусенцов Н.П., Захаров В.Б., Руднев С.А., Сидоров С.А., Чанышев Н.А. Методические указания по программированию в ДССП. Ротапринт НИВЦ МГУ, 1988г. – 40 с.

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

5. ДССП для 32-разрядных микрокомпьютеров 5. ДССП для 32-разрядных микрокомпьютеров г. ДССП-32 для Intel8086 в MS-DOS Волынец Р.В. ДССП-32p для Intel80386 в MS-DOS + DOS4gw (под управлением ДОС-экстендера) преодолено ограничение по памяти (640 Кб) Бурцев А.А. Модификация ядра ДССП-32p : 1) полная версия механизма ситуаций 2) цикл с условием DW 2) механизм прерываний на уровне сшитого кода 3) сопрограммный механизм 4) создание разнообразных мониторов для организации параллельных процессов и их взаимодействия на языке ДССП

6. Мобильная версия ДССП/С 6. Мобильная версия ДССП/С г. Бурцев А.А., Франтов Д.В., Шумаков М.Н. ядро ДССП на языке Си знаковый сшитый код с относительной адресацией (примитив = номер Си-функции ядра) мобильность программ на уровне сшитого кода в операционных средах: 1) MS Windows 2) MS-DOS + DOS-extender DOS4gw 3) LINUX 4) ОС Solaris для Ultra Sparc модифицирован унифицированный механизм работы с данными (переменными и массивами) добавлены средства ООП [ Бурцев А.А. ] (объектно-ориентированного программирования) CLASS: SUBCLASS METHOD ;CLASS

7. ДССП в мире науки и современной компьютерной техники 7. ДССП в мире науки и современной компьютерной техники итог 20-летнего развития ДССП-НЦ ==> ДССП-80 ==> ДССП-32 ==> ДССП-32p ==> ДССП/С к концу XX века ДССП – среда программирования с широким спектром современных методов структурированной разработки сложных программных систем ДССП включает средства для - структурированного программирования - модульного программирования - объектно-ориентированного программирования - параллельного программирования - структурированной обработки исключительных ситуаций почему ДССП не получила широкого распространения ? на рынке систем программирования для микрокомпьютеров возобладали интегрированные системы программирования на основе языков Си и Паскаль

Примеры применения ДССП Программное оснащение автоматизированной системы обучения Наставник. Система автоматизированной подготовки учебных курсов для АСО Наставник. Кросс-система для микропроцессора К580 в ДССП. Продукционная система в ДССП-80. Адаптируемая отладочная система разработки микроконтроллерных устройств. Система внутреннего программного оснащения DPROM. Система компьютеризации булевой алгебры в ДССП. DED – экранный отладчик и редактор в стиле микромир. курсовые и дипломные работы в МГУ и других ВУЗах

Кандидатские диссертации, связанные с развитием ДССП 1983 Златкус Г.В. Диалоговая Система Структурированного программирования (ДССП) для микрокомпьютеров Руднев И.А. Исследование путей и реализация на основе ДССП целевой компиляции программ для встраиваемых микропроцессоров Сидоров С.А. Исследование мобильности ДССП и разработка средств её переноса Захаров В.Б. Средства разработки программ в ДССП Грачёв А.Ю. Структурирование данных в диалоговой системе программирования ДССП Бурцев А.А. Расширение языков программирования средствами обработки исключительных ситуаций.

Информация о ДССП в научном мире регулярные публикации статей в отечественных журналах и научных сборниках трудов ( например, в серии совмеcтных сборниках МГУ+СПГУ Вычислительная техника и вопросы кибернетики ) доклады на междунарожных конференциях (например, на EuroForth conferences в гг.) ДССП распространялась как свободное ПО с 1996 г. сайт о ДССП в Интернете: [ Шумаков М.Н., Локтев Н.М. ] по адресу: с 1998 г. по адресу: на сайте виртуального компьютерного музея: по адресу:

8. ДССП для ТВМ ТВМ – троичная виртуальная машина 8. ДССП для ТВМ ТВМ – троичная виртуальная машина гг.Сидоров С.А. имитационная модель троичного процессора программный комплекс (на языке Си), включающий: + ассемблер ТВМ + имитатор исполнения троичных программ + диалоговый монитор, позволяющий следить за процессом исполнения программы в режиме отладки: - прокрутка по шагам, точки останова, - просмотр и модификация регистров, стеков, памяти особенности архитектуры: + двухстековая (арифметический стек и управляющий стек) + система счисления: троичная симметричная (-1,0,+1) + команды структурированного управления IF- IF0 IF+ BR- BR0 BR+ BRS DW + система команд нацелена на прямое исполнение ДССП-программ, представленных в сшитом коде + адрес = команда вызова процедуры => сшитый код = процедурный код при реализации на двоичных машинах трит представляется парой битов: (1,0)= +1 (0,0)= 0 (0,1)= -1

ДССП для троичной виртуальной машины ДССП-ТВМ гг. Бурцев А.А. кросс-система разработки программ для ТВМ на языке ДССП-Т (троичном варианте языка ДССП) ДССП-ТВМ включает: + кросс-компилятор с языка ДССП-Т на язык ассемблера ТВМ + стандартный препроцессор (языка Си) + ассемблерное ядро для исполнения ДССП-программ + библиотека стандартных модулей на языке ДССП-Т + диалоговый командный монитор для прогона ДССП-программ особенности языка ДССП-Т : + основа = подмножество базового языка ДССП-80 + операции троичной логики и арифметики вместо двоичных + операции доступа к трайтам и троичным словам памяти + добавлен ряд полезных возможностей других версий ДССП: (цикл с условием DW, механизм ситуаций, сопрограммный механизм) + нет средств, чтобы создавать новые компилирующие слова соблюдается ДССП-принцип слово в слово внутреннее представление ДССП-программы = сшитый (процедурный) код, который напрямую исполняет ТВМ

9. Заключение ДССП почти 30 лет ДССП = как результат эмуляции двухстековой архитектуры Сетуни-70 с поддержкой управляющих команд структурированного программирования + словарная организация ДССП для двоичных машин: ДССП-НЦ ==> ДССП-80 ==> ДССП-32 ==> ДССП-32p ==> ДССП/С ==> ДССП-ТВМ как основная система разработки программ для создаваемой троичной машины следующий этап развития ДССП : создание полноценного интерпретатора языка ДССП, способного функционировать на создаваемой троичной машине в качестве резидентной системы программирования интерпретатор ДССП на ТВМ (на языке ДССП-Т) следующий этап развития ДССП : создание полноценного интерпретатора языка ДССП, способного функционировать на создаваемой троичной машине в качестве резидентной системы программирования интерпретатор ДССП на ТВМ (на языке ДССП-Т)

10. Библиография 1. Брусенцов Н.П., Златкус Г.В, Руднев И.А. ДССП - диалоговая система структурированного программирования. // Программное оснащение микрокомпьютеров. М.: Изд-во МГУ,1982, с Брусенцов Н.П., Рамиль Альварес Х. Структурированное программирование на малой цифровой машине. // Вычислительная техника и вопросы кибернетики. Вып. 15. М.: Изд-во МГУ, 1978, с Златкус Г.В. Принципы построения системы структурированного программирования для микрокомпьютеров. // Вычислительная техника и вопросы кибернетики. Вып. 19. М.: Изд-во МГУ, 1982, с Захаров В.Б., Златкус Г.В., Руднев И.А., Сидоров С.А. Реализация диалоговой системы структурированного программирования на микрокомпьютере Электроника НЦ-03Д. // Архитектура и программное оснащение цифровых систем. М.: Изд-во МГУ, 1984, с Златкус Г.В. Ассемблер малой ЦМ Сетунь-70. // Вычислительная техника и вопросы кибернетики. Вып. 17. М.: Изд-во МГУ, 1981, с Брусенцов Н.П., Захаров В.Б., Руднев И.А., Сидоров С.А. Диалоговая система структурированного программирования ДССП-80. // Диалоговые микрокомпьютерные системы. М.: Изд-во МГУ, 1986, с.3-21.

Библиография Библиография 7. Бурцев А.А. Периферийный монитор – развитие архитектуры ввода/вывода ДССП. // Диалоговые микрокомпьютерные системы. М.: Изд-во МГУ, 1986, с Борисов А.В. Диалоговая система структурированного программирования в реальном времени – ДССП-РВ. // Диалоговые микрокомпьютерные системы. М.: Изд- во МГУ, 1986, с Чанышев Н.А. Язык встроенного ассемблера для ДССП-80. // Диалоговые микрокомпьютерные системы. М.: Изд-во МГУ, 1986, с Захаров В.Б., Мельникова Е.А. Организация словаря в ДССП-80. // Диалоговые микрокомпьютерные системы. М.: Изд-во МГУ, 1986, с Сидоров С.А. Исследование переносимости ДССП. // Диалоговые микрокомпьютерные системы. М.: Изд-во МГУ, 1986, с Руднев И.А. Целевая компиляция ДССП-программ. // Диалоговые микрокомпьютерные системы. М.: Изд-во МГУ, 1986, с Брусенцов Н.П., Захаров В.Б., Руднев С.А., Сидоров С.А., Чанышев Н.А. Развиваемый адаптивный язык РАЯ диалоговой системы программирования ДССП. М.: Изд-во Моск. Ун-та, 1987 г. – 80 с. 14. Брусенцов Н.П., Захаров В.Б., Руднев С.А., Сидоров С.А., Чанышев Н.А. Методические указания по программированию в ДССП. Ротапринт НИВЦ МГУ, 1988г. – 40 с.

Библиография Библиография 15. Чанышев Н.А. ДССП на персональных компьютерах в операционной среде RT-11. // Программное оснащение персональных компьютеров. М.: Изд-во Моск. ун-та, 1990, с Чанышев Н.А. ДССП в операционной среде ОС-РВ. // Математические проблемы информатики. М.: Изд-во Ленингр. ун-та, 1987, с Лякина Е.Н., Пшеничный К.А., Сидоров С.А., Шумаков М.Н. Система внутреннего программного оснащения DPROM. // Вопросы кибернетики. Сб. статей под ред. В.Б.Бетелина. М., с Сидоров С.А., Шумаков М.Н. ДССП как открытая система. // Дискретные модели. Анализ, синтез и оптимизация. Спб.: СпбГУ, с Волынец Р.В. Реализация ДССП для микропроцессоров Intel // Дискретные модели. Анализ, синтез и оптимизация. Спб.: СпбГУ, с Бурцев А.А. Механизм прерываний для интерпретатора сшитого кода. // Вопросы кибернетики. Сб. статей под ред. В.Б.Бетелина. М., с Бурцев А.А., Шумаков М.Н. Сопрограммный механизм в ДССП как основа для построения мониторов параллельных процессов. // Вопросы кибернетики. Сб. статей под ред. В.Б.Бетелина. М., с Волынец Р. Диспетчер параллельных процессов в ДССП-32р. // Интегрированная система обучения, конструирования программ и разработки дидактических материалов. М.: Изд-во факультета ВМиК МГУ, с

Библиография Библиография 23. Бурцев А.А., Франтов Д.В., Шумаков М.Н. Разработка интерпретатора сшитого кода на языке Си. // Вопросы кибернетики. Сб. статей под ред. В.Б.Бетелина. М., с Бурцев А.А., Рамиль Альварес Х. Средства объектно-ориентированного программирования в ДССП. // Программные системы и инструменты. Тематический сборник 4, М.: Изд-во факультета ВМК МГУ, с Бурцев А.А. ДССП – среда структурированной разработки программ как сложных систем. // Вторая Международная конференция Системный анализ и информационные технологии САИТ-2007 (10-14 сентября 2007 г., Обнинск, Россия): Труды конференции. Изд-во ЛКИ, т. 2. с Брусенцов Н.П., Маслов С.П., Рамиль Альварес Х. Микрокомпьютерная система обучения Наставник. –М.: Наука, Гл. ред. физ.-мат. лит., гл.4. с Лозовая Е.А. Система автоматизированной подготовки учебных курсов для МСО Наставник. // Дискретные системы и их программное обеспечение. Л.: Изд-во Ленингр. Ун-та, с Сидоров С.А. Кросс-система для микропроцессора К580 в ДССП. // Автоматизация разработки и моделирование вычислительных и микропроцессорных систем: Материалы семинара. М., с Грачев А.Ю. Продукционная система в ДССП-80. // Программное оснащение персональных компьютеров. М.: изд-во МГУ, 1990, с

Библиография Библиография 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).

11. ПРИЛОЖЕНИЯ Примеры программирования на ДССП

П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 ]

П2. Примеры применения команд ветвлений функция Abs(X) : если X

П3. Структурированные команды циклов Цикл с параметром счётчиком: [ N ] DO- BODY [ ] [ многократный вызов процедуры BODY ( N раз ) ] [ параметр T (значение вершины стека) уменьшается на 1 каждый раз ] [ перед очередным вызовом процедуры BODY, т.е. T= N-1,N-2, …,1,0 ] [ вызовы прекращаются, когда этот параметр становится

П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

П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 ] … ; обеспечивается возможность возбуждать ситуацию по прерыванию и по воздействию от другого параллельного процесса

П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

П7. Средства параллельного программирования двухуровневый ассортимент средств в духе языка Модула-2 Н.Вирта 1-ый уровень – сопрограммный механизм с операциями: NEWCONTEXT – создания контекста новой сопрограммы; TRANSFER – переключения с одного сопрограммного контекста на другой; 2-ой уровень – построенные на основе сопрограммного механизма мониторы, управляющие развитием параллельных процессов: Простой монитор SPMON предоставляет операции: START – з апустить процесс STOP – остановить процесс DELAY – задержать процесс на заданное время PAUSE – приостановить процесс, чтобы возобновить следующий по очереди все процессы в этом мониторе равноправны (одного приоритета) Монитор с приоритетами PPMON предоставляет дополнительно операции: WAIT – задержать процесс в ожидании сигнала SEND – послать сигнал для возобновления процесса PRIO! – изменить приоритет текущего процесса исполняется процесс с наивысшим приоритетом, а если таковых несколько, то процессор регулярно переключается между ними по прерыванию от таймера любую операцию с процессами можно выполнять по прерыванию

П8. Механизм прерываний на уровне интерпретатора сшитого кода не на уровне машинного кода, а на уровне интерпретатора сшитого кода Э то означает, что назначенную процедуру обработки прерывания интерпретатор ДССП/C начинает исполнять не в сам момент прерывания, а только по завершении текущей ДССП-команды, т.е. примитивной процедуры (примитива) гибкий (универсальный) механизм прерываний позволяет в процедуре обработки прерывания исполнять любые ДССП-команды, в том числе: возбуждать ситуацию переключать сопрограммный контекст запускать новый процесс посылать сигнал для возобновления задержанного процесса

П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 )