
Языки программирования
Программирование - это искусство создавать программные продукты, которые написаны на языке программирования. Язык программирования – это формальная знаковая система, которая предназначена для написания программ, понятной для исполнителя (в нашем рассмотрении – это компьютер). Данный сайт предназначен для начинающих программистов, для чайников, для новичков, для детей, а также для профессионалов.
Программисты пишут свои программы на разных языках программирования, некоторые из них непосредственно понятны компьютеру, другие требуют промежуточных шагов трансляции. На сегодня существуют сотни, а может даже и тысячи языков программирования. Их можно разделить на три основных типа, это:
- машинные языки, - языки ассемблера (языки низкого уровня), - языки высокого уровня.
Машинные языки тяжелы для человеческого восприятия, но понятны для компьютера, то есть машинный язык - это "природный язык" компьютера. После этого появился язык ассемблер, который использует команды, которые при компиляции образуют машинный код. За ними идут языки высокого уровня. Очевидно, что языки программирования высокого уровня гораздо удобнее с точки зрения программиста, по сравнению с языками ассемблера и с машинными кодами.
Со времени создания первых программируемых машин разработчики языков придумали уже большое количество языков программирования. И за каждый год это число пополняются новыми языками. Некоторые языки известны только малому кругу людей, другие становятся известны миллионам. Профессиональные программисты иногда применяют в своей работе не один десяток разнообразных языков программирования.
Ассемблерные языки — являются символьным представлением машинных языков конкретного компьютера.
Метаязыки — языки, используемые для формального описания других языков.
Императивные языки — это языки, оперирующие командами, изменяющими значение элементов данных, располагают операциями присваивания и циклами. К ним относятся все современные языки программирования.
Декларативные языки — языки, оперирующие инструкциями данным и отношениями между ними. Алгоритм скрывается семантикой языка. Это аппликативные языки, языки логики и объектно-ориентированные языки. Примеры декларативных свойств - сложные множества и инструкции поиска по шаблону.
Процедурные языки — позволяют определять отдельные методы вычисления какой-нибудь проблемы. Включают в себя императивные и функциональные языки.
Аппликативные языки — функции применяются к значениям без побочного эффекта. Это Функциональные языки во всем своем многообразии.
Функциональные языки — оперируют функциями высокого порядка. В них манипуляции совершаются напрямую функциями, а не данными. К категории функциональных языков относятся Lisp, FP, APL, Nial, Krc.
Объектно-ориентированные языки — языки, в которых данные и функции, имеющие доступ к ним рассматриваютс как один модуль. Пример: Object Pascal, С++, Java, Objective Caml.
Языки запросов — обеспечивают интерфейс к базам данных.
Языки четвертого поколения (4GL) — высокоуровневые языки, могут использовать естественный английский язык или визуальные конструкции. Алгоритмы или структуры данных обычно выбираются компилятором.
Языки логики — языки, оперирующие предикатами и их отношениями p(x, Y). Программы состоят из набора заключений Хорна, которые могут быть:
фактами - p(X,Y) есть истина;
правилами - p истинно, если q1, q2 и qn истинны;
запросами - верны ли q1, g2 и gn? Где gi - цель.
Известные языки логического программирования: Prolog, KLO, Mandala и Mercury.
Параллельные языки могут быть многопрограммными (разделяющими один процессор) или мультипроцессорными(отдельные процессоры разделяют одну распределенную память). Параллельные языки различаются различными способами организации процессов и управления программами. Примеры: Modula, Ada, Concurrent Pascal.
Трансля́тор — программа или техническое средство, выполняющее трансляцию программы[1][2][3][4][2].
Транслятор обычно выполняет также диагностику ошибок, формирует словари идентификаторов, выдаёт для печати тексты программы и т. д.[1]
Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой.[1]