stringtranslate.com

UCSD Паскаль

UCSD Pascal — это система языка программирования Pascal , работающая на UCSD p-System , портативной, в высокой степени независимой от машины операционной системе . UCSD Pascal был впервые выпущен в 1977 году. Он был разработан в Калифорнийском университете в Сан-Диего (UCSD).

p-система

В 1977 году Институт информационных систем Калифорнийского университета в Сан-Диего (UCSD) разработал UCSD Pascal, чтобы предоставить студентам общую среду, которая могла работать на любом из доступных на тот момент микрокомпьютеров , а также на кампусных миникомпьютерах DEC PDP-11 . Операционная система стала известна как UCSD p-System.

Для своего оригинального IBM PC IBM предлагала три операционные системы . Первой была UCSD p-System, а двумя другими — IBM PC DOS и CP/M-86 . [1] Поставщик SofTech Microsystems [2] подчеркнул переносимость приложений p-System с виртуальными машинами на 20 процессоров на момент выпуска IBM PC. Было предсказано, что пользователи смогут использовать приобретенные ими приложения на будущих компьютерах под управлением p-System; В рекламе [3] ее называли «Универсальной операционной системой». [4]

Журнал PC Magazine осудил UCSD p-System на IBM PC, заявив в обзоре Context MBA , написанном на этом языке, что она «просто не создает хороший код». [5] p-System не очень хорошо продавалась для IBM PC из-за отсутствия приложений и из-за того, что она была дороже, чем другие варианты. Ранее IBM предлагала UCSD p-System в качестве опции для IBM Displaywriter ,специализированного текстового процессора на базе 8086 . (Встроенная операционная система Displaywriter была полностью разработана внутри компании и не была открыта для программирования конечным пользователем.)

Известные расширения стандартного Паскаля включают отдельно компилируемые модули и строковый тип. Были предоставлены некоторые встроенные функции для ускорения обработки строк (например, сканирование массива для определенного шаблона поиска); были предоставлены другие языковые расширения, позволяющие UCSD p-System быть самокомпилируемой и самостоятельно размещаемой .

UCSD Pascal был основан на машинной архитектуре p-кода . Его вклад в создание этих первых виртуальных машин заключался в расширении p-кода от его корней в качестве промежуточного языка компилятора до полноценной среды выполнения. [ нужны разъяснения ] UCSD Pascal p-Machine был оптимизирован для новых небольших микрокомпьютеров с адресацией, ограниченной 16 битами (всего 64 КБ памяти). Джеймс Гослинг называет UCSD Pascal ключевым фактором, повлиявшим (наряду с виртуальной машиной Smalltalk ) на разработку виртуальной машины Java . [6]

UCSD p-System достигла машинной независимости, определив виртуальную машину , названную p-Machine (или псевдомашину, которую многие пользователи стали называть «Pascal-машиной», как и ОС, хотя в документации UCSD всегда использовалась «псевдо-машина»). ) со своим собственным набором команд, называемым p-кодом (или псевдокодом). Урс Амманн, студент Никлауса Вирта , первоначально представил p-код в своей докторской диссертации [7] , на основе которого была получена реализация UCSD, реализация Zurich Pascal-P. Реализация UCSD изменила реализацию Zurich на «байтовую». P-код UCSD был оптимизирован для выполнения языка программирования Паскаль . Каждой аппаратной платформе тогда требовалась только написанная для нее программа-интерпретатор p-кода для переноса всей p-системы и всех инструментов для ее работы. Более поздние версии также включали дополнительные языки, скомпилированные в базу p-кода. Например, Apple Computer предложила компилятор Fortran [8] (написанный Silicon Valley Software, Саннивейл, Калифорния), создающий p-код, который работал на версии p-системы Apple. Позже TeleSoft (также расположенная в Сан-Диего ) предложила раннюю среду разработки Ada , которая использовала p-код и поэтому могла работать на ряде аппаратных платформ, включая Motorola 68000 , System/370 и Pascal MicroEngine .

UCSD p-System разделяет некоторые концепции с более поздней платформой Java . Оба используют виртуальную машину, чтобы скрыть различия в операционной системе и оборудовании, и оба используют программы, написанные на этой виртуальной машине, для обеспечения кроссплатформенной поддержки. Аналогично, обе системы позволяют использовать виртуальную машину либо как полную операционную систему целевого компьютера, либо запускать ее в «коробке» под другой операционной системой.

Компилятор UCSD Pascal распространялся как часть портативной операционной системы p-System.

История

UCSD p-System возникла примерно в 1974 году как идея Кеннета Боулза из UCSD [9] , который считал, что количество новых вычислительных платформ, появляющихся в то время , затруднит признание новых языков программирования. Он основал UCSD Pascal на версии портативного компилятора Pascal-P2 из Цюриха. Его особенно интересовал Паскаль как язык обучения программированию. UCSD представил две функции, которые были важными улучшениями оригинального Паскаля: строки переменной длины и «единицы» независимо скомпилированного кода (идея, включенная в развивавшийся в то время язык программирования Ada). Никлаус Вирт считает, что p-System и, в частности, UCSD Pascal, способствовали популяризации языка Pascal . Лишь после выпуска Turbo Pascal версия UCSD начала терять первое место среди пользователей Pascal.

Диалект UCSD Pascal произошел от подмножества Паскаля, реализованного в Pascal-P2, которое не было разработано как полная реализация языка, а скорее как «минимальное подмножество, которое могло бы самокомпилироваться», чтобы соответствовать его функции как набор начальной загрузки для компиляторов Pascal. UCSD добавил строки из BASIC и несколько других функций, зависящих от реализации. Хотя UCSD Pascal позже получил многие другие особенности полного языка Pascal, подмножество Pascal-P2 сохранилось в других диалектах, особенно в Borland Pascal , который копировал большую часть диалекта UCSD.

Версии

UCSD Pascal используется

Существовало четыре версии механизма p-кода UCSD, каждая из которых содержала несколько версий p-System и UCSD Pascal. Пересмотр механизма p-кода (т. е. p-Machine) означал изменение языка p-code, и поэтому скомпилированный код не переносится между различными версиями p-Machine. Каждая версия обозначалась ведущей римской цифрой, а версии операционной системы нумеровались как «точечный» номер после римской цифры p-кода. Например, II.3 представлял собой третью версию p-системы, работающую на второй версии p-машины.

Версия I

Оригинальная версия, никогда официально не распространявшаяся за пределами Калифорнийского университета в Сан-Диего . Однако заинтересованные пользователи свободно обменивались исходными кодами Паскаля для версий I.3 и I.5. В частности, версия патча I.5a была известна как одна из самых стабильных.

Версия II

Широко распространен, доступен на многих ранних микрокомпьютерах . Многочисленные версии включали машины на базе Apple II , DEC PDP-11 , Intel 8080 , Zilog Z80 и MOS 6502 , Motorola 68000 и IBM PC (Версия II на ПК была ограничена одним сегментом кода 64 КБ и одним сегментом стека/кучи 64 КБ ; Версия IV убрала ограничение на сегмент кода, но стоила намного дороже [ подсчитать ] ).

В число участников проекта той эпохи входят доктор Кеннет Л. Боулз , Марк Аллен , Ричард Гливс, Ричард Кауфманн, Пит Лоуренс, Джоэл МакКормак , Марк Овергаард, Кит Шиллингтон, Роджер Самнер и Джон Ван Зандт.

Версия III

Специальная версия, написанная для Western Digital для работы на их микрокомпьютере Pascal MicroEngine . Впервые включена поддержка параллельных процессов.

Версия IV

Коммерческая версия, разработанная и продаваемая SofTech. На основе версии II; не включал изменений по сравнению с версией III. Продавались плохо из-за сочетания структуры цен, проблем с производительностью из-за интерпретатора p-кода и конкуренции с собственными операционными системами (поверх которых он часто работал). После того, как SofTech отказалась от продукта, его подхватила Pecan Systems, относительно небольшая компания, созданная из пользователей и поклонников p-System. Продажи несколько возобновились, в основном благодаря разумной структуре цен Pecan, но p-System и UCSD Pascal постепенно уступили рынок собственным операционным системам и компиляторам. Доступно для TI-99/4A, оснащенного картой p-code, Commodore CBM 8096 , Sage IV, HP 9000 и BBC Micro со вторым процессором 6502.

Дальнейшее использование

Компьютер Corvus Systems использовал UCSD Pascal для всего своего пользовательского программного обеспечения. «Инновационная концепция» ОС Constellation заключалась в том, чтобы запускать Pascal (интерпретируемый или скомпилированный) и включать в руководство все распространенное программное обеспечение, чтобы пользователи могли вносить изменения по мере необходимости.

Смотрите также

Примечания

  1. ^ Уильямс, Грегг (январь 1982 г.). «Более пристальный взгляд на персональный компьютер IBM». БАЙТ . п. 36 . Проверено 19 октября 2013 г.
  2. ^ «SOFTECH MICROSYSTEMS UCSD p-SYSTEM ВЕРСИЯ IV ДЛЯ КОМПЬЮТЕРА APPLE II» (PDF) .
  3. ^ Эдлин, Джим; Баннелл, Дэвид (февраль – март 1982 г.). «Новый персональный компьютер IBM: принимаем меры / Часть первая». Журнал ПК . п. 42 . Проверено 20 октября 2013 г.
  4. ^ Реклама (август 1982 г.). «Этот человек разрабатывает приложения для всего рынка, включая Z-80, 8080, 8086/8088, 6502, LSI-11/PDP-11, 9900 и M68000, используя лучшее, что есть». БАЙТ . стр. 191, 193–195 . Проверено 19 октября 2013 г.
  5. ^ Захманн, Марк С. (июнь 1983 г.). «Контекст MBA: полшага в правильном направлении». Журнал ПК . п. 123 . Проверено 21 октября 2013 г.
  6. ^ Оллман, Эрик (1 июля 2004 г.). «Разговор с Джеймсом Гослингом». Очередь АКМ . Ассоциация вычислительной техники . Проверено 24 декабря 2012 г.
  7. ^ Амманн, У. (1977). «О генерации кода в компиляторе PASCAL». Программное обеспечение: практика и опыт . 7 (3): 391–423. дои : 10.1002/сп.4380070311. hdl : 20.500.11850/68668 . S2CID  2143405.
  8. ^ «Справочное руководство по языку Apple Fortran» (PDF) .
  9. Боулз, Кен (22 октября 2004 г.). «Некоторые идеи по генерации UCSD Pascal». Архивировано из оригинала 4 марта 2016 года . Проверено 13 февраля 2011 г. UCSD Pascal Units, вероятно, повлиял на пакеты Ada

дальнейшее чтение

Внешние ссылки