Jump to content

ПЛ/К

ПЛ/К
Обложка книги, описывающей диалект PL/C.
Парадигма процессуальный , императивный , структурированный , воспитательный
Разработчик Корнелльский университет
Впервые появился 1970  ( 1970 )
Стабильная версия
Версия 7.6 / 1977 г.
Дисциплина набора текста сильный
Диалекты
ПЛ/КТ, ПЛ/CS, PL/CV
Под влиянием
ПЛ/И , КУПЛ

PL/C — это учебный диалект языка программирования PL/I , разработанный на факультете компьютерных наук Корнельского университета в начале 1970-х годов под руководством профессора Ричарда В. Конвея и аспиранта Томаса Р. Уилкокса. [1] PL/C был разработан с конкретной целью использования для обучения программированию. PL/C Компилятор , реализовавший почти весь большой язык PL/I, обладал необычной способностью всегда компилировать программу за счет использования обширного автоматического исправления многих синтаксических ошибок и преобразования любых оставшихся синтаксических ошибок в выходные данные. заявления. Это было важно, потому что в то время студенты представляли свои программы на Перфокарты IBM и могут не получить свои выходные данные в течение нескольких часов. [2] Более 250 других университетов приняли PL/C; [3] как отмечалось в одном из учебников по PL/I конца 1970-х годов: «PL/C… компилятор PL/I, разработанный в Корнеллском университете… широко используется при обучении программированию». [4] Аналогичным образом, обзор языков программирования, проведенный в середине-конце 1970-х годов, показал, что «PL/C — это широко используемый диалект PL/I». [5]

Истоки и обоснование

[ редактировать ]
PL/C пришел с факультета компьютерных наук Корнелльского университета, расположенного в Апсон-холле на Инженерном четырехугольнике. [6] (здание в левом центре с желтыми полосами, здесь видно 1990-е годы)

Работа над этим проектом была основана на предыдущем компиляторе Корнелла для языка программирования CUPL , который, в свою очередь, находился под влиянием более ранней реализации языка Корнелла CORC . [7] Оба они были небольшими, очень ограниченными языками, предназначенными для обучения начинающим программистам. [1] CORC использовался в Корнелле с 1962 по 1966 год и CUPL с 1965 по 1969 год. [8] Группа Конвея принимала участие в разработке обоих этих проектов. [9] [10] каждый из которых пытался автоматически исправить ошибки исходного кода. [1]

В начале 1970-х годов Корнелл пытался найти язык обучения, который имел бы общее коммерческое признание, но в то же время содержал бы современные языковые особенности. [11] другой профессор компьютерных наук Корнелла, Дэвид Грис Как писал тогда , первый критерий фактически исключал семейство языков ALGOL , а второй критерий выступал против FORTRAN и BASIC (при этом COBOL даже не рассматривался); таким образом, они выбрали PL/I. [12] Хотя PL/I действительно использовался в образовательных целях, [13] это решение противоречило принципам большинства университетов, где одно исследование показало, что около 70 процентов американских студентов преподают на FORTRAN. [12] Однако Корнелл намеревался создать язык, который можно таким методам, как структурное программирование и поэтапное уточнение , и PL/I был более выразительным средством для этого, чем FORTRAN. было бы использовать для демонстрации принципов информатики и лучших инженерных практик, а также для обучения [14]

Для образовательных учреждений, которые все же решили использовать этот язык, доступный тогда серийный компилятор IBM PL/IF был слишком медленным как по времени компиляции, так и по времени выполнения, чтобы его использование было практичным для студенческих программ. [13] Аналогичная ситуация существовала и для FORTRAN, где компилятор IBM FORTRAN IV G работал слишком медленно, а Ватерлоо Университета реализация WATFOR стала очень популярным альтернативным решением. [13] Так появилась вакансия студента-компилятора для PL/I; действительно, IBM осознала это и связалась с Корнеллом и предложила создать «WATFOR для PL/I». [15] Действительно, это сравнение было бы сделано явным; как объяснил один университет пользователям своего компьютерного центра: «PL/C для PL/I — то же самое, что WATFOR для FORTRAN IV, быстрая система компиляции и работы с некоторыми возможностями пакетной обработки, предназначенная в первую очередь для использования студентами». [16]

