Cтраница 2
Эта книга опирается главным образом на опыт преподавания дисциплин, посвященных понятиям языков программирования, в Университете штата Техас, в Остине. Вдумчиво изучив рукопись, созданию книги способствовали Джефри Ульман, Ральф Грисволд, Саул Розен и Даниэль Фридман. Мои студенты, изрядно помучившись с ранними версиями текста, внесли много предложений по его улучшению. [16]
Предполагается внести существенные изменения в метод описания Алгола 68, которые уничтожат понятие расширенного языка и внесут все бывшие расширения непосредственно в синтаксис и семантику строгого языка. [17]
Наряду с примерами и упражнениями, другим средством для контроля правильности и полноты понимания изучаемых понятий языка должны стать приводимые синтаксические формы, которые выражают некоторые свойства этих понятий более четко и наглядно, чем при использовании только словесных описаний. Разбор и, в дальнейшем, обращение к этим формам, должны препятствовать появлению в программах синтаксических ошибок. [18]
В последнем случае атому может быть приписан некоторый смысл, остающийся за пределами системы понятий языка лисп. Этот смысл обычно излагается в виде словесных пояснений к программе. [19]
Процесс повторяется до тех пор, пока все вводимые промежуточные решения не будут реализованы при помощи только понятий языка. В процессе создания описания, следовательно, итерационно создаются программы, в тексте которых кроме операторов языка включены ( например, в комментариях) неформальные описания до их функционального назначения. [20]
Их особенности отражены в языке взаимодействия пользователя с ЭВМ, поэтому его знакомство с этими программами может быть ограничено умением пользоваться директивами в терминах и понятиях языка взаимодействия. [21]
Процедурно-ориентированные языки предназначены для описания алгоритмов ( процедур) решения задач, поэтому их иногда называют также алгоритмическими, хотя понятие алгоритмического языка не совпадает с понятием языка программирования. [22]
В заключение главы рассматривается несколько простых приложений, а в самом конце мы рассмотрим еще раз программу контроля капиталовложений, чтобы изучить способы устранения узких мест, возникающих в многозадачной структуре, показанной на рис. 2.5. Это можно сделать путем явного использования более эффективных механизмов межпроцессной коммуникации системы 1432, доступных пользователям через модули операционной системы, вместо непосредственного применения стратегии задач, основанной на понятии рандеву языка Ада. По завершении главы читатель должен яснее представлять картину компромиссов между двумя предложенными решениями данной проблемы. [23]
Поскольку акцент в работе Соссюра делается скорее на langue, чем на parole, не удивительно, что это было сочтено продвижением к односторонней оценке языка. Когда понятие языка испбльзуется таким же образом, как и в структурализме, оно также может вызывать одностороннюю оценку социальных структур. [24]
Ведущим понятием языка АЛГОЛ является понятие оператора. Это наиболее крупное и содержательное понятие языка: каждый оператор определяет некоторый вполне законченный этап вычислительного процесса. Запись оператора на АЛГОЛе может оказаться достаточно длинной; список понятий, из которых явно или косвенно образуется оператор, может быть весьма обширным, так что изучение этого понятия требует обстоятельного рассмотрения других понятий. Собственно говоря, определению понятия оператора, его использованию при разработке алгоритмов, а также переводу на язык машины и посвящены ближайшие семь глав. [25]
В более общем случае можно потребовать определить, возможна ли заданная последовательность запусков переходов или возможна ли какая-либо последовательность из множества последовательностей запусков. Эти вопросы анализа приводят к понятию языков сетей Петри и будут исследованы более детально в гл. [26]
Структура выражений в языке ассемблера ЕС ЭВМ показана на рис. 3.5. Выражение состоит из термов. Терм - это общее название ряда понятий языка ассемблера, смысл которых разъясняется ниже. [27]
В языке Си единицей для раздельной трансляции является файл, содержащий исходный текст программы, написанной на языке Си, и некоторые данные. Файл при этом является на самом деле не понятием языка Си, а понятием файловой системы. Имя некоторого статического объекта, описанного в файле вне всех функций ( содержащихся в этом файле), может быть сделано доступным из других файлов путем объявления его внешним с помощью служебного слова external. Разрешение внешних ссылок осуществляется на этапе компоновки. Подход, используемый в языке Си, хорошо подходит для решения больших задач, но может оказаться неподходящим в случае очень больших задач. Проблема, по мнению автора, заключается в том, что компоновщик имеет дело с разделяемыми именами подпрограмм и статическими данными и образует единое пространство имен для всей задачи, что может привести к конфликту имен в не связанных друг с другом частях программы. [28]
Говоря о языке описания схем Янова, нам может показаться необходимым предложить некоторое текстовое представление графа переходов. Автор, однако, в этом месте хочет показать читателю, что можно применять понятие языка не так уж буквально и, где возможно, трактовать конструктивные объекты как абстрактные, а где нужно, использовать другие наглядные формы представления объектов, нежели текстуальное. [29]
На рис. 1.17 показана схема пакета программ, в которой выделены отдельные компоненты организующей программы, выполняющие перечисленные выше функции. Поступающий текст задачи, написанный на входном языке, переводится на внутренний язык транслятором, который учитывает семантику понятий языка пакета, заданную в модели предметной области. По описанию задачи на внутреннем языке планировщик определяет последовательность выполнения модулей и выдает на внутреннем языке алгоритм решения. Затем компилятор составляет подробную программу решения, готовую для выполнения. [30]