UCSD Pascal
| UCSD Pascal | |
|---|---|
| | |
| Экран Редактора в UCSD p-System , Apple II | |
| Тип | высокоуровневый язык программирования и язык программирования |
| Разработчики | Калифорнийский университет в Сан-Диего, SofTech, Pecan |
| Языки интерфейса | английский |
| Дата выпуска | 1977 |
| Аппаратные платформы | Apple II, DEC PDP-11, Zilog Z80, MOS 6502, Motorola 68000, x86, Pascal MicroEngine |
| Последняя версия | Version IV |
UCSD Pascal — диалект языка программирования Паскаль.
Во второй половине 1970-х годов в Университете Сан-Диего (Калифорния, США) была разработана система UCSD p-System, которая включала в себя компилятор с языка Паскаль в переносимый p-код (сама идея компиляции в p-код была заимствована из более ранней системы Pascal-P). Первой получившей распространение за пределами университета версией была версия I.3, выпущенная в августе 1977 года[1].
Особенности языка
В UCSD Pascal было впервые для языка Паскаль реализовано несколько важных расширений, таких как модули, являющиеся единицами компиляции, а также строки символов переменной длины. Кроме того, поддерживались распространённые к тому времени расширения стандарта языка Паскаль, такие как директивы трансляции в псевдокомментариях, указание фактического имени файла при его открытии, обработка ошибок ввода-вывода, необязательность перечисления файлов в заголовке программы и т. п. Впоследствии основные коммерческие реализации языка Паскаль основывались на этой модификации Паскаля, прежде всего Object Pascal фирмы Apple и Turbo Pascal фирмы Borland.
Максимальная длина строки символов в UCSD Pascal, как и в более поздних диалектах 1980-х годов, составляла 255 символов, но по умолчанию в UCSD Pascal использовалась длина 80 символов.
Поддерживались нетипизированные файлы и соответствующие процедуры blockread и blockwrite.
Избыточно ресурсоёмкое на тогдашних аппаратных средствах управление памятью в куче при помощи процедур new и dispose в UCSD Pascal было заменено на более эффективное, но менее удобное и провоцирующее ошибки стековое управление динамической памятью (процедура dispose была пустой, текущий указатель стека динамических переменных запоминался при помощи процедуры mark и восстанавливался при помощи процедуры release, освобождая всю память, выделенную после соответствующего вызова mark).
Аналогично строковому типу string [n], поддерживался двоично-десятичный тип данных integer [n] с заданным количеством десятичных цифр.
Интересной особенностью диалекта UCSD Pascal был действовавший по умолчанию запрет на использование оператора goto (если не был указан специальный режим трансляции {$G+}, то оператор goto считался ошибкой).
Модули
В обзорных статьях иногда встречается утверждение, что концепция модулей в UCSD Pascal была взята из проекта языка Ада. Но разработчик UCSD Pascal Кеннет Боулз пишет, что напротив, модули в UCSD Pascal послужили прообразом аналогичного механизма пакетов в Аде[2], начало разработки которой было положено в 1977 году.
Реализации
Широкое распространение в конце 1970-х — начале 1980-х годов получила реализация UCSD Pascal II.1 на компьютере Apple II с процессором 6502, распространявшаяся по лицензии фирмой Apple Computer под торговой маркой Apple Pascal и с собственной нумерацией версий 1.0-1.3 (но среди пользователей более упоминаемая всё же как UCSD Pascal). В этой реализации были доступны дополнительные модули AppleStuff с различными системными вызовами (работа с клавиатурой, звуком и т. д.) и TurtleGraphics с пакетом черепашьей графики[чем?]. В Болгарии была произведена локализация Apple Pascal для компьютера Правец-82, данный продукт применялся в болгарской образовательной программе, использовавшейся также в СССР в 1980-х годах.
Последняя коммерческая версия компилятора UCSD Pascal распространялась фирмой Cabot Software под названием P-Code Pascal вплоть до 2001 года и имела реализации для платформ Windows, MS DOS, Macintosh, OS/2, RS/6000, Power PC, ARM, SCO UNIX, Interactive UNIX, Linux, DEC VAX, AIX, Hitachi SH. P-Code Pascal включал средства многозадачности и объектно-ориентированного программирования[3].
Примечания
- ↑ THE UCSD P-SYSTEM MUSEUM. Дата обращения: 5 октября 2009. Архивировано 17 февраля 2015 года.
- ↑ Файл с сайта Кеента Боулза www.kenbowles.net, Some Insights for UCSD Pascal Generation Архивная копия от 24 февраля 2021 на Wayback Machine на сайте retro8bits.com
- ↑ Cabot's P-Code Pascal. Дата обращения: 10 октября 2009. Архивировано 5 декабря 2008 года.
Ссылки
- Руслан Богатырев. Летопись языков Паскаль, Мир ПК, № 04/2001
- Аладжем М. А., Аладжем П. А. Паскал за персонални компютри. — София: Державно издателство «Техника», 1986. 240 с. (болг.) (описание реализации языка UCSD Pascal для компьютера Правец-82, аналог Apple II.
На английском языке:
- UCSD PASCAL System II.0 User's Manual March 1979
- UCSD files, файлы, включая компилятор
- UCSD Pascal and the PC Revolutionby, Christine Foster, USCD Alumni
- UCSD Pascal Reunion Symposium Архивная копия от 3 октября 2009 на Wayback Machine, Jacobs School Engineering, oct.2004,
- The UCSD P-System Museum
- Pascal for small machines, retro8bits.com
- UCSD Pasca, Yahoo! groups
- Here did the idea for the Java virtual machine come from?, Answer to the question Gosling
См. также
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.