IBM предоставила часть финансирования первоначальных усилий по разработке PL/C, которые проводились в 1968 и 1969 годах. [8] с буквой «C» в названии, обозначающей Корнелл. [9] PL/C начал регулярно использоваться в сентябре 1970 года. [8]

Диалект и особенности

[ редактировать ]

PL/C, большое подмножество PL/I, устранило некоторые из более сложных функций PL/I — ввод-вывод записей, обработку списков, многозадачность и препроцессор времени компиляции. [1] Он добавил обширные возможности отладки и устранения ошибок. PL/C был совместим с PL/I снизу вверх, а это означает, что программа, которая работает без ошибок под управлением компилятора PL/C, должна работать и под PL/I и давать те же результаты. [7] Единственным исключением являются случаи использования определенных несовместимых диагностических функций PL/C. Компилятор PL/C обладал необычной способностью всегда компилировать любую программу за счет использования обширного автоматического исправления многих синтаксических ошибок и преобразования любых оставшихся синтаксических ошибок в выходные инструкции.

PL/C предоставила расширения собственной версии PL/I. CHECK средство для отслеживания потока, а также дополнительно предоставило новые возможности, такие как PUT ALL; и PUT ARRAY; операторы для печати значений каждого скаляра и каждой переменной массива в этом месте программы. [14] PL/C также предоставляет псевдокомментарии, которые можно использовать для условного включения кода на основе параметров, предоставленных в карте управления заданиями PL/C:

*PL/C ID='ДЖЕЙН СМИТ' КОММЕНТАРИИ=(2)...   /*2 PUT SKIP LIST('В ТОЧКЕ Y ЗНАЧЕНИЕ НАСЕЛЕНИЯ ЕСТЬ', НАСЕЛЕНИЕ); */   /*4 ПОЛОЖИТЬ ВСЕ; */... 

Значение комментариев, показанное здесь, приведет к первому PUT оператор «раскомментирован» и вызывается во время выполнения, в то время как второй оператор, номер которого не совпадает, все равно будет комментарием. Псевдокомментарии также давали возможность использовать операторы, специфичные для PL/C, совместимым с PL/I способом, как и во втором случае, поскольку компилятор PL/I будет рассматривать их только как комментарии. [14]

PL/C обрабатывает арифметику с плавающей запятой , вычисляя все значения одинарной точности как двойную точность, что может усложнить попытки программиста проверить поведение округления конкретных вычислений. [17]

Простой пример исправления ошибок PL/C был представлен следующим образом: [7]

 ПУТ-СПИСОК (AB)ОШИБКА SY06 ОТСУТСТВУЕТ ЗАПЯТЬЯОШИБКА SY07 ОТСУТСТВУЕТ Точка с запятойPL/C ИСПОЛЬЗУЕТ ПУТ-СПИСОК (A, B); 

Хотя многие случаи, подобные этому, можно успешно исправить, бывают случаи, когда восстановление не дает того, что, вероятно, задумал программист. [1]

Существовало несколько других компиляторов PL/I, связанных с образованием , в том числе PLAGO из Политехнического института Бруклина и SP/k из Университета Торонто , однако они, как правило, использовали гораздо более ограниченные подмножества PL/I, тогда как PL/C поддерживал почти весь язык. [13] [18] А PL/C был единственным образовательным диалектом PL/I, упомянутым в экспертом по языкам Джин Э. Саммет . обширном обзоре языков программирования, использовавшихся в 1976–77 годах [5]

Проектирование и реализация

[ редактировать ]
Распечатка программы PL/C на линейном принтере из курса программирования в Корнелле в первом семестре в 1973 году.

Реализация самого компилятора PL/C была выполнена на языке ассемблера IBM 360 с интенсивным использованием макросов языка ассемблера . [7] Это было выполнено в виде трехпроходного компилятора , при этом первый проход выполнял синтаксический анализ и исправление синтаксических ошибок, второй проход выполнял семантический анализ и дальнейшее исправление ошибок, а третий проход выполнял генерацию кода . [7] PL/C необходимо было избежать давней проблемы «каскадной диагностики», когда одна ошибка внутренне, но часто ошибочно «исправляется» компилятором, что приводит к вторичной, третичной и дополнительной серии бесполезных сообщений об ошибках. [19] Дизайн промежуточного языка, используемого между проходами и сопровождающей таблицей символов, был адаптирован и является ключом к достижению возможностей исправления ошибок и диагностических отчетов PL/C. [1] Хотя некоторые из этих методов возникли в результате усилий Корнеллского университета CORC и CUPL, здесь они впервые использовались на большом языке программирования с полным набором функций коммерческого уровня. [1] Это было особенно примечательно, учитывая, что язык PL/I был общеизвестно сложен для компиляторов. [20]

Скорость компиляции PL/C была довольно хорошей — около 10 000–20 000 строк исходного кода в минуту на IBM System/360 Model 65 . [1] Работа, проделанная над PL/C, была описана в документе, представленном на совместной конференции AFIPS весной 1971 года. [7] Более известной была статья Конвея и Уилкокса «Проектирование и реализация диагностического компилятора для PL/I», опубликованная в мартовском номере ведущего журнала Communications of the ACM за 1973 год , что обеспечило проекту значительную известность в мире информатики. [1]

PL/C был реализован как система компиляции и запуска , [1] похож на ВАТФОР. [21] Он работал на IBM System/360 и System/370 под управлением ОС и HASP . [22] Таким образом, он был разработан для работы в разделе размером 128 КБ, где программное обеспечение PL/C и сгенерированный объектный код занимали максимум 100 КБ. [7] Исправление ошибок также было предпринято во время выполнения, при этом супервизор выполнения PL/C перехватывал или иным образом обнаруживал использование неинициализированных переменных, деление на ноль, выход индексов массива и т.п., выдавая диагностику и внося некоторую корректировку в разрешить программе продолжать работу. [1] В целом, использование PL/C значительно снизило остроту проблемы времени ожидания выполнения пакетных заданий (хотя Корнелл сам разработал систему ввода заданий, позволяющую очень быстро выполнять большинство пакетных заданий студентов). [8]

Использование и распространение

[ редактировать ]
Задание с использованием PL/C на уроке программирования во втором семестре Корнелла в 1974 году.

Как только он был готов, PL/C распространился за пределы самого Корнелла. [11] в виде магнитных лент, рассылаемых заинтересованным лицам. [8] Например, PL/C впервые был использован в Мичиганском университете осенью 1970 года. [16] Проект PL/C считался исследовательской, а не коммерческой деятельностью; однако тем предприятиям, которые хотели использовать PL/C, предлагалось в обмен заплатить « грант на исследование ». [6] По состоянию на 1972 год эта сумма составляла 1800 долларов. [13] и выросла до 2400 долларов к 1976 году. [6] Дальнейшая работа Корнелла по разработке PL/C частично финансировалась за счет этих платежей. [8]

PL/C быстро стал самой популярной из всех образовательных версий PL/I; [10] только в 1970–71 годах его разослали в 100 различных учреждений, в результате чего его купили 60 из них. [8] К 1976 году более 200 предприятий по всему миру установили PL/C. [11] [23] В конечном итоге его использовали более 250 университетов. [3] Также был некоторый интерес к PL/C со стороны неакадемических организаций, в результате чего в PL/C была добавлена ​​поддержка некоторых бизнес-ориентированных функций, таких как переменные PICTURE. [6]

Опрос, проведенный Университетом штата Нью-Мексико в 1972 году, рассматривал различные возможности преподавания языков и их реализаций и пришел к следующим выводам относительно PL/C:«PL/C кажется достойным похвалы. Его покупная цена (1800 долларов), вероятно, является его самым большим недостатком. Он имеет все встроенные функции, которые есть в PL/I, намного быстрее как в компиляции, так и в исполнении, и работает на 86 КБ из 100 КБ раздела. оставляя 14 КБ для студенческой программы. Единственным возможным недостатком для студенческих программ является отсутствие возможности ввода-вывода записей. Компилятор PL/C не только диагностирует ошибки, но часто исправляет их должным образом. Он вставляет недостающие круглые скобки и точки с запятой и показывает и то, и другое. неверный оператор и исправленный оператор. Если PL/C находит оператор совершенно нераспознаваемым, он удаляет его и все равно пытается выполнить». [13]

Некоторые университеты, в том числе Университет штата Вашингтон , добились успеха в преподавании вводного класса, в котором сначала использовался PL/C, а затем Фортран (с использованием WATFIV), что оказалось полезным с точки зрения обучения студентов. [24] Действительно, Корнелл в какой-то момент изменил структуру своего вводного курса, чтобы дать студентам возможность сделать это. [22]

Номера выпусков PL/C были в некоторой степени синхронизированы с выпусками компилятора IBM PL/IF, так что, например, выпуск 4 PL/C должен был соответствовать версии 4 компилятора IBM F с точки зрения совместимости снизу вверх. [16] Что касается некоторых экземпляров дистрибутивов PL/C, то к январю 1971 года была доступна версия 4; [16] Выпуск 6 к августу 1971 г.; [1] Выпуск 6.5 к ноябрю 1973 г.; [25] Выпуск 7.1 в марте 1975 г.; [26] и версия 7.5 в марте 1976 г. [6] Последней версией PL/C, судя по всему, была версия 7.6, выпущенная в 1977 году. [27]

Варианты

[ редактировать ]

На факультете информатики в Корнелле существовало чувство гордости за то, что PL/C связан с университетом, и существовало несколько вариантов PL/C, над которыми работал Конвей, другие преподаватели и аспиранты. [28]

В 1974 году в Корнелле впервые стал доступен вариант PL/C PL/CT, предназначенный для использования на интерактивных терминалах, а не при пакетной отправке заданий. [29] Второй выпуск состоялся в 1975 году. [30] а затем в 1976 году он стал доступен сторонним учреждениям. [6] PL/CT в основном работал на IBM System/370 под управлением VM/CMS ; [30] он также может работать в среде IBM TSO . [29] Несколько необычно, что PL/CT не интерпретировался, а скорее реализовывался как компилятор. [29]

К 1976 году разрабатывался вариант PL/CS, который представлял собой гораздо более ограниченное подмножество PL/I, чем обычный PL/C, и который обеспечивал прямую языковую поддержку утверждений . [11] Однако этого подмножества было достаточно, чтобы PL/CS по-прежнему подходил для преподавания вводных классов программирования. [31] Он был реализован как альтернативный лексический и синтаксический анализатор, который затем подключался к общему генератору кода PL/C и системе выполнения. [11] PL/CS также использовался в исследованиях формальной семантики языков программирования . [31]

Другая реализация определения PL/CS появилась благодаря профессору Тиму Тейтельбауму и его новаторской работе по синтезатору программ Корнелла . [32] Этот ранний экземпляр интегрированной среды разработки был разработан в 1978 году для PDP-11/60 . [33] и содержал структурированный редактор для PL/CS, а также инкрементальный компилятор и интерпретатор . [34] Программный синтезатор Корнелла вскоре был адаптирован для настольной рабочей станции Terak , первого персонального компьютера, [33] который был основан на процессоре LSI-11 . [2] Компьютер Terak нашел популярность для использования в учебных целях в Корнелле и других университетах, как и доступный на нем PL/CS. [2] [23] Кроме того, Корнелл построил связь между Terak и их мэйнфреймом IBM 370, которая позволила бы выполнять программы на PL/C в пакетном режиме и получать результаты на принтерах. [8]

Работа над еще более экспериментальным диалектом началась в 1975 году. [35] это было известно как PL/CV, которое обеспечивало некоторую языковую поддержку для формального доказательства правильности и выполнялось как отдельный этап проверки. [11] Работой PL/CV руководил профессор Роберт Л. Констебль . [35] [36] PL/CV использовала PL/CS как часть того, что делала, [35] и действительно, Констебль участвовал в создании PL/CS, [11] особенно работая с Конвеем и Дэвидом Грайсом над добавлением утверждений. [36] Вторая версия, PL/CV2, была выпущена в 1978 году и представлена ​​на Симпозиуме по принципам языков программирования в 1979 году. [35]

Кросс-компиляторы

[ редактировать ]

В начале 1970-х годов были созданы три кросс-компилятора на базе PL/C в Университете Северной Каролины ; в них хост-платформой была IBM 360, [37] и целевой машиной был один из нескольких миникомпьютеров, использовавшихся в то время. В этих кросс-компиляторах использовалось подмножество языка PL/C. [38] как и первые два прохода компилятора PL/C для синтаксического и семантического анализа. [39] Однако модули прохода генерации кода IBM 360 и распределения памяти были заменены модулями, специфичными для целевой архитектуры. [39]

Первым из этих кросс-компиляторов был PLCV (не путать с верификатором PL/CV), кросс-компилятор для Varian Data Machines . миникомпьютеров [40] в частности, 620/i и 620/f, созданные примерно в 1971 году. [37] Улучшенная версия PLCV вышла примерно в 1973 году. [39] Второй, PLCI, был ориентирован на модель Interdata Model 3; Примерно в то же время у него также была исправленная версия. [39] Третьим был PLCD, использовавшийся для Digital Equipment Corporation компании миникомпьютера PDP-11/45 , вышедшего в 1973 году. [40] Опять же, PLCD использовал PL/C, но генератор кода IBM 360 был заменен генератором кода для PDP-11/45. [40]

Университет Северной Каролины использовал эти кросс-компиляторы для реальных проектов, а не только для образования; в частности, PLCD использовался для поддержки среды графического программирования , которая использовала один и тот же язык программирования как для мэйнфрейма общего назначения, так и для мини-компьютера с графической поддержкой, что позволяло упростить перенос кода с одного на другой. [38] Компилятор IBM PL/IF использовался на мэйнфрейме, программисты ограничивались подмножеством языка PL/C, а PLCD использовался для генерации кода для PDP-11/45. [40]

Учебники

[ редактировать ]

Учебник « Введение в программирование: структурированный подход с использованием PL/I и PL/C» был написан Конвеем и Грайсом с использованием PL/C в качестве языка программирования и опубликован в 1973 году. [14] Он представил дизайн сверху вниз , [23] и повсюду подчеркивал важность структурного программирования, став одним из самых известных учебников по этому вопросу. [41] Один раздел книги был посвящен соображениям корректности программ , таким как теорема об инвариантных отношениях ; [14] Говорят, что это был первый учебник по программированию, включивший такой материал. [10] У книги был потенциальный рынок сбыта в любом университете, использующем PL/C, и позже Конвей сказал, что книга продавалась очень хорошо. [15]

Второе издание вышло в 1975 году. [41] Помимо реорганизации некоторых материалов по разработке и тестированию компьютерных программ, [41] в него вошли изменения, внесенные в 7-ю версию компилятора PL/C. [42] Третье издание было опубликовано в 1979 году и, помимо того, что материал учебника был представлен на несколько более высоком уровне, чтобы отразить тот факт, что многие студенты колледжей ранее имели опыт программирования в средней школе, оно включало дополнения, отражающие варианты PL/C PL/CT и PL/CS. . [43]

«Введение в программирование: структурированный подход» использовалось в качестве основы для нескольких дополнительных учебников, иногда с дополнительными соавторами, которые были либо нацелены на более начальный уровень, либо охватывали другие языки или диалекты. [44]

Наследие

[ редактировать ]

PL/C все еще использовался в начале 1980-х годов. [2] [32] Однако к тому времени язык программирования Паскаль начал выходить на передний план в качестве языка обучения, и продолжалось движение студенческого доступа к меньшим и более распределенным компьютерным системам, чем мейнфреймы IBM. [2] [8] А сам PL/I так и не завоевал того доминирования, на которое надеялись его разработчики, ни в сфере бизнеса, ни в области научного программирования. [8]

В самом Корнелле переход на использование Паскаля на вводных занятиях по программированию произошел в 1984 году. [45] Конвей заявил, что ему неизвестно, как долго PL/C использовался на различных объектах, где он был установлен. [15]

В 2012 году продолжались попытки возродить популярную терминальную систему Michigan Terminal System и программное обеспечение, которое работало на ней, в рамках усилий по архивированию симуляторов IBM 360/370. Среди вещей, которые они просили, было разрешение на запуск объектного кода PL/C, которое неофициально было предоставлено теми сотрудниками, связанными с ним, которые все еще находились в Корнелле. [46]

По состоянию на 2022 год , источник PL/C, похоже, утерян.

См. также

[ редактировать ]
  1. ^ Jump up to: а б с д и ж г час я дж к л Конвей, Ричард В .; Уилкокс, Томас Р. (март 1973 г.). «Проектирование и реализация диагностического компилятора для PL/I» . Коммуникации АКМ . 16 (3): 169–179. дои : 10.1145/361972.361992 . hdl : 1813/5952 .
  2. ^ Jump up to: а б с д и Стиллман, Рич (1980). «Технологии развиваются: использование микрокомпьютеров для преподавания элементарных программ информатики». Материалы 8-й ежегодной конференции ACM SIGUCCS по пользовательским сервисам (SIGUCCS '80) . Ассоциация вычислительной техники. стр. 135–139. дои : 10.1145/800086.802776 .
  3. ^ Jump up to: а б Объявления Корнелльского университета: Высшая школа менеджмента, 1984–85 . Корнелльский университет. 10 августа 1984 г. с. 22.
  4. ^ Барнс, Роберт Артур (1979). PL/I для программистов . Нью-Йорк: Северная Голландия. п. хв. ISBN  9780444002846 .
  5. ^ Jump up to: а б Саммет, Жан Э. (ноябрь 1978 г.). «Реестр языков программирования на 1976–77 годы». Уведомления SIGPLAN . 13 (11): 56–85. дои : 10.1145/953777.953783 . S2CID   13509254 .
  6. ^ Jump up to: а б с д и ж Ливитт, Дон (1 марта 1976 г.). «PL/C получает интерактивную версию» . Компьютерный мир . п. 15.
  7. ^ Jump up to: а б с д и ж г Морган, Ховард Л.; Вагнер, Роберт А. (1971). «PL/C: — Разработка высокопроизводительного компилятора для PL/I». Материалы весенней совместной компьютерной конференции (AFIPS '71 (Spring)) 18–20 мая 1971 г. . Ассоциация вычислительной техники. стр. 503–510. дои : 10.1145/1478786.1478858 .
  8. ^ Jump up to: а б с д и ж г час я дж Рудан, Джон В. (2005). История вычислений в Корнельском университете (PDF) . Итака, Нью-Йорк: Первое интернет-университетское издательство. стр. 48, 57, 62, 65–66, 86–87.
  9. ^ Jump up to: а б «Ричард Конвей» . Управление производством и эксплуатацией . 19 (3): 2-икс, х. Май 2010. ProQuest   356759223 – через ProQuest.
  10. ^ Jump up to: а б с «Факультет компьютерных наук Корнелла: 50 лет инноваций» . Корнелл Бауэрс, СНГ . Проверено 15 сентября 2022 г.
  11. ^ Jump up to: а б с д и ж г Конвей, Ричард В.; Констебль, Роберт Л. (ноябрь 1976 г.). PL/CS – дисциплинированное подмножество PL/I (отчет). Корнелльский университет. ТР76-293.
  12. ^ Jump up to: а б Грис, Дэвид (январь 1974 г.). «Чему учить на вводном курсе программирования?». SIGCSE '74: Материалы четвертого технического симпозиума SIGCSE по образованию в области информатики . Ассоциация вычислительной техники. стр. 81–89. дои : 10.1145/800183.810447 .
  13. ^ Jump up to: а б с д и ж Адамс, Дж. Мак; Инмон, Уильям Х.; Ширли, Джим (март 1972 г.). «PL/I в учебной программе по информатике». Бюллетень ACM SIGCSE . 4 (1): 116–126. дои : 10.1145/873684.873713 . S2CID   32179236 .
  14. ^ Jump up to: а б с д и Конвей, Ричард В .; Грис, Дэвид (1973). Введение в программирование: структурированный подход с использованием PL/I и PL/C . Кембридж, Массачусетс: Издательство Winthrop. стр. (iii), 3, 9, 192–206, 232–236 и passim . ISBN  9780876264065 . (Обратите внимание, что в первом издании на обложке используется «PL/1», а на титульном листе и в самом тексте — «PL/I».)
  15. ^ Jump up to: а б с Конвей, Ричард В. (31 июля 2015 г.). «Разговор с Ричардом В. Конвеем» . Устная история информатики (интервью). Беседовал Дэвид Грис. Библиотека Корнеллского университета. Смотрите сегменты в 35:00 и 40:30.
  16. ^ Jump up to: а б с д «Наличие PL/C в МТС» . Информационный бюллетень Вычислительного центра . Мичиганский университет. 21 января 1971 г. с. 5.
  17. ^ Халл, TE (1977). «Семантика арифметики с плавающей запятой и элементарных функций». В Коуэлле, Уэйн (ред.). Переносимость числового программного обеспечения . Берлин: Springer-Verlag. п. 42. ИСБН  0-387-08446-0 . ОСЛК   3311037 .
  18. ^ Холт, Ричард С.; Вортман, Дэвид Б. (июль 1975 г.). «Компиляторы SP/K (подмножество PL/1) теперь доступны для 360/370 и PDP-11» . Информационный бюллетень SIGMINI . 1 (1): 8–9. дои : 10.1145/1164857.1164862 . S2CID   29890098 .
  19. ^ Зейл, Стивен. «Работа с сообщениями об ошибках» . Кафедра компьютерных наук Университета Олд Доминион . Проверено 24 сентября 2022 г.
  20. ^ Пратт, Терренс В. (1975). Языки программирования: проектирование и реализация . Энглвуд Клиффс, Нью-Джерси: Прентис-Холл. стр. 385–386, 415.
  21. ^ Дотре, Айова; Пунтамбекар, А.А. (2008). Системное программное обеспечение . Технические публикации. п. 3-2.
  22. ^ Jump up to: а б Конвей, Ричард В. (1974). «Вводное обучение программированию». Материалы четвертого технического симпозиума SIGCSE по образованию в области информатики (SIGCSE '74) . Ассоциация вычислительной техники. стр. 6–10. дои : 10.1145/800183.810430 .
  23. ^ Jump up to: а б с Палаццо, Майкл (15 ноября 1978 г.). «Компьютерный отдел приобретает известность в США» The Cornell Daily Sun. , стр. 1, 10, 11.
  24. ^ Ньютон, Глен Э.; Старки, Дж. Денби (1976). «Преподавание PL/I и Фортрана начинающим». Материалы шестого технического симпозиума SIGCSE по образованию в области информатики (SIGCSE '76) . Ассоциация вычислительной техники. стр. 106–107. дои : 10.1145/800144.804769 .
  25. ^ См. изображение со списком программ.
  26. ^ «Новая версия PL/C» . Информационный бюллетень Вычислительного центра . Мичиганский университет. 12 марта 1975 г. с. 2.
  27. ^ См., например Себеста, Роберт В. (2010). Концепции языков программирования (Девятое изд.). Аддисон-Уэсли. п. 739. ИСБН  9780136073475 .
  28. ^ Грис, Дэвид (21 июля 2015 г.). «Разговор с Дэвидом Грайсом» . Устная история информатики (интервью). Беседовал Роберт Л. Констебль. Библиотека Корнеллского университета. Смотрите сюжет в 28:30.
  29. ^ Jump up to: а б с Конвей, Ричард; Мур, Чарльз; Ворона, Стивен (1977). «Интерактивная версия компилятора PL/C». Материалы ежегодной конференции 1977 года (ACM '77) . Ассоциация вычислительной техники. стр. 308–314. дои : 10.1145/800179.810220 . hdl : 1813/7028 .
  30. ^ Jump up to: а б Мур, Чарльз Г. III; Ворона, Стивен Л.; Конвей, Ричард В. (сентябрь 1975 г.). PL/CT — терминальная версия PL/C — выпуск 2 (отчет). Корнелльский университет. ТР75-259.
  31. ^ Jump up to: а б Констебль, Роберт Л.; Донахью, Джеймс Э. (июль 1979 г.). «Иерархический подход к формальной семантике с применением к определению PL/CS». Транзакции ACM в языках и системах программирования . 1 (1): 98–114. дои : 10.1145/357062.357069 . S2CID   7915928 .
  32. ^ Jump up to: а б Тейтельбаум, Тим; Репс, Томас (сентябрь 1981 г.). «Синтезатор программ Корнелла: среда синтаксически-управляемого программирования» . Коммуникации АКМ . 24 (9): 563–573. дои : 10.1145/358746.358755 . S2CID   14317073 .
  33. ^ Jump up to: а б Тейтельбаум, Тим (10 сентября 2015 г.). «Разговор с Тимом Тейтельбаумом» . Устная история информатики (интервью). Беседовал Дэвид Грис. Библиотека Корнеллского университета. Смотрите сегменты в 10:15 и 16:18.
  34. ^ Репс, Томас В.; Тейтельбаум, Тим (1989). Генератор синтезатора: система создания языковых редакторов . Нью-Йорк: Springer Verlag. стр. 3, 9. ISBN  9781461396239 .
  35. ^ Jump up to: а б с д Констебль, Роберт Л.; Джонсон, Скотт Д. (1979). «Точность PL/CV». Материалы 6-го симпозиума ACM SIGACT-SIGPLAN по принципам языков программирования (POPL '79) . Ассоциация вычислительной техники. стр. 7–20. дои : 10.1145/567752.567754 .
  36. ^ Jump up to: а б Констебль, Роберт Л. (21 июля 2015 г.). «Разговор с Робертом Л. Констеблем» . Устная история информатики (интервью). Беседовал Дэвид Грис. Библиотека Корнеллского университета. Смотрите сюжет в 16:30.
  37. ^ Jump up to: а б Тезисы исследований ERDA . Том. 1 / №3. Ок-Ридж, Теннесси: Управление энергетических исследований и разработок США. Март 1976 г. с. 474. Запись 4422.
  38. ^ Jump up to: а б Хэмлин, Гриффит; Фоли, Джеймс Д. (1975). «Настраиваемые приложения для графики с использованием спутников (CAGES)». Материалы 2-й ежегодной конференции по компьютерной графике и интерактивным технологиям (SIGGRAPH '75) . Ассоциация вычислительной техники. стр. 9–19. дои : 10.1145/563732.563734 .
  39. ^ Jump up to: а б с д Тезисы исследований ERDA . Том. 1 / №2. Ок-Ридж, Теннесси: Управление энергетических исследований и разработок США. Февраль 1976 г. с. 311. Запись 2956; также запись 2957.
  40. ^ Jump up to: а б с д Фоли, Джеймс Д. (1973). «Программное обеспечение для спутниковых графических систем». Материалы ежегодной конференции ACM (ACM '73) . Ассоциация вычислительной техники. стр. 76–80. дои : 10.1145/800192.805684 .
  41. ^ Jump up to: а б с «Компьютерный текст обновлен» . Журнал Итаки . 30 июня 1975 г. с. 6 – через Newspapers.com.
  42. ^ См. второе издание, «Предисловие», с. xiv .
  43. ^ См. Третье издание, «Предисловие», стр. xv – xvi .
  44. ^ «Тексты Дэвида Грайса» . Кафедра компьютерных наук Корнелльского университета . Проверено 23 сентября 2022 г.
  45. ^ Сравнить Объявления Корнелльского университета: курсы обучения, 1983–84 гг . Корнелльский университет. 15 июля 1983 г. с. 261. с Объявления Корнелльского университета: курсы обучения, 1984–85 гг . Корнелльский университет. 16 июля 1984 г. с. 268.
  46. ^ «Для *ПЛК» . Архив терминальной системы Мичигана. 3 апреля 2012 года . Проверено 19 сентября 2022 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 267edb5e9acc988f1beaf004a3bb8cd7__1704366960
URL1:https://arc.ask3.ru/arc/aa/26/d7/267edb5e9acc988f1beaf004a3bb8cd7.html
Заголовок, (Title) документа по адресу, URL1:
PL/C - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)