При разработке учебного языка нужно следовать некоторым основополагающим принципам (концепциям). Концепции разработки языка программирования делятся на три группы: семантические, синтаксические и прагматические (реализационные).
Основные семантические концепции, принятые при разработке учебного языка, следующие:
— понятия учебного языка должны соответствовать понятиям промышленных императивных языков программирования;
— множество понятий должно быть минимально;
— конструкции учебного языка не должны зависеть ни от аппаратной платформы, ни от операционной системы;
— язык должен поддерживать модульность, процедурное программирование и объектно-ориентированное программирование;
— конструкции языка должны удовлетворять принципам структурного программирования (единственный вход и единственный выход);
— намерения программиста всегда должны указываться явно (запрет умолчаний).
В качестве примеров запрета умолчаний можно привести следующие:
— отсутствие неявных преобразований типа (кроме преобразования в арифметических выражениях целый->вещественный);
— явный параметр this, задаваемый при определении метода класса;
— явное определение класса как базового для наследования;
— явное указание наследуемых элементов класса;
— явное указание типа константы при определении.
При разработке учебного языка были приняты следующие синтаксические концепции:
— базовая лексика языка должна быть русскоязычной;
— ключевые слова должны иметь английский эквивалент;
— каждый оператор языка начинается ключевым словом;
— все операторы завершаются символом «;» – точка с запятой;
— блочные конструкции языка завершаются ключевым словом «конец».
Основу реализации интерпретатора учебного языка составляют следующие принципы:
— эффективность выполнения не слишком важна;
— загрузка и связывание модулей должны выполняться динамически;
— управление памятью осуществляет система;
Не менее важными являются концепции реализации интегрированной среды, в рамках которой осуществляется обучение программированию:
— среда должна поддерживать работу и с одномодульными, и с многомодульными программами;
— среда должна обеспечивать простой и независимый от платформы механизм накопления программных компонент;
— среда должна позволять набор кода программы и в русской, и в английской лексике;
— переключение лексики не должно приводить к повторной трансляции программы;
— изменение ключевых слов в коде должно быть невозможно;
— ошибки должны определяться в момент набора программы;
— редактор кода, с одной стороны, должен обеспечивать традиционные операции редак-тирования текста, и с другой стороны, должен оперировать конструкциями языка;
— ввод-вывод данных должен осуществляться в рамках среды без выхода в операционную систему.
И наконец, среда должна предоставлять стандартную библиотеку в виде набора модулей на учебном языке.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!