Большой энциклопедический словарь
АЛГОРИТМИЧЕСКИЙ язык - формализованный язык для однозначной записи алгоритмов. Состоит из набора символов (алфавит), синтаксических правил и семантических определений. Является основой языков программирования.
Современная энциклопедия
АЛГОРИТМИЧЕСКИЙ ЯЗЫК, формализованный язык для однозначной записи алгоритмов. Состоит из набора символов (алфавит алгоритмического языка), синтаксических правил и семантических определений; теоретическая основа языков программирования. Нередко термины "алгоритмический язык" и "язык программирования" используют как синонимы.
Большой англо-русский и русско-английский словарь
algorithmic(al) language, programming languageprogramming language
Англо-русский словарь технических терминов
algorithmic(al) language, programming language
Медицинская энциклопедия
(син. язык программирования)
система символов и правил записи алгоритмов.
Философская энциклопедия
- АЛГОРИТМИЧЕСКИЙ ЯЗЫК
-
АЛГОРИТМИЧЕСКИЙ ЯЗЫК — искусственная система языковых средств, обладающая выразительными возможностями, достаточными для того, чтобы с ее помощью можно было задать любое принадлежащее заранее очерченному классу детерминированное общепонятное предписание, выполнение которого ведет от варьирующих в определенных пределах исходных данных к искомому результату. Такого рода предписания носят название алгоритмов, откуда и сам термин “алгоритмический язык”. В систематическое употребление он был введен в 1958 Г. Ботгенбрухом. Исторически понятие алгоритмического языка сформировалось в 50-х гг. 20 в. в процессе становления компьютерного программирования как самостоятельной научной дисциплины. Однако теоретические истоки этого понятия прослеживаются еще в работах 30-х гг. С. К. Клини, Э. Л. Поста, А. М. Тьюринга и А. Черча по уточнению общего математического понятия алгоритма. В настоящее время теория алгоритмических языков, а также проблематика, связанная с их разработкой и использованием, составляет один из важнейших разделов информатики.
В логико-лингвистическом и гносеологическом аспекте алгоритмические языки представляют собой одну из моделей императива (повелительного наклонения), и потому выступают, с одной стороны, как средство фиксации операционного знания, ас другой — как инструмент машинной, человеко-машинной или даже просто человеческой коммуникации. За короткий промежуток времени алгоритмические языки превратились в новое познавательное средство, органически вощедшее в научную и практическую деятельность человека. Обычно к ним предъявляется требование “универсальности”, заключающееся в том, что должна иметься возможность моделирования с их помощью любых алгоритмов из числа тех, которые дают какое-либо уточнение общего понятия алгоритма (напр., машин Тьюринга). Абсолютная точность синтаксиса алгоритмического языка необходима не во всех случаях. Она обязательна в рассмотрениях содержательного характера. Но в определенных ситуациях (напр., когда тексты, записанные на каком-либо алгоритмическом языке, начинают выступать в роди средства общения с компьютером) этот алгоритмический язык должен быть оформлен в виде соответствующего формализованного языка с четко описанным синтаксисом и точно заданной семантикой его грамматических категорий. Центральное место в таких алгоритмических языках занимают тексты, называющиеся программами (собственно говоря, именно они и выражают понятие алгоритма). Понятие программы формулируется в чисто структурных терминах синтаксиса этого языка, без какого-либо обращения к смысловым категориям. Точно такой же характер носит и описание процедуры выполнения программы. Поэтому в роли исполнителя алгоритмов, записанных на формализованных алгоритмических языках, может выступать не только человек, но и наделенное соответствующими возможностями автоматическое устройство, напр., компьютер. “Теоретические” алгоритмические языки (такие, как язык машин Тьюринга или нормальных алгорифмов Маркова) лежат в основе общей теории алгоритмов.
“Практические” алгоритмические языки—т. н. языки программирования для компьютеров (в настоящее время их известно более тысячи) — используются в практике ма
шинного решения самых разнообразных по своему характеру задач. На ранней стадии программирования употреблялись “машинно-ориентированные” алгоритмические языки (т. н. языки “низкого уровня”), учитывавшие структуру или даже характеристики конкретных вычислительных машин (систему команд, особенности и структуру памяти и т. п.). Потом им на смену пришли “проблемноориентированные” алгоритмические языки (языки “высокого уровня”), освободившие пользователя от необходимости ориентироваться на машины определенного типа и тем самым придавшие его усилиям гораздо большую математическую направленность. Дальнейшим развитием идеи алгоритмического языка явились языки программирования более общего, не обязательно алгоритмического характера. Как и алгоритмические языки, такие языки в конечном счете тоже нацелены на получение машинных программ, но во многих случаях их тексты допускают определенную свободу в выполнении и, как правило, дают лишь материал для синтеза искомых алгоритмов, а не сами эти алгоритмы. Все убыстряющееся проникновение вычислительных машин в научную, культурную и социальную сферы ведет к значительному повышению роли алгоритмических языков в жизни общества, и это выражается, в частности, в том, что алгоритмы и реализующие их программы (т. е., в конечном счете, тексты на некоторых алгоритмических языках) все более и более приобретают характер реальных ресурсов экономического, научного и культурного потенциала общества, что в свою очередь вызывает к жизни значительное количество серьезных методологических и гносеологических проблем. Кроме того, все расширяющееся (вплоть до обиходного) пользование алгоритмическими языками приводит к установлению особого стиля мышления, и соотношение мышления такого рода с традиционным математическим тоже представляет собой важную и мало разработанную методологическую проблему.
Лит.: Кнут Д. Искусство программирования для ЭВМ, т. 1-^3. M., 1976; Ершов А. П, Введение в теоретическое программирование: беседы о методе. М., 1977; Дейкстра Э. Дисциплина программирования. М„ 1978.
Я. М. Нагорный
Энциклопедический словарь
алгоритми́ческий язы́к
формализованный язык для однозначной записи алгоритмов. Состоит из набора символов (алфавит), синтаксических правил и семантических определений. Является основой языков программирования.
* * *
АЛГОРИТМИЧЕСКИЙ ЯЗЫКАЛГОРИТМИ́ЧЕСКИЙ ЯЗЫ́К, формализованный язык для однозначной записи алгоритмов. Состоит из набора символов (алфавит), синтаксических правил и семантических определений. Является основой языков программирования(см. ЯЗЫКИ ПРОГРАММИРОВАНИЯ).
Математическая энциклопедия
формальный язык программирования, - формальный язык, предназначенный для описания вычислительных процессов, или, что то же, для записи алгоритмов, подлежащих выполнению на вычислительных машинах..
Различают проблемно-ориентированные А. я. (А. я. высокого уровня), предназначенные для записи алгоритмов безотносительно к к.-л. определенным вычислительным машинам, и машинно-ориентированные А. я. (А. я. низкого уровня), уже учитывающие особенности той или иной вычислительной машины (список команд, характеристики запоминающего устройства и т. д.). Обычно под термином "А. я." понимают проблемно-ориентированный язык, противопоставляя его машинному языку, т. е. средству записи, воспринимаемой машиной непосредственно. Над законченными текстами ( программами).в А. я. определен универсальный алгоритм их однозначного выполнения, что отличает А. я. от не алгоритмических языков программирования, в к-рых процесс выполнения текста сугубо неоднозначен или текст служит только материалом для синтеза алгоритма решения задачи. Подобно естественным языкам, А. я. строится над алфлвитом основных символов (вк-ром записывается программа) в виде иерархич. системы своих грамматич. элементов с заданными на них отношениями (подобно словам, словосочетаниям и предложениям в естественном языке, связанным синтаксич. правилами). Элементы низшего уровня, образованные цепочками основных символов, наз. лексемами. Для вхождений лексем в прогамму пределена их принадлежность к нек-рому классу и к области действия- к.-л. однозначно выделяемой части программы, к к-рой относятся все входящие в нее экземпляры лексемы. Среди всех вхождений лексемы выделяется одно, к-рое наз. определяющим; остальные вхождения лексемы в область действия наз. использующим и. Следующие уровни элементов А. я. образуются понятиями. Между понятиями А. я. задается отношение быть (прямой) конституентой (т. е. непосредственной составной частью), а между конституентами данного понятия - отношение конкатенации (текстуального следования). Транзитивное замыкание конституентного отношения однозначно сопоставляет понятию нек-рое подслово текста программы, наз. порождением этого понятия. Существует одно начальное понятие, порождением к-рого является весь текст программы. Среди понятий выделяются позиции и субституенты. Субституента занимает нек-рую позицию, являясь ее прямой конституентой. Дерево, корень к-рого - начальное понятие, концевые вершины - лексемы и основные символы, внутренние вершины - понятия, а дуги - конституентные отношения, наз. деревом разбора программы. Построение этого дерева наз. синтаксическим анализом программы.
Понятия и лексемы обладают атрибутами, т. е. нек-рыми фиксированными описанием А. я. множествами, элементы к-рых сопоставляются элементам А. я. в качестве их характеристик. Нахождение атрибутов элементов А. я., входящих в программу, наз. ее с е-мантическим анализом. Нахождение атрибутов лексем начинается с анализа их определяющих вхождений, к-рые обычно содержат информацию об атрибутах в явном виде. Затем атрибутивная информация в пределах соответствующей области действия переносится на все использующие вхождения лексемы (идентификация). Атрибуты нек-рого понятия находятся индукцией по дереву разбора как функции атрибутов его конституент. Существенной частью се-мантич. анализа, имеющей большое значение для контроля правильности программы, является проверка на совместимость атрибутов позиции и ее субституенты (приведение). Почти во всех А. я. действуют те или иные правила умолчания, т. е. приписывание не специфицированному явно атрибуту нек-рого значения как функции контекста данного понятия. Таким контекстом могут быть: позиция, область действия, вся программа и, наконец, само описание А. я.
Правила синтаксич. анализа задаются либо порождающей грамматикой А. я. (см. Грамматика порождающая), либо анализирующим автоматом (точнее, его различными обобщениями), преобразующим текст программы в дерево разбора. Правила семантич. анализа описываются обычно неформально, однако предпринимались попытки формализовать определение атрибутивной информации и учет контекста с помощью механизма двухступенчатых грамматик (см. Алгол-68).
Алгоритм выполнения программ А. я. задается сопоставлением вершинам дерева разбора различных исполнительных процедур (называемых также трансдукторами, семантическими процедурами). Каждая процедура выполняет нек-рые действия как функцию атрибутов и того или иного контекста данного понятия (или лексемы), а затем определяет последующую процедуру. Действия процедуры либо непосредственно задают вычислительный процесс в терминах нек-рой абстрактной машины (семантика интерпретирующего типа), либо трансформируют порождение данного понятия во фрагмент программы в нек-ром языке низшего уровня (семантика трансляционного типа).
В конкретных А. я. алфавит основных символов обычно состоит из букв латинского (иногда с добавлением русского) алфавита, цифр, парных ограничителей (скобок), разделителей (знаков препинания) и нек-рых знаков операций. В связи с ограниченностью алфавита существуют правила кодирования основных символов комбинациями знаков, воспринимаемых входными устройствами машины. Основные классы лексем - нумералы для изображения чисел, литералы для изображения текстов, идентификаторы для обозначения различных объектов программы, определяемых в ней самой. Основными объектами являются переменные величины, м е т к и (наименования различных частей программы) и процедуры (функциональные обозначения). Смысл и назначение нек-рых идентификаторов фиксируется описанием А. я. (закрепленные слова).
Среди понятий А. я. выделяются базовые конструкции - описания, выражения и операторы. Описания являются источником атрибутивной информации, приписываемой определяющему вхождению лексемы. В основном атрибуты характеризуют тип (вид) значений, вычисляемых при выполнении программы, их представление и режим хранения в памяти ЭВМ. Для составных значений (векторов, матриц, структурных величин) указывается также способ доступа к их элементарным компонентам. Выражения являются источником значений; операторы - единицами законченных действий в программе; базовые операторы- это оператор присваивания значения выражения переменной величине, оператор п е-редачи управления (безусловной или по условию), оператор вызова процедуры, оператор цикла.
Циклы и процедуры являются наиболее характерными средствами А. я. для сокращенной записи сколь угодно длинных вычислений. Оператор цикла организует повторное выполнение нек-рой части программы (т е-л а цикла), управляемое заданным условием на число повторений. Описание процедуры вводит сокращенное параметризованное функциональное обозначение для нек-рои части программы (тело процедуры). Выполнение тела процедуры впоследствии может трактоваться как элементарное действие, инициируемое вызовом процедуры, вносящим одновременно в тело процедуры фактич. значения параметров.
Важное свойство А. я. - возможность регуляризации структуры программы, облегчающей ее написание, изучение и проверку правильности. Основными средствами регуляризации являются ограничения на структуру областей действия, тел процедур и циклов, а также регламентация употребления операторов передачи управления, ограничивающая ветвимость цепочек выполнения базовых операторов параллельно-последовательной структурой.
Программирование с использованием А. я. для вычислительной машины требует включения в ее программное обеспечение специальных программирующих процессоров- посредников между программами на А. я. и машиной. Процессор в своем развернутом составе выполняет следующие функции: ввод программы, лексический (выделение и классификация лексем), синтаксический п семантич. анализы с сигнализацией о формальных ошибках, синтез промежуточной формы (представление программы на внутреннем языке нек-рой абстрактной вычислительной машины, удобное для последующей обработки или выполнения программы), оптимизация (систематич. преобразование промежуточной формы, улучшающее такие характеристики программы, как ее размер, скорость и объем расходуемой памяти), генерация (построение машинной программы), выполнение программы. В процессорах транслирующего типа (трансляторы, компиляторы, программирующие программы) выполнение программы происходит после полного построения машинной программы. В процессорах интерпретирующего типа (шаговые, диалоговые, отладочные трансляторы) программа выполняется с помощью нек-рого механизма интерпретацип ее либо промежуточной формы, либо дерева разбора, либо даже исходного текста.
Различают одно-, двух- и многофазные схемы трансляции программ. В однофазной схеме все функции транслятора объединены в один просмотр текста программы. Оптимизация и промежуточная форма отсутствуют, а выделяемые вершины дерева разбора тут же порождают машинные команды программы. В двухфазных трансляторах обычно на первом просмотре программы строится дерево разбора, а на втором просмотре семантич. анализ объединяется с генерацией. Многофазные схемы с использованием промежуточной формы применяются в оптимизирующих трансляторах или в системах со сменной генерацией для различных типов машин, а для нек-рых А. я. требуются в силу сложности синтаксич. и семантич. анализов.
Количество разнообразных А. я., созданных для работы на вычислительных машинах, весьма велико (больше тысячи), однако только нек-рые из них получили широкое распространение. К ним относятся языки алгол, алгол-68, кобол, лисп, ПЛИ, симула, фортран, а в СССР также алгамс, альфа, рефал.
Лит.:[1] Ингерман П., Синтаксически ориентированный транслятор, пер. с англ., М., 1969; [2] Языки программирования, пер. с англ., М., 1972; [3] Xопгуд Ф., Методы компиляции, пер. с англ., М., (972; [4] Xигман Б., Сравнительное изучение языков программирования, пер. с англ., М., 1974. А. <П. Ершов.
Большой энциклопедический политехнический словарь
формализов. язык, для однозначной записи алгоритмов решения задачи на ЭВМ. Состоит из набора символов (алфавит А. я.), синтаксич. правил и семантич. определений. Осн. символами А. я. могут быть буквы русского или латинского алфавита, к.-л. знаки и условные символы. Конструкциями в А. я. являются слова, последовательности слов (фразы) и т. п., а также таблицы, системы таблиц и т. д. А. я., правила интерпретации к-рого аппаратурно реализованы в ЭВМ, наз. машинным языком. В отличие от естеств. языков А. я. характеризуется однозначностью и определённостью. См. также Язык программирования.
Русско-английский политехнический словарь
algorithmic(al) language, programming language
Dictionnaire technique russo-italien
linguaggio algoritmico
Русско-украинский политехнический словарь
алгоритмі́чна мо́ва
Русско-украинский политехнический словарь
алгоритмі́чна мо́ва
Естествознание. Энциклопедический словарь
формализован ный язык для однозначной записи алгоритмов. Состоит из набора символов (алфавит), синтаксич. правил и семантич. определений. Является основой языков программирования.