Оглавление
- 1 Язык программирования
- 1.1 Определение языков программирования
- 1.2 Реализация языков программирования
- 1.3 История языков программирования
- 1.4 1960-е и 1970-е годы
- 1.5 1980-е по 2000-е годы
- 1.6 2000-е по настоящее время
- 1.7 Элементы языков программирования
- 1.8 Синтаксис языка
- 1.9 Семантика языка
- 1.10 Система типов
- 1.11 Типы данных
- 1.12 Статический и динамический ввод текста
- 1.13 Гибкость и надежность языков программирования
- 1.14 Параллелизм и многопроцессорность
- 1.15 Обработка исключений
- 1.16 Проектирование и внедрение языков программирования
- 1.17 Компромиссы в языках программирования
- 1.18 Спецификация и реализация языков программирования
- 1.19 Проприетарные и открытые языки программирования
- 1.20 История и разнообразие языков программирования
- 1.21 Особенности языков программирования
- 1.22 Измерение популярности языков
- 1.23 Диалекты и разновидности
- 1.24 Классификации языков программирования
- 1.25 Дополнительные ресурсы
- 1.26 Полный текст статьи:
- 2 Язык программирования — Arc.Ask3.Ru
Язык программирования
-
Определение языков программирования
- Языки программирования — это системы обозначений для написания компьютерных программ.
- Они описываются в терминах синтаксиса и семантики.
- Включают функции, такие как система типов, переменные и механизмы обработки ошибок.
-
Реализация языков программирования
- Для выполнения программ требуется интерпретатор или компилятор.
- Интерпретатор выполняет исходный код, компилятор создает исполняемую программу.
-
История языков программирования
- Первые языки программирования были тесно связаны с аппаратным обеспечением.
- Языки высокого уровня (3GLs) абстрагировались от деталей аппаратного обеспечения.
- Фортран стал первым компилируемым языком высокого уровня.
-
1960-е и 1970-е годы
- Лисп стал первым функциональным языком программирования.
- АЛГОЛ стал стандартом для описания алгоритмов.
- Simula и C стали популярными языками, поддерживающими объектно-ориентированное программирование.
-
1980-е по 2000-е годы
- Персональные компьютеры изменили роли языков программирования.
- C++ и Java стали популярными языками.
- Появились языки для поддержки веб-страниц и сетей.
-
2000-е по настоящее время
- Замедление разработки новых языков.
- Сервис-ориентированное программирование и C# объединили императивное и функциональное программирование.
- Новые языки, такие как Rust и Go, конкурируют за производительность.
-
Элементы языков программирования
- Синтаксис определяет структуру языка.
- Большинство языков программирования являются текстовыми, некоторые — графическими.
-
Синтаксис языка
- Описывает комбинации символов, формирующие синтаксически корректную программу
- Определяется с помощью регулярных выражений и формы Бэкуса–Наура
- Примеры: 12345, () и (a b c232 (1))
-
Семантика языка
- Определяет значение комбинаций символов
- Может быть статической или динамической
- Статическая семантика включает проверку типов и контекстов
- Динамическая семантика определяет поведение программы
-
Система типов
- Определяет типы данных и операции с ними
- Полностью типизированные языки определяют типы для каждой операции
- Слабая типизация допускает неявное приведение типов
-
Типы данных
- Включают целые числа, числа с плавающей точкой, логические и символьные типы
- Массивы, строки, списки, ассоциативные массивы, записи и кортежи
- Указатели хранят адреса памяти
-
Статический и динамический ввод текста
- Статическая типизация определяет типы перед выполнением программы
- Динамическая типизация определяет типы только для значений, а не для переменных
-
Гибкость и надежность языков программирования
- Гибкость языков программирования достигается за счет снижения надежности и способности проверять ошибки.
- Некоторые языки допускают переменные типа union, что позволяет присваивать значения любого типа.
-
Параллелизм и многопроцессорность
- Параллелизм поддерживается на уровне команд и подпрограмм.
- Интерпретируемые языки, такие как Python и Ruby, не поддерживают параллелизм.
- Другие языки поддерживают управление данными и потоками с помощью семафоров и мониторов.
-
Обработка исключений
- Обработчики исключений могут завершать работу или возобновлять работу программы.
- Некоторые языки поддерживают завершение кода независимо от возникновения исключения.
- Обработка исключений может снижать производительность, но важна для надежности.
-
Проектирование и внедрение языков программирования
- Компьютерная архитектура влияет на разработку языков программирования.
- Императивные языки разработаны для архитектуры фон Неймана.
- Многие языки программирования были разработаны с нуля и изменены.
-
Компромиссы в языках программирования
- Читабельность, возможность записи и надежность важны для языков программирования.
- Эффективность часто ставилась выше удобочитаемости, но с 1970-х годов значение удобочитаемости возросло.
- Абстракция и выразительность помогают программистам писать код.
-
Спецификация и реализация языков программирования
- Спецификация языка программирования определяет допустимость и поведение кода.
- Реализация языка программирования преобразует программу в машинный код.
- Компиляторы переводят исходный код в машинный код, что ускоряет выполнение.
- Интерпретаторы переводят каждую строку кода в машинный код перед выполнением, что медленнее.
-
Проприетарные и открытые языки программирования
- Большинство языков программирования имеют открытые спецификации и реализации.
- Проприетарные языки программирования доступны только у одного поставщика.
- Некоторые языки находятся на границе между проприетарными и открытыми.
- Языки с открытым исходным кодом полезны для научных приложений.
-
История и разнообразие языков программирования
- Созданы тысячи языков программирования, особенно в области вычислительной техники.
- В проектах обычно используется пять или более языков.
- Языки программирования требуют большей точности и полноты, чем естественные языки.
-
Особенности языков программирования
- Языки программирования предоставляют структурированный механизм для определения данных и операций.
- Программисты используют абстракции для представления концепций вычислений.
- Программы могут выполняться в пакетном режиме или через интерпретатор.
-
Измерение популярности языков
- Определить наиболее популярный язык сложно из-за различных методов измерения.
- Методы включают подсчет объявлений о приеме на работу, проданных книг и строк кода.
- Stackify.com и TIOBE предоставляют списки популярных языков.
-
Диалекты и разновидности
- Диалекты языка программирования — это вариации, не меняющие его внутренней природы.
- Диалекты могут создаваться для использования в определенных предметных областях.
- Неопытному программисту сложно найти нужную документацию из-за множества диалектов.
-
Классификации языков программирования
- Языки программирования делятся на императивные, функциональные, логические и объектно-ориентированные.
- Императивные языки предназначены для реализации алгоритмов в определенном порядке.
- Функциональные языки работают путем последовательного применения функций.
- Логические языки решают, в каком порядке выполнять инструкции.
- Объектно-ориентированное программирование поддерживает абстракцию данных и наследование.
-
Дополнительные ресурсы
- Портал компьютерного программирования содержит информацию о языках программирования.
- Существуют списки языков программирования и исследователей.
- Приведены рекомендации для дальнейшего чтения.