Опубликован: 09.11.2006 | Уровень: для всех | Доступ: свободно
Лекция 12:

Формальные языки и грамматики

< Лекция 11 || Лекция 12: 123 || Лекция 13 >

Охарактеризуем эти уровни алгоритмических языков:

  • языки запросов (непроцедурные языки ) предназначены для осуществления диалога с некоторым пакетом прикладных программ, — это языки имитационного моделирования, в частности язык SLAM и др.;
  • языки высокого уровня (проблемно-ориентированные языки ) предназначены для решения определенного, но достаточно широкого класса задач, например, вычислительного характера или обработки текстов (символов) — это, к примеру, языки FORTRAN, BASIC, LISP и др.;
  • ассемблеры (семейство языков ), предназначены для укрупнения и символической (мнемонической) записи машинных команд;
  • языки микроопераций ( языки разработки микропрограмм) — собственно говоря, это и есть языки машинных операций.

Языки по типу их использования и сферам применения можно делить условно на следующие типы (это – не полная их классификация):

  1. языки процедурные;
  2. языки непроцедурные;
  3. языки функционального программирования;
  4. языки моделирования;
  5. языки аналитических преобразований;
  6. языки эвристические;
  7. языки описания, представления объектных языков или метаязыки.

Возможно и такое деление языков (отражающее характер их использования):

  1. метаязыки, языки описания других языков;
  2. языки описания, формулирования задач;
  3. языки описания технологии, сценариев решения задач;
  4. языки описания, разработки программ решения задач (или кодирования алгоритмов, часто вычислительного характера);
  5. языки описания, представления знаний (фреймовые языки);
  6. языки описания, представления данных;
  7. языки описания, формулировки решений задач.

В мире разработано несколько тысяч языков различного назначения.

Пример. Отметим следующие языки, которые оказали наибольшее влияние и преемственность в развитии языков программирования:

  • ФОРТРАН, язык научно-технических расчетов, разработан в 1955 году фирмой IBM;
  • АЛГОЛ, язык вычислительного характера, разработан в 1960 году Международным комитетом ученых;
  • БЕЙСИК, простой язык для начинающих, разработан в 1965 году в Дортмунде;
  • ПАСКАЛЬ, разработан в качестве языка учебного и исследовательского характера в 1969 году в Цюрихе Н. Виртом;
  • СИ, разработан лабораторией BELL (США, 1972 г.) в качестве языка поддержки и программирования ОС UNIX;
  • ПРОЛОГ, язык логического программирования, разработан Колмероэ в 1971-1973 годах;
  • ПИТОН (ПАЙТОН), разработан в начале 1990-х годов Гвидо ван Россумом и является простым объектно-ориентированным языком, расширяемым, совершенствуемым пользователями;
  • JAVAязык, ориентированный на сеть Интернет и серверы WWW; рассмотрим этот язык подробнее ниже;
  • HTML, предложен Тимом Бернерсом-Ли в 1989 году в качестве поддержки WWW-документов.

ЭВМ может исполнять программы, написанные на ее машинном языке, в машинных кодах. Для перевода с других языков на машинный язык составляется специальная программа, называемая транслятором. Алгоритм (программа на языке программирования) преобразуется в корректную последовательность команд и данных, загружаемых в память ЭВМ и выполняемых в ней аппаратно. Чем выше уровень используемого при составлении программы исходного языка, тем больше работ по трансляции программы. Транслятор переводит программу с исходного языка программирования на машинный язык загрузки ее в память и исполнения.

Существует два основных режима трансляции: компиляция и интерпретация. При интерпретации перевод на язык машины и выполнение каждой команды исходной программы осуществляется последовательно, покомандно, а полученная машинная программа пригодна только для одноразового решения задачи; данные вводятся при этом по мере трансляции. При компиляции до выполнения программы осуществляется полный перевод всей программы на машинный язык ЭВМ, затем полученная программа редактируется и загружается со всеми необходимыми для выполнения транслированной программы программами ОС в память ЭВМ и получается так называемый загрузочный модуль. Загрузочный модуль пригоден для многократного использования без повторной трансляции.

Пример. Язык Бейсик имеет трансляторы различного типа. Например, в среде TurboBasic (TBasic) – транслятор-интерпретатор, а в среде QuickBasic (QBasic) – транслятор-компилятор. Программа для TBasic интерпретируется по циклу: "ввод команды – перевод команды на внутренний машинный язык – ввод данных для данной команды – исполнение". Программа для QBasic компилируется по циклу: "перевод всех команд программы на внутренний язык – исправление ошибок в программе – ввод данных для программы – исполнение всей программы".

< Лекция 11 || Лекция 12: 123 || Лекция 13 >
Ирина Рыбакова
Ирина Рыбакова
тест
Анастасия Тимофеева
Анастасия Тимофеева
Как посмотреть свои результаты тестов и экзамена после того, как получил сертификат по курсу.
Светлана Ведяева
Светлана Ведяева
Россия, Саратов
Оксана Пагина
Оксана Пагина
Россия, Москва