Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
L02.doc
Скачиваний:
4
Добавлен:
15.11.2019
Размер:
83.46 Кб
Скачать

1.3.5. О других критериях

Существует множество других критериев оценки языков программирова­ния. Одним из них, например, является мобильность, определяющая легкость, с которой программу можно переносить из одной реализации в другую («переносимость)». На мобильность языка значи­тельно влияет уровень его стандартизации. Некоторые языки, например BASIC, Pascal, не стандартизированы, что затрудняет перенос программ, написанных на этих язы­ках. Стандартизация – долговременный и сложный про­цесс. Соответствующий комитет начал работу по выработке унифицированной версии языка C++ в 1989 году. К концу 1998 года этот процесс был завершен.

Еще два критерия оценки языка – универсальность (применимость к широкому кру­гу задач), четкость (полнота и точность официального описания языка).

Большинство критериев, в частности читабельность, легкость создания и надежность, не являются строго определенными или точно измеримыми. Тем не менее, эти кон­цепции полезны и дают возможность оценки языков программирования.

Критерии оценки языка имеют разный вес при его рассмотрении с разных точек зрения. Разработчиков систем реализации языков в основном интересует сложность реализации конструкций и свойств языка. Пользователей языка в первую оче­редь волнует легкость создания программ, во вторую – читабельность. Разработчики языков про­граммирования придают особое значение элегантности и возможности широкого исполь­зования языка. Кроме того, указанные характеристики иногда противоречат друг другу.

1.4. Факторы, влияющие на разработку языка

К таковым относятся архитектура компьютера и методологии программирования.

1.4.1. Архитектура компьютера

Базовая архитектура компьютера оказывает решающее влияние на разработку языков. Большинство популярных языков программирова­ния разрабатывались на основе неймановской архитектуры, названной по имени одного из ее авторов – Дж. фон Неймана. Такие языки называются императивными. В компьютере Неймана данные и программы хранят­ся в общей памяти, вы­полняющий команды процессор отделен от этой памяти. Следовательно, команды и данные должны передаваться процессору, результаты выполнен­ных процессором операций должны возвращаться в память. На неймановской архитектуре ком­пьютера основаны практически все цифровые вычислительные машины, созданные по­сле 1940-х годов.

Важными элементами императивных языков программирования являются

  • переменные, моделируемые ячейками памяти;

  • операторы присваивания, основанные на операции пересылки данных;

  • итеративная форма повторений, являющаяся наиболее эффективным методом в этой архитектуре.

Операнды выражений передаются из памяти в процессор, а результат вычисления выражения возвращается в ячейку памяти, представляемую левой частью оператора присваивания. Поскольку команды хранятся в соседних ячейках памяти, то итерации на компьютере Неймана выполняются быстро.

В функциональных языках программирования вычисления в основном производятся путем применения функций к заданным пара­метрам. Программирование на функциональном языке может осуществляться без тех переменных, которые используются в императивных языках программирования, а также без опера­торов присваивания и итераций. Многие ученые в области компьютерных наук приводят доводы в пользу таких языков программирования как LISP. Однако на практике эти языки не могут заменить императивные языки программирования, пока не будет разработан компьютер со специальной архитектурой, эффективно выполняющий функциональные программы.

Появившиеся в последние 20 лет машины с параллельными вычислениями дают на­дежду, что программы на функциональных языках будут выполняться бы­стрее. Все же этого пока недостаточно для конкурентоспособ­ности. Несмотря на возможности исполь­зования параллельной архитектуры, большинство новых машин пока используется для выполнения программ, написанных на императивных языках, в частности, на диалектах языка FORTRAN.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]