Нужно стремиться к тому, чтобы каждая возможность языка способствовала бы усилению всех его свойств, но поскольку не всегда возможо выполнить все условия одновременно, то возможности языка следует выбирать в соответствии с приоритетом:
- Правильность исходного кода
- Простота использования языка
- Потенциальняя лёгкость воплощения транслятора
- Эффективность выходного кода
Учитывается, что:
- Язык ценен не только тем, что в нём есть, но и тем, чего в нём нет
- Добавить новую возможность легче, чем удалить старую
- И маловероятные ошибки могут становиться большими проблемами
- Возможность негарантированного обнаружения ошибки лучше гарантированного необнаружния
Если какие-то возможности нужны для оптимизации или обеспечения совместимости с внешним миром, но могут приводить к появлению ошибок или сложностям в понимании, то предпочтение будет отдаваться подходу, в котором такие возможности будут перемещены из ядра языка в разновидность раздела. Это будет стимулировать использовать более простые средства, не злоупотребляя преждевремнной оптимизацией кода.
Конструктивные особенности:
- Синтаксис
- Разделяемость
- Маршрутизация разделов
- Объявления и области видимости
- Подпрограммы
- Разновидности состояния переменной
- Виды постоянных
- Состояние правильности
- Ошибочное состояние
- Присваивание
- Утверждение
- Целочисленные типы
Другое:
Комментариев нет:
Отправить комментарий