ПЛ/К
Парадигма | процессуальный , императивный , структурированный , воспитательный |
---|---|
Разработчик | Корнелльский университет |
Впервые появился | 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]
Истоки и обоснование
[ редактировать ]Работа над этим проектом была основана на предыдущем компиляторе Корнелла для языка программирования 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='JANE SMITH' COMMENTS=(2) ... /*2 PUT SKIP LIST('AT POINT Y, THE VALUE OF POPULATION IS', POPULATION); */ /*4 PUT ALL; */ ...
Значение комментариев, показанное здесь, приведет к первому PUT
оператор «раскомментирован» и вызывается во время выполнения, в то время как второй оператор, номер которого не совпадает, все равно будет комментарием. Псевдокомментарии также давали возможность использовать операторы, специфичные для PL/C, совместимым с PL/I способом, как и во втором случае, поскольку компилятор PL/I будет рассматривать их только как комментарии. [14]
PL/C обрабатывает арифметику с плавающей запятой , вычисляя все значения одинарной точности как двойную точность, что может усложнить попытки программиста проверить поведение округления конкретных вычислений. [17]
Простой пример исправления ошибок PL/C был представлен следующим образом: [7]
PUT LIST (A B) ERROR SY06 MISSING COMMA ERROR SY07 MISSING SEMI-COLON PL/C USES PUT LIST (A, B);
Хотя многие случаи, подобные этому, можно успешно исправить, бывают и случаи, когда восстановление не дает того, что, вероятно, задумал программист. [1]
Существовало несколько других компиляторов PL/I, связанных с образованием , в том числе PLAGO из Политехнического института Бруклина и SP/k из Университета Торонто , однако они, как правило, использовали гораздо более ограниченные подмножества PL/I, тогда как PL/C поддерживал почти весь язык. [13] [18] А PL/C был единственным образовательным диалектом PL/I, упомянутым в экспертом по языкам Джин Э. Саммет . обширном обзоре языков программирования, использовавшихся в 1976–77 годах [5]
Проектирование и реализация
[ редактировать ]Реализация самого компилятора 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 распространился за пределы самого Корнелла. [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 год [update], источник PL/C, похоже, утерян.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б с д и ж г час я дж к л Конвей, Ричард В .; Уилкокс, Томас Р. (март 1973 г.). «Проектирование и реализация диагностического компилятора для PL/I» . Коммуникации АКМ . 16 (3): 169–179. дои : 10.1145/361972.361992 . hdl : 1813/5952 .
- ^ Jump up to: а б с д и Стиллман, Рич (1980). «Технологии развиваются: использование микрокомпьютеров для преподавания элементарных программ информатики». Материалы 8-й ежегодной конференции ACM SIGUCCS по пользовательским сервисам (SIGUCCS '80) . Ассоциация вычислительной техники. стр. 135–139. дои : 10.1145/800086.802776 .
- ^ Jump up to: а б Объявления Корнелльского университета: Высшая школа менеджмента, 1984–85 . Корнелльский университет. 10 августа 1984 г. с. 22.
- ^ Барнс, Роберт Артур (1979). PL/I для программистов . Нью-Йорк: Северная Голландия. п. хв. ISBN 9780444002846 .
- ^ Jump up to: а б Саммет, Жан Э. (ноябрь 1978 г.). «Реестр языков программирования на 1976–77 годы». Уведомления SIGPLAN . 13 (11): 56–85. дои : 10.1145/953777.953783 . S2CID 13509254 .
- ^ Jump up to: а б с д и ж Ливитт, Дон (1 марта 1976 г.). «PL/C получает интерактивную версию» . Компьютерный мир . п. 15.
- ^ Jump up to: а б с д и ж г Морган, Ховард Л.; Вагнер, Роберт А. (1971). «PL/C: — Разработка высокопроизводительного компилятора для PL/I». Материалы весенней совместной компьютерной конференции (AFIPS '71 (Spring)) 18–20 мая 1971 г. . Ассоциация вычислительной техники. стр. 503–510. дои : 10.1145/1478786.1478858 .
- ^ Jump up to: а б с д и ж г час я дж Рудан, Джон В. (2005). История вычислений в Корнельском университете (PDF) . Итака, Нью-Йорк: Интернет-первое университетское издательство. стр. 48, 57, 62, 65–66, 86–87.
- ^ Jump up to: а б «Ричард Конвей» . Управление производством и эксплуатацией . 19 (3): 2-икс, х. Май 2010. ProQuest 356759223 – через ProQuest.
- ^ Jump up to: а б с «Факультет компьютерных наук Корнелла: 50 лет инноваций» . Корнелл Бауэрс, СНГ . Проверено 15 сентября 2022 г.
- ^ Jump up to: а б с д и ж г Конвей, Ричард В.; Констебль, Роберт Л. (ноябрь 1976 г.). PL/CS – дисциплинированное подмножество PL/I (отчет). Корнелльский университет. ТР76-293.
- ^ Jump up to: а б Грис, Дэвид (январь 1974 г.). «Чему учить на вводном курсе программирования?». SIGCSE '74: Материалы четвертого технического симпозиума SIGCSE по образованию в области информатики . Ассоциация вычислительной техники. стр. 81–89. дои : 10.1145/800183.810447 .
- ^ Jump up to: а б с д и ж Адамс, Дж. Мак; Инмон, Уильям Х.; Ширли, Джим (март 1972 г.). «PL/I в учебной программе по информатике». Бюллетень ACM SIGCSE . 4 (1): 116–126. дои : 10.1145/873684.873713 . S2CID 32179236 .
- ^ Jump up to: а б с д и Конвей, Ричард В .; Грис, Дэвид (1973). Введение в программирование: структурированный подход с использованием PL/I и PL/C . Кембридж, Массачусетс: Издательство Winthrop. стр. (iii), 3, 9, 192–206, 232–236 и passim . ISBN 9780876264065 . (Обратите внимание, что в первом издании на обложке используется «PL/1», а на титульном листе и в самом тексте — «PL/I».)
- ^ Jump up to: а б с Конвей, Ричард В. (31 июля 2015 г.). «Разговор с Ричардом В. Конвеем» . Устная история информатики (интервью). Беседовал Дэвид Грис. Библиотека Корнеллского университета. Смотрите сегменты в 35:00 и 40:30.
- ^ Jump up to: а б с д «Наличие PL/C в МТС» . Информационный бюллетень Вычислительного центра . Мичиганский университет. 21 января 1971 г. с. 5.
- ^ Халл, TE (1977). «Семантика арифметики с плавающей запятой и элементарных функций». В Коуэлле, Уэйн (ред.). Переносимость числового программного обеспечения . Берлин: Springer-Verlag. п. 42. ИСБН 0-387-08446-0 . ОСЛК 3311037 .
- ^ Холт, Ричард С.; Вортман, Дэвид Б. (июль 1975 г.). «Компиляторы SP/K (подмножество PL/1) теперь доступны для 360/370 и PDP-11» . Информационный бюллетень SIGMINI . 1 (1): 8–9. дои : 10.1145/1164857.1164862 . S2CID 29890098 .
- ^ Зейл, Стивен. «Работа с сообщениями об ошибках» . Кафедра компьютерных наук Университета Олд Доминион . Проверено 24 сентября 2022 г.
- ^ Пратт, Терренс В. (1975). Языки программирования: проектирование и реализация . Энглвуд Клиффс, Нью-Джерси: Прентис-Холл. стр. 385–386, 415.
- ^ Дотре, Айова; Пунтамбекар, А.А. (2008). Системное программное обеспечение . Технические публикации. п. 3-2.
- ^ Jump up to: а б Конвей, Ричард В. (1974). «Вводное обучение программированию». Материалы четвертого технического симпозиума SIGCSE по образованию в области информатики (SIGCSE '74) . Ассоциация вычислительной техники. стр. 6–10. дои : 10.1145/800183.810430 .
- ^ Jump up to: а б с Палаццо, Майкл (15 ноября 1978 г.). «Компьютерный отдел приобретает известность в США» The Cornell Daily Sun. , стр. 1, 10, 11.
- ^ Ньютон, Глен Э.; Старки, Дж. Денби (1976). «Преподавание PL/I и Фортрана начинающим». Материалы шестого технического симпозиума SIGCSE по образованию в области информатики (SIGCSE '76) . Ассоциация вычислительной техники. стр. 106–107. дои : 10.1145/800144.804769 .
- ^ См. изображение со списком программ.
- ^ «Новая версия PL/C» . Информационный бюллетень Вычислительного центра . Мичиганский университет. 12 марта 1975 г. с. 2.
- ^ См., например Себеста, Роберт В. (2010). Концепции языков программирования (Девятое изд.). Аддисон-Уэсли. п. 739. ИСБН 9780136073475 .
- ^ Грис, Дэвид (21 июля 2015 г.). «Разговор с Дэвидом Грайсом» . Устная история информатики (интервью). Беседовал Роберт Л. Констебль. Библиотека Корнеллского университета. Смотрите сюжет в 28:30.
- ^ Jump up to: а б с Конвей, Ричард; Мур, Чарльз; Ворона, Стивен (1977). «Интерактивная версия компилятора PL/C». Материалы ежегодной конференции 1977 года (ACM '77) . Ассоциация вычислительной техники. стр. 308–314. дои : 10.1145/800179.810220 . hdl : 1813/7028 .
- ^ Jump up to: а б Мур, Чарльз Г. III; Ворона, Стивен Л.; Конвей, Ричард В. (сентябрь 1975 г.). PL/CT — терминальная версия PL/C — выпуск 2 (отчет). Корнелльский университет. ТР75-259.
- ^ Jump up to: а б Констебль, Роберт Л.; Донахью, Джеймс Э. (июль 1979 г.). «Иерархический подход к формальной семантике с применением к определению PL/CS». Транзакции ACM в языках и системах программирования . 1 (1): 98–114. дои : 10.1145/357062.357069 . S2CID 7915928 .
- ^ Jump up to: а б Тейтельбаум, Тим; Репс, Томас (сентябрь 1981 г.). «Синтезатор программ Корнелла: среда синтаксически-управляемого программирования» . Коммуникации АКМ . 24 (9): 563–573. дои : 10.1145/358746.358755 . S2CID 14317073 .
- ^ Jump up to: а б Тейтельбаум, Тим (10 сентября 2015 г.). «Разговор с Тимом Тейтельбаумом» . Устная история информатики (интервью). Беседовал Дэвид Грис. Библиотека Корнеллского университета. Смотрите сегменты в 10:15 и 16:18.
- ^ Репс, Томас В.; Тейтельбаум, Тим (1989). Генератор синтезатора: система создания языковых редакторов . Нью-Йорк: Springer Verlag. стр. 3, 9. ISBN 9781461396239 .
- ^ Jump up to: а б с д Констебль, Роберт Л.; Джонсон, Скотт Д. (1979). «Точность PL/CV». Материалы 6-го симпозиума ACM SIGACT-SIGPLAN по принципам языков программирования (POPL '79) . Ассоциация вычислительной техники. стр. 7–20. дои : 10.1145/567752.567754 .
- ^ Jump up to: а б Констебль, Роберт Л. (21 июля 2015 г.). «Разговор с Робертом Л. Констеблем» . Устная история информатики (интервью). Беседовал Дэвид Грис. Библиотека Корнеллского университета. Смотрите сюжет в 16:30.
- ^ Jump up to: а б Тезисы исследований ERDA . Том. 1 / №3. Ок-Ридж, Теннесси: Управление энергетических исследований и разработок США. Март 1976 г. с. 474. Запись 4422.
- ^ Jump up to: а б Хэмлин, Гриффит; Фоли, Джеймс Д. (1975). «Настраиваемые приложения для графики с использованием спутников (CAGES)». Материалы 2-й ежегодной конференции по компьютерной графике и интерактивным технологиям (SIGGRAPH '75) . Ассоциация вычислительной техники. стр. 9–19. дои : 10.1145/563732.563734 .
- ^ Jump up to: а б с д Тезисы исследований ERDA . Том. 1 / №2. Ок-Ридж, Теннесси: Управление энергетических исследований и разработок США. Февраль 1976 г. с. 311. Запись 2956; также запись 2957.
- ^ Jump up to: а б с д Фоли, Джеймс Д. (1973). «Программное обеспечение для спутниковых графических систем». Материалы ежегодной конференции ACM (ACM '73) . Ассоциация вычислительной техники. стр. 76–80. дои : 10.1145/800192.805684 .
- ^ Jump up to: а б с «Компьютерный текст обновлен» . Журнал Итаки . 30 июня 1975 г. с. 6 – через Newspapers.com.
- ^ См. второе издание, «Предисловие», с. xiv .
- ^ См. Третье издание, «Предисловие», стр. xv – xvi .
- ^ «Тексты Дэвида Грайса» . Кафедра компьютерных наук Корнелльского университета . Проверено 23 сентября 2022 г.
- ^ Сравнить Объявления Корнелльского университета: курсы обучения, 1983–84 гг . Корнелльский университет. 15 июля 1983 г. с. 261. с Объявления Корнелльского университета: курсы обучения, 1984–85 гг . Корнелльский университет. 16 июля 1984 г. с. 268.
- ^ «Для *ПЛК» . Архив терминальной системы Мичигана. 3 апреля 2012 года . Проверено 19 сентября 2022 г.
Внешние ссылки
[ редактировать ]- Образовательные языки программирования
- Структурированные языки программирования
- Процедурные языки программирования
- Семейство языков программирования PL/I
- Языки программирования, созданные в 1970 году.
- Программное обеспечение для мейнфреймов IBM
- Программное обеспечение на языке ассемблера
- Корнелльский университет