- •Министерство образования и науки Российской Федерации
- •Определение
- •Стандартизация языков программирования
- •Типы данных
- •Структуры данных
- •Семантика языков программирования
- •Парадигма программирования
- •Способы реализации языков
- •Используемые символы
- •Языки программирования
- •Основные понятия и определения Языки и знаки
- •Модель передачи сообщений
- •Языковые знаковые системы
- •Об универсальном языке
- •Формализация языка
- •Языки моделирования
- •Языки программирования и интегрированные среды
- •Языки программирования высокого уровня
- •История и эволюция
- •История и эволюция языков моделирования
- •История и эволюция языков программирования
- •1.3. Классификация языков
- •1.3.1. Классификация языков моделирования
- •1.3.2. Классификации языков программирования
- •1.4. Проблемы и перспективы развития
- •1.5. Рекомендации по литературе
Языки программирования высокого уровня
Язык программирования (алгоритмический язык) - набор правил, определяющих, какие последовательности символов составляют программу (синтаксические правила) и какие вычисления описывает программа (семантические правила).
Программа - текст, задающий множество процессов вычислений, в соответствии с которым исполнитель, понимающий программу, разворачивает какой-то один из них.
Выделим три основные характеристики языков программирования [Калинин, Мацкевич 1991].
Уровень языка - характеризуется сложностью задач, решаемых с помощью этого языка.
О том, чем определяется уровень языка программирования Интуитивно любой программист отличит язык программирования высокого уровня от языка программирования низкого уровня. В чем же состоит различие? Чем определяется уровень? Программирование представляет собой отображение в программах объектов, понятий и явлений предметной области задачи. Чем более адекватно можно выполнить это отображение, тем выше уровень языка программирования. А отображение будет выполнено тем лучше, чем богаче возможности типообразования языка программирования.
Мощность языка - характеризуется количеством и многообразием задач, алгоритмы решения которых можно записать, используя- это* язык.
О взаимосвязи уровня и мощности языка Чем выше уровень языка, тем ниже его мощность и наоборот.
Концептуальная целостность - характеризуется свойствами совокупности понятий, служащих для описания этого языка и включает три взаимосвязанных аспекта.
Экономия понятий - язык должен достигать своей Максимальной мощности минимальным количеством понятий.
Ортогональность понятий - между понятиями не должно быть взаимного влияния. Если понятие используется в различных контекстах, то правило его использования должно быть одним и тем же.
О неортогональности понятий даже самых лучших языков К сожалению, даже такие языки, как Pascal, допускают неортогональные конструкции. Например, пользователь может определить процедуры только с фиксированным числом параметров, однако некоторые стандартные процедуры (например, writeln()) могут быть вызваны с переменным числом параметров.
Единообразие понятий - требование согласованного единого подхода к описанию и использованию всех понятий.
Существует большое количество других характеристик.
Надежность - язык должен обеспечивать минимум ошибок при написании программ. Более того, язык должен быть таким, чтобы неправильные программы было трудно писать.
Удобочитаемость - легкость восприятия программ человеком. Это характеристика важна при коллективной работе, когда несколько человек работают с одними и теми же текстами программ.
Полнота - характеризует способность описать класс задач в некоторой предметной области.
Гибкость - характеризует легкость выражения необходимых действий.
Отметим два свойства, которые не влияют на процесс разработки, но играют важную роль, отражая реализаторскую позицию.
Мобильность - независимость от аппаратных средств, обеспечивающая переносимость программного обеспечения.
Эффективность - обеспечение эффективной реализации, которая включает:
эффективную реализацию компилятора;
эффективную генерацию компилятором кода программ.
И это только некоторые из свойств и характеристик. В одном из докладов военно-морскому флоту [Фоке 1985] исследователи насчитали более 2570 различных возможностей или свойств, которые можно выделить в языках программирования.
О конфликтовании характеристик языков Следует заметить, что многие из перечисленных характеристик конфликтуют друг с другом. Например, надежность и эффективность. Это подчеркивает сложности, с которыми приходится сталкиваться создателям новых языков.