На базарной площади довольно часто можно слышать высказывания об
Обероне. Мне кажется, что на базарной площади пора появиться ветке об
этой системе и языке, что-то вроде "Мысли об Обероне". Что это такое, перспективы
этой системы, что
полезного можно извлечь из него для программирования на Дельфи
(например) и др.
Ivan
Всего в теме 4531 сообщение
Ссылки по теме "Оберон" и "Компонентный паскаль"
Отслеживать это обсуждение
- Free Pascal, Oberon, BlackBox
- Разработка препроцессора gpre для delphi\freepascal.
- Component Pascal и среда разработки BlackBox
- FreePascal: реальная альтернатива или OpenSource — блажь?
№ 2611 11-08-2005 08:07 | |
Ответ на »сообщение 2568« (Руслан Богатырев)
___________________________
О книге "The School of Niklaus Wirth"
В открытом доступе есть еще одна глава из книги Школа Никлауса Вирта: искусство простоты" (The School of Niklaus Wirth: The Art of Simplicity, 2000).
3. Compiler Construction -- The Art of Niklaus Wirth
Hanspeter Moessenboeck
Pages: 55–68
http://www.ssw.uni-linz.ac.at/Research/Papers/Moe00b.html
Лежит в Postscript. В PDF легко преобразовать через Adobe Acrobat Professional.
Обязательно стоит прочитать.
Там есть интересный кусок про раздельную компиляцию (Separate Compilation) и обоснование того, почему в Оберонах произошел столь революционный отказ от явных DEFINITION-модулей.
№ 2610 11-08-2005 07:30 | |
В продолжение темы совместимости разных реализаций Oberon, Oberon-2 и Component Pascal.
Небезызвестный Гюнтер Дотцель (Guenter Dotzel), руководитель проектов по созданию компиляторов Modula-2/Oberon-2 для DEC Alpha и VAX (OpenVMS), на своем сайте http://www.zel.org постарался систематизировать такую информацию.
http://www.zel.org/oberon/osci.htm
Она похоже не совсем верна, но может служить неким ориентиром.
№ 2609 11-08-2005 06:51 | |
№ 2608 11-08-2005 06:15 | |
Ответ на »сообщение 2606« (Trurl)
___________________________
А где этот Table 14 находится? В документации к XDS (linux) я её в упор не нахожу...
№ 2607 11-08-2005 05:22 | |
Ответ на »сообщение 2603« (Руслан Богатырев)
___________________________
Супер!
А без этого нельзя. Надо думать о будущем заранее. Потому что это как раз та вещь, которую в будущем поменять будет абсолютно невозможно. Более того, обратите внимание на исходный код блэкбоксовского модуля Stores, а именно на все процедуры чтения/записи хранилища:
PROCEDURE (VAR rd: Reader) ReadInt* (OUT x: INTEGER), NEW;
VAR le, be: ARRAY 4 OF BYTE;
BEGIN
rd.rider.ReadBytes(le, 0, 4);
IF Kernel.littleEndian THEN
x := SYSTEM.VAL(INTEGER, le)
ELSE
be[0] := le[3]; be[1] := le[2]; be[2] := le[1]; be[3] := le[0];
x := SYSTEM.VAL(INTEGER, be)
END
END ReadInt;
Все блэкбоксовские данные всегда хранятся в little-endian варианте. При загрузке/выгрузке хранилища числа автоматически конвертируются в соответствующее представление чисел текущего процессора.
№ 2606 11-08-2005 01:50 | |
Ответ на »сообщение 2596« (Иван Горячев)
___________________________
>>>Кстати, XDS отнюдь не является хорошим выбором. Пусть меня поправят старшие товарищи, но у него кажись вообще нет 8-байтного целого и двубайтовое целое реализуется только через SYSTEM.
Table 14. Representation of Oberon-2 basic types
Oberon-2 type Bits Representation
SHORTINT 8 signed
INTEGER 16 signed
LONGINT 32 signed
CHAR 8 unsigned
BOOLEAN 8 unsigned byte
0 for FALSE, 1 for TRUE
REAL 32 80x87 single-precision data format
LONGREAL 64 80x87 double-precision data format
LONGLONGREAL 80 80x87 extended-precision data format
SET 32 packed set
Longreal* = 10 байт; (*не понимаю, зачем упорно игнорировать Интеловский Extended. но пока = Real*)
По стандарту этот самый Extended может использоваться только для промежуточных результатов.
№ 2605 10-08-2005 17:19 | |
А вот и ответ на вопрос, зачем в Component Pascal порушили систему базовых типов для Оберонов. Читаем у Пфистера:
The Component Pascal base types are a superset of the Java base types.
№ 2604 10-08-2005 17:10 | |
Ответ на »сообщение 2602« (Сергей Губанов)
___________________________
Речь идет о возможности ослабления контроля языка на уровне передачи параметров. Есть ли средства-заменители ARRAY OF BYTE в Component Pascal?
Быть может, что тип ANYREC всех ближе к тому что Вы ищете, хотя он уже совсем из другой оперы...
ANYREC ну совсем из другой оперы. ANYREC аналог ANYREC = ABSTRACT RECORD END;
№ 2603 10-08-2005 17:05 | |
Ответ на »сообщение 2599« (Сергей Губанов)
___________________________
...совместимость всех типов с ARRAY OF BYTE на уровне формальных параметров?
Это невозможно из-за различного порядка следования байтов в представлении чисел на машинах с разными архитектурами little-endian и big-endian.
Супер! Т.е. Пфистер сотоварищи изъяли мощный механизм совместимости в Оберонах, в том числе и для работы с разными базовыми типами, во имя пресловутой переносимости для разных процессорных архитектур. Интересно, а на каких таких специфических архитектурах с разным порядком представления битов сейчас доступен Component Pascal (или это для закрытых коммерческих проектов)?
Читаем обоснование для BITS у Пфистера ("The Evolution of Oberon-2 to Component Pascal"):
BITS is a new standard function that converts an INTEGER value to a SET value, such that BITS(1) yields {0}. For example, this allows to write more portable device drivers, since it doesn't depend on the processor's bit ordering (which differs for 68k and PowerPC, for example).
При этом они узаконили в языке низкоуровневый тип BYTE, вынеся его из SYSTEM.
№ 2602 10-08-2005 08:49 | |
Ответ на »сообщение 2600« (Руслан Богатырев)
___________________________
Речь идет о возможности ослабления контроля языка на уровне передачи параметров. Есть ли средства-заменители ARRAY OF BYTE в Component Pascal?
Быть может, что тип ANYREC всех ближе к тому что Вы ищете, хотя он уже совсем из другой оперы...
Отслеживать это обсуждение
Дополнительная навигация: |
|