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

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

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

Выражение, записанное на метаязыке с помощью конечного (счетного) числа операций и операндов, называется регулярным выражением.

В формальных грамматиках рассматриваются три основные проблемы:

  1. проблема вхождения – построить алгоритм, который для каждого задаваемого слова выясняет, принадлежит ли оно языку, допускаемому данной грамматикой ;
  2. проблема анализа – построить алгоритм, который для каждого слова, допускаемого данной грамматикой, строит вывод этого слова;
  3. проблема оценки сложности алгоритма вывода (вычислений).

Если первые две задачи – более "грамматического" характера, то третья задача – более "алгоритмического" характера.

С появлением компьютеров повысились требования к точности и структурированности алгоритма. Для этих целей разрабатываются алгоритмические языки. Это формальный язык, формализованный язык, так как он включает в себя и математическую символику, например, числа, знаки операций, переменные, выражения и др.

Алгоритмический язык – средство записи алгоритмов для исполнения, изучения логики алгоритма. Основное отличие алгоритмического языка от языка программирования (хотя их часто отождествляют) состоит в том, что последний предназначен для записи и исполнения алгоритмов в виде, понятном и исполнимом ЭВМ.

Основные атрибуты языка алгоритмического (программирования):

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

Любые математические выражения записываются на алгоритмических языках по правилам не только математики, но и этого языка.

Пример. На алгоритмическом языке Паскаль математическое выражение

y=2^{x}+3sin(x-\frac{4}{5})ln(x+\sqrt{x+5})

будет записано в виде y = exp(x*ln(2)) + 3*sin(x – 4/5)*ln(x + sqrt(x + 5)).

Пример. Выражению Паскаля w = sqrt(sqr(b + c) + 2/a*x/c) соответствует математическое выражение вида w=\sqrt{(b+c)^{2}+\frac{2x}{ac}}.

Вычисление значений выражений на алгоритмическом языке происходит в соответствии с принятым в языке старшинством операций.

Пример. Найдем b = ln(ехр(5)) + min(max(3,2),6) + mod(15,4)*int(1.99). Результат равен: b = 5 + min(3,6) + 3*1 = 5 + 3 + 3 = 11.

Первые ЭВМ поставлялись без программного обеспечения, и программисту приходилось описывать в программе все необходимое для ее работы. Разработка первых алгоритмических языков (например ForTran) упростила программирование, увеличила число людей, решающих на компьютере свои задачи без привлечения программистов, положила начало двум основным направлениям в программировании: прикладному и системному программированию, а затем и третьему – инструментальному программированию.

Прикладной программист (обычно на языках программирования высокого уровня) разрабатывает программы решения конкретных естественнонаучных задач.

Системный программист (обычно на языках программирования низкого уровня) разрабатывает программы автоматизации процесса написания и отладки прикладных программ, распределения ресурсов между прикладными программами, управления процессом прохождения таких прикладных программ на ЭВМ, например разрабатывает ОС.

Язык считается тем более высокого уровня, чем более он близок к языку естественному, и считается тем более низкого уровня, чем он ближе к языкам, реализуемым аппаратно, машинным.

< Лекция 11 || Лекция 12: 123 || Лекция 13 >
Ирина Рыбакова
Ирина Рыбакова
тест
Анастасия Тимофеева
Анастасия Тимофеева
Как посмотреть свои результаты тестов и экзамена после того, как получил сертификат по курсу.
Игорь Хан
Игорь Хан
Узбекистан, Ташкент, Ташкентский педагогический институт иностранных языков, 1990