
- •Министерство образования и науки Российской Федерации
- •Определение
- •Стандартизация языков программирования
- •Типы данных
- •Структуры данных
- •Семантика языков программирования
- •Парадигма программирования
- •Способы реализации языков
- •Используемые символы
- •Языки программирования
- •Основные понятия и определения Языки и знаки
- •Модель передачи сообщений
- •Языковые знаковые системы
- •Об универсальном языке
- •Формализация языка
- •Языки моделирования
- •Языки программирования и интегрированные среды
- •Языки программирования высокого уровня
- •История и эволюция
- •История и эволюция языков моделирования
- •История и эволюция языков программирования
- •1.3. Классификация языков
- •1.3.1. Классификация языков моделирования
- •1.3.2. Классификации языков программирования
- •1.4. Проблемы и перспективы развития
- •1.5. Рекомендации по литературе
1.4. Проблемы и перспективы развития
Через пять лет у нас будет один суперязык программирования, только мы не можем установить начало этого пятилетнего периода. Алан Дж. Перлис
Тезисно сформулируем основные проблемы и перспективы языков программирования:
Во-первых, следует отметить, что новые языки программирования будут появляться и дальше. Рано или поздно у нас возникнут кардинально новые мысли о программировании и, согласно гипотезе Хурфа-Сэпира, они потребуют новых языков.
Во-вторых, следует обратить внимание на грамотное воплощение идей, заложенных в языках. Идея может быть хорошей, даже отличной, но ее решение и воплощение в конкретном языке - неудачным и безобразным.
Некоторые выводы о распространении новых языков можно сделать на основе языка Java [Богатырев 1998].
Продвижение языка Java происходило за счет мощной рекламы, а не из-за достоинств самого языка.
На широкое распространение в наше время могут претендовать только те языки, которые поддержаны крупными фирмами, а не те, которые являются лучшими.
Время распространения и становления языка программирования (для получивших известность языков) составляет в среднем от 3 до 10 лет. В случае Java язык получил широкое распространение за один год.
В третьих, в условиях застоя в развитии языков программирования есть смысл тщательно проанализировать все полезные накопленные за это время идеи. Существуют попытки создания единой семантики современных языков программирования, в каком-то смысле опять приводящие к идее "универсального" языка [Андреев 2001].
В четвертых, Интернет требует языковых средств и подходов, обеспечивающих правильное взаимодействие большого числа независимо разработанных программ.
В пятых, использование структур и данных, которые раньше бы считались неприемлемыми из-за их неэффективности, сейчас вполне допустимо и может привести к новой организации языков. .,
Общий, несколько обнадеживающий итог звучит так. Ряд известных фирм и компаний (например, Microsoft, Sun Microsystems и т. п.) постепенно приходит к идеям, заложенным несколько десятков лет назад командой под руководством Никлауса Вирта.
1.5. Рекомендации по литературе
Горе тому, кто читает только одну книгу. Джордж Герберт
Выделим следующие работы, посвященные анализу и обзору языков программирования:
"Языки программирования. Практический сравнительный анализ" [Бен-Ари 2000]. Это один из лучших современных учебников по языкам программирования;
"Основные концепции языков программирования" [Себеста 2001]. Книга, содержит описание фундаментальных понятий программирования на примере вопросов разработки различных языковых конструкций;
"Языки программирования: разработка и реализация" [Пратт 1979]. Книга дает прекрасный подход к анализу языков на основе реализаторской позиции;
"Универсальные языки программирования. Семантический подход" [Калинин, Мацкевич 1991]. В книге обобщены и систематизированы требования к современным языкам программирования;
"Языки программирования: концепции и принципы" [Кауфман 1986]. Книга содержит основные принципы оценки, создания и использования современных языков программирования;
"A Critique of C++ and Programming and Language Trends of the 1990s". Работа Яна Джойнера (Ian Joyner) (http://www.elj.com/cppcv3/) представляет собой отличное введение в языки программирования и их сравнительный анализ;
"Феномен науки: кибернетический подход к эволюции" [Турчин 2000]. Автор прослеживает эволюцию мира от простейших одноклеточных организмов до возникновения языка, мышления, развития науки и культуры.
Две следующие книги содержат информацию о языках моделирования:
"Проектирование программного обеспечения экономических информационных систем" [Вендров 2000] - дает представление о многих языках моделирования;
"Самоучитель UML" [Леоненков 2001] - содержит описание языка моделирования UML.
Литература
Hal Abelson, Gerald Jay Sussman. Structure and Interpretation of Computer Programs
Роберт У. Себеста. Основные концепции языков программирования = Concepts of Programming Languages / Пер. с англ. — 5-е изд. — М.: Вильямс, 2001. — 672 с. — 5000 экз. — ISBN 5-8459-0192-8 (рус.), ISBN 0-201-75295-6 (англ.)
Вольфенгаген В. Э. Конструкции языков программирования. Приёмы описания. — М.: Центр ЮрИнфоР, 2001. — 276 с. — ISBN 5-89158-079-9
Паронджанов В. Д. Как улучшить работу ума. Алгоритмы без программистов — это очень просто! — М.: Дело, 2001. — 360 с. — ISBN 5-7749-0211-0
Ф. Бьянкуцци, Ш. Уорден. Пионеры программирования. Диалоги с создателями наиболее популярных языков программирования. — СПб.: Символ-Плюс, 2010. — 608 с. — ISBN 978-5-93286-170-7
"Языки программирования. Практический сравнительный анализ" [Бен-Ари 2000]. Это один из лучших современных учебников по языкам программирования;
"Основные концепции языков программирования" [Себеста 2001]. Книга, содержит описание фундаментальных понятий программирования на примере вопросов разработки различных языковых конструкций;
"Языки программирования: разработка и реализация" [Пратт 1979]. Книга дает прекрасный подход к анализу языков на основе реализаторской позиции;
"Универсальные языки программирования. Семантический подход" [Калинин, Мацкевич 1991]. В книге обобщены и систематизированы требования к современным языкам программирования;
"Языки программирования: концепции и принципы" [Кауфман 1986]. Книга содержит основные принципы оценки, создания и использования современных языков программирования;
"A Critique of C++ and Programming and Language Trends of the 1990s". Работа Яна Джойнера (Ian Joyner) (http://www.elj.com/cppcv3/) представляет собой отличное введение в языки программирования и их сравнительный анализ;
"Феномен науки: кибернетический подход к эволюции" [Турчин 2000]. Автор прослеживает эволюцию мира от простейших одноклеточных организмов до возникновения языка, мышления, развития науки и культуры.
"Проектирование программного обеспечения экономических информационных систем" [Вендров 2000] - дает представление о многих языках моделирования;
"Самоучитель UML" [Леоненков 2001] - содержит описание языка моделирования UML.
Ссылки
The Language List (англ.) — более 2500 языков с кратким описанием
Computer Languages History (англ.) — история языков программирования (с 1954 по май 2004) (содержит регулярно обновляемую диаграмму)
Examples (англ.) — примеры программирования на 162 языках
Programming Language Popularity (англ.) — исследование популярности языков программирования за 2004 год
10 языков программирования, которые стоит изучать (2006 г.)
Programming Community Index (англ.) — регулярно обновляемый рейтинг популярности языков программирования
Computer Language Shootout Benchmarks (англ.) — сравнение языков программирования по эффективности
Programming Languages that are Loved (англ.) — сравнение языков программирования по «любви» и «ненависти» к ним