Оберон-клуб «ВЄДАsoft» https://zx.oberon.org/forum/ |
|
Oberon-07/16 https://zx.oberon.org/forum/viewtopic.php?f=40&t=424 |
Страница 5 из 7 |
Автор: | trurl [ 12 мар 2019, 07:12 ] |
Заголовок сообщения: | Re: Oberon-07/16 |
N.Wirth писал(а): 6.1. Basic types
The following basic types are denoted by predeclared identifiers. The associated operators are defined in 8.2, and the predeclared function procedures in 10.2. The values of a given basic type are the following: 1. BOOLEAN the truth values TRUE and FALSE. 2. CHAR the characters of the Latin-1 set. 3. INTEGER the integers between -231 and +231-1. 4. REAL real numbers (IEEE Standard, 32 bits). 5. LONGREAL long real numbers (IEEE Standard, 64 bits). 6. SET the sets of integers between 0 and 31. |
Автор: | akron1 [ 12 мар 2019, 07:15 ] |
Заголовок сообщения: | Re: Oberon-07/16 |
Zorko Это описание старого компилятора. В документации используется UTF-8, но текстовые редакторы в KolibriOS её не поддерживают. Я вчера заменил старый компилятор на новый в дистрибутиве KolibriOS, при этом, документацию перекодировал через Windows-блокнот в cp1251. Но я не учёл, что WebSVN умеет только cp866. Кто-то увидел, что новая документация нечитабельна и дал ссылку на старую). А так, там нет типа LONGREAL и вещественных литералов с "D". Зато есть WCHAR. trurl Это старый репорт 2007-2011. |
Автор: | trurl [ 12 мар 2019, 07:30 ] |
Заголовок сообщения: | Re: Oberon-07/16 |
Ага, но тогда 07 из названия надо исключить. |
Автор: | akron1 [ 12 мар 2019, 07:46 ] |
Заголовок сообщения: | Re: Oberon-07/16 |
Как я понимаю, Oberon-07 -- это не официальное название, а обобщенное обозначение для всех реализаций, сделанных по мотивам репортов 2007(2008)-2016. |
Автор: | trurl [ 12 мар 2019, 08:03 ] |
Заголовок сообщения: | Re: Oberon-07/16 |
Что не официальное, это точно. А вот что оно обозначает, я уже не пойму. |
Автор: | trurl [ 12 мар 2019, 08:06 ] |
Заголовок сообщения: | Re: Oberon-07/16 |
Почему "Compiler.exe не является приложением Win32"? Он 64-битный? |
Автор: | akron1 [ 12 мар 2019, 08:15 ] |
Заголовок сообщения: | Re: Oberon-07/16 |
1) Обозначение Oberon-07 используется для отличия от классического оберона. 2) Исполняемые файлы 64-битные (Windows/Linux). Я посчитал, что 64-битная ОС есть у всех и поэтому нет смысла держать там еще и 32-битные. |
Автор: | geniepro [ 12 мар 2019, 16:34 ] |
Заголовок сообщения: | Re: Oberon-07/16 |
akron1 писал(а): 1) Обозначение Oberon-07 используется для отличия от классического оберона. Наверное, пора уже забыть про "классический" оберон. Есть виртовский язык, и самим Виртом он называется Oberon. Никаких -07 там нет... |
Автор: | akron1 [ 24 июл 2019, 12:09 ] |
Заголовок сообщения: | Re: Oberon-07/16 |
Появился третий бэк-энд, на этот раз для MSP430. Язык пришлось несколько сократить, исключены: - DISPOSE (практически невозможно реализовать для МК - недостаточно памяти) - WCHAR (есть сложности и практически не нужно для МК) - Вещественная арифметика (сложно, неэффективно и не очень нужно, но, в принципе, можно будет добавить в виде неявных вызовов RTL) - Системные флаги (пока не нужно) Качество кодогенерации пока оставляет желать лучшего. Размер пустой программы (один RTL) ~3 Кб. Минимальные требования: ОЗУ 128 байт, ПЗУ 4096 байт. Использование регистров: R4 ... R7 - регистровый стэк R8 ... R12 - не используются R13 - используется при обработке прерываний R14 - указатель "кучи" R15 - указатель кадра стэка В дальнейшем, для улучшения качества кодогенерации можно: - задействовать регистры R8 ... R12 для хранения локальных переменных - переписать RTL на асме (маш. кодах) - удалять неиспользуемые процедуры RTL Компилятор производит файл прошивки в hex-формате. Пример командной строки: Compiler.exe test.ob07 test.hex msp430 -ram 512 -rom 16384 Код: "OBERON"
Пока, в программах интенсивно используются SYSTEM.PUT, SYSTEM.GET и даже SYSTEM.CODE, что не добавляет наглядности. Но это решаемо (можно добавить псевдопроцедуры в SYSTEM). Возможна также реализация встроенного ассемблера (система команд простая). Также, рассмотрю возможность добавления в язык константных массивов - это важно для микроконтроллеров. |
Автор: | Comdiv [ 26 июл 2019, 13:01 ] |
Заголовок сообщения: | Re: Oberon-07/16 |
Здорово. Цитата: Язык пришлось несколько сократить, исключены: Есть простейшая реализация кучи как стека - лучше, чем ничего. Но если на всех целевых микроконтроллерах памяти всегда мало, то без освобождения только лучше.- DISPOSE (практически невозможно реализовать для МК - недостаточно памяти) Цитата: - Системные флаги (пока не нужно) Что это?Цитата: Пока, в программах интенсивно используются SYSTEM.PUT, SYSTEM.GET и даже SYSTEM.CODE, что не добавляет наглядности. Необходимость использовать SYSTEM без возможности задействовать более удобные способы лезть в систему способствует выработке предметного слоя абстракции при наличии минимального понимания у разработчика.
|
Страница 5 из 7 | Часовой пояс: UTC + 2 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |