OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Март, 2019 23:58

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 51 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: Новый компилятор
СообщениеДобавлено: Суббота, 09 Март, 2019 05:43 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 782
Откуда: Киев
kekc_leader писал(а):
Спасибо. Да, с ARM всё гораздо проще.
Проще, чем с официальной документацией для Intel 64 и IA-32? Как же все остальные обходились с плохой документацией?
Кстати, странный псевдокод в официальном справочнике от Intel
Код:
IF SRC = 0
    THEN #DE; FI; (* Divide Error *)
IF OperandSize = 8 (* Word/Byte Operation *)
    THEN
        temp ← AX / SRC;
        IF temp > FFH
            THEN #DE; (* Divide error *)
        ELSE
            AL ← temp;
            AH ← AX MOD SRC;
        FI;
    ELSE IF OperandSize = 16 (* Doubleword/word operation *)
        THEN
            temp ← DX:AX / SRC;
            IF temp > FFFFH
                THEN #DE; (* Divide error *)
            ELSE
                AX ← temp;
                DX ← DX:AX MOD SRC;
            FI;
        FI;
    ELSE IF Operandsize = 32 (* Quadword/doubleword operation *)
        THEN
            temp ← EDX:EAX / SRC;
            IF temp > FFFFFFFFH
                THEN #DE; (* Divide error *)
            ELSE
                EAX ← temp;
                EDX ← EDX:EAX MOD SRC;
            FI;
        FI;
    ELSE IF 64-Bit Mode and Operandsize = 64 (* Doublequadword/quadword operation *)
        THEN
            temp ← RDX:RAX / SRC;
            IF temp > FFFFFFFFFFFFFFFFH
                THEN #DE; (* Divide error *)
            ELSE
                RAX ← temp;
                RDX ← RDX:RAX MOD SRC;
            FI;
        FI;
FI;
Вырвиглазные ключевые слова прописными буквами и комментарии, почему-то, не через две косые черты.
У ARM всё поприличней
Код:
if ConditionPassed() then
    EncodingSpecificOperations();
    if UInt(R[m]) == 0 then
        if IntegerZeroDivideTrappingEnabled() then
            GenerateIntegerZeroDivide();
        else
            result = 0;
    else
        result = RoundTowardsZero(UInt(R[n]) / UInt(R[m]));
    R[d] = result<31:0>;
Но тоже не хватает скобок вокруг условий после if и then явно лишний


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый компилятор
СообщениеДобавлено: Суббота, 09 Март, 2019 15:19 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 284
Цитата:
Проще, чем с официальной документацией для Intel 64 и IA-32?

Доступность - может даже проще, у "интеля", не помню, c intel.com сразу и не найдёшь.
По объёмности - меньше. RISC же, хотя в последнее время (я так думаю, с v5) "reduced instruction set" становится совсем не"reduced".
Цитата:
Как же все остальные обходились с плохой документацией?

Она не "плохая" - она "своеобразная": всё равно лучше и полнее "автора" изложить предмет не сможет никто. С компилятором интеля кто-то может конкурировать? Если они используют ту же документацию что отдают, то вопрос о качестве документации отпадает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый компилятор
СообщениеДобавлено: Суббота, 09 Март, 2019 17:08 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 782
Откуда: Киев
Пётр Кушнир писал(а):
Это неизвестно и непонятно, почему разработка нормального компилера с AST и сменными кодогенераторами по мотивам Compiler Construction должна привести к чему-то, отличному от OP2.Paper (кажется, так она называлась)?
Речь об этом документе - ftp://ftp.ethoberon.ethz.ch/Oberon/Ober ... aper.ps.gz ? Там всего 10 страниц


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый компилятор
СообщениеДобавлено: Суббота, 09 Март, 2019 17:12 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 782
Откуда: Киев
Artyemov писал(а):
всё равно лучше и полнее "автора" изложить предмет не сможет никто
Смотря для каких целей. Вот kekc_leader посчитал, что для своих целей смог. Уже не терпится посмотреть, что же он подразумевал под хорошим всеобъемлющим справочником.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый компилятор
СообщениеДобавлено: Суббота, 09 Март, 2019 18:01 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4230
Откуда: Россия, Орёл
Comdiv писал(а):
Речь об этом документе - ftp://ftp.ethoberon.ethz.ch/Oberon/Ober ... aper.ps.gz ? Там всего 10 страниц

Это краткая статья. Есть ещё диссертация (или ETH-овский репорт). Там подробнее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый компилятор
СообщениеДобавлено: Суббота, 09 Март, 2019 18:21 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 782
Откуда: Киев
Эта? - Separate compilation and module extension


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый компилятор
СообщениеДобавлено: Суббота, 09 Март, 2019 22:31 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4230
Откуда: Россия, Орёл
Ну это его дисер (есть на и сайте у нас https://oberoncore.ru/library/crelier_s ... _extension), а есть репорт: https://oberoncore.ru/library/op2_a_por ... 2_compiler


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый компилятор
СообщениеДобавлено: Воскресенье, 10 Март, 2019 05:17 
Аватара пользователя

Зарегистрирован: Среда, 22 Апрель, 2015 23:51
Сообщения: 133
Откуда: г. Рига, Латвийская ССР
Возможно я неточно выразился.
Проблема с документациями и справочниками по машинным кодам в том, что они изложение материала в них не идёт от простого к сложному. Возможно, так и должно быть, но такой книги, где указанный порядок присутствует, явно не хватает. Например, для простейшего компилятора многие машинные коды вовсе не нужны.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый компилятор
СообщениеДобавлено: Воскресенье, 10 Март, 2019 15:37 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 782
Откуда: Киев
kekc_leader писал(а):
Проблема с документациями и справочниками по машинным кодам в том, что они изложение материала в них не идёт от простого к сложному.
Вряд ли это задача справочника, так как он предназначен для выборочного, а не последовательного чтения. Для таких задач, скорее, учебник искать надо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый компилятор
СообщениеДобавлено: Воскресенье, 10 Март, 2019 20:42 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 284
Comdiv писал(а):
Artyemov писал(а):
всё равно лучше и полнее "автора" изложить предмет не сможет никто
Смотря для каких целей. Вот kekc_leader посчитал, что для своих целей смог. Уже не терпится посмотреть, что же он подразумевал под хорошим всеобъемлющим справочником.

Вообще-то, я речь вёл о том, что автор архитектуры (читай - "первоисточник") главный источник. А уж в нашем случае: персказ перевода на русский это чаще всего - беда.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый компилятор
СообщениеДобавлено: Понедельник, 11 Март, 2019 01:38 
Аватара пользователя

Зарегистрирован: Среда, 22 Апрель, 2015 23:51
Сообщения: 133
Откуда: г. Рига, Латвийская ССР
Да, цели у справочника и у учебника разные. Наша цель — создать скорее учебник, чем справочник.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 51 ]  На страницу Пред.  1, 2, 3

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB