Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 23 июн 2017, 01:48

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




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Готов ли Оберон к 64 битам?
СообщениеДобавлено: 04 май 2013, 09:55 
Не в сети
Аватара пользователя

Сообщения: 812
Откуда: Днепропетровская обл.
Переношу с комментов моей статьи про Оберон на Хабре.

valexey писал(а):
А проблемы с 64битностью следующие — половина языков Оберон-семейства (КП, Оберон-07) так или иначе имеют жесткую привязку примитивных типов к разрядности. (в последней ревизии Оберона-07 вообще смешно — Вирт отвязал INTEGER от разрядности в явном виде, но оставил привязку SET к 32 битам, а SET напрямую связан с INTEGER, таким образом и INTEGER оказался привязан к 32 битам) Соответственно для переезда на 64 бита следует изменять язык. В качестве иллюстрации приведу пример обсуждения о миграции BlackBox Component Builder на 64 бита (обсуждаются собственно вопросы языка, а не, скажем, кодогенерации): forum.oberoncore.ru/viewtopic.php?f=2&t=2439

У тех же языков Оберон-семейства, где нет жесткой привязки базовых типов к разрядности (Оберон, Оберон-2) остаются проблемы во-первых с псевдомодулем SYSTEM (который, как показывает практика, частенько используется при практическом программировании), а во-вторых с тем, что в них нельзя указать явным образом указать какой диапазон тебе требуется для переменной. Ну, то есть нельзя сказать что вот эта вот переменная i должна быть хотя бы 32битной. Эта проблема собственно вытекает от принципиального отсутствия стандартной библиотеки в Оберонах, соответственно в них нет ничего напоминающего stdint.h.

Все это приводит к не переносимости в общем случае приложений да и просто реализаций алгоритмов с 32битной машины на 64битную.

Сейчас в плане 64битности дальше всех продвинулась OS A2 с языком Active Oberon. Там наконец ввели тип ADDRESS, ну и многие другие неприятные мелочи устранили. Собственно нативная OS A2 под 64 битами вполне бегает, осталось сделать биндинги для 64битной версии A2 for Windows, чтобы всю эту радость можно было запускать под виндами также, как 32биную версию (операционка A2 характеризуется тем, что может быть не только полновесной операционкой работающей с железом непосредственно, но и выглядеть как обычное приложение скажем в виндах, без эмуляторов, впрочем это вообще типично для Оберон-операционок). Собственно одно российское предприятие (коммерческое, да. не университет), которое активно использует Active Oberon и A2 в своей работе, думаю вскоре сделает эти биндинги :-)

Насчёт Оберона и кроссплатформенности — не слушайте его, он для восьмибитных процев на Обероне не программил. :) «Проблемы Оберона с 64битностью» — это высосанная из пальца г-на Веселовского заморочка. Я уже имел честь пространно отвечать г-ну Веселовскому на его искажённое представление о кроссплатформенности Оберонов, однако он продолжает упорствовать. Так что надо на это ответить хотя бы затем, чтобы прояснить неточности.

Ключевой момент: «Готов ли Оберон к 64 битам»? Здесь одним «да» или «нет» не обойдёшься, и тут, вероятно, тёрки потому, что Веселовский вкладывает в понятие «Оберон», скорее, Оберон-07 и Активный Оберон, я же вкладываю в это понятие, скорее, Оберон-2 и Компонентный Паскаль, т.к. считаю эти диалекты более пригодными для промышленного использования. А Оберон-07 слишком мал, чтобы комфортно его использовать в повседневных задачах. Даже КП — чрезвычайно маленький язык. И его, на мой взгляд, надо только дополнять. А уж что говорить про О-07, самая свежая редакция которого, к тому же, не выглядит полностью законченной. И Веселовский, видимо, прочитав описание последней редакции, до сих пор не может прийти в себя. Да и вообще вкладывать в понятие «Оберон» самую урезанную ревизию, косвенно предполагая ту же фигню и в других диалектах. Вот чем грешит Веселовский, он передёргивает факты и трактует их в меру своего скромного разумения.

Что вообще можно вложить в понятие «64-битность» в контексте Оберона?

Разумность и целесообразность широкого использования 32-битной арифметики на 64-битных архитектурах, если её разрядности хватает для задачи? Сама возможность работы на 64-битном процессоре 32-битной Оберон-программы, которая не знает о 64-х битах и думает, что их по-прежнему 32? Ну да, в принципе, Оберон-программа может быть номинально 64-битной, но арифметика в ней будет 32-битной. Или 64-битной. Или той и другой вместе (INTEGER и LONGINT). Указатели 64-битными. При этом в Обероне-07 целочисленная арифметика может быть только одной разрядности, потому что там предусмотрен только один целочисленный тип INTEGER.

Наличие типа INTEGER строго размером в 64 бита? Понимать ли под 64-битностью именно то, чтобы тип INTEGER был 64 бита, потому что Веселовский упёрся в это? Если так, то в Дельфи XE4 тип INTEGER остался 32-битным, и горе тем, кто кастовал указатели в INTEGER; а значит Дельфи XE4 тоже не готов к 64 битам. И Java не готова, потому что по стандарту int 32-битный, а для 64 бит надо юзать long.

Вообще возможность работы Оберон-программ на 64-битных процессорах?

Возможность использования как 32-битной арифметики, так и 64-битной?


Разные диалекты Оберона предлагают разные ответы на эти вопросы.

Готова ли последняя виртовская редакция Оберона-07 к 64 битам?

Не будет ли ещё более новых редакций? Кто его знает. Авторы компилеров Оберона-07, готовьтесь к приятному внесению изменений.

Поэтому важный момент: INTEGER в 64-битной реализации Оберона-07 может быть 32-битным. Стоит ли в 64-битном Обероне-07 делать тип INTEGER разрядностью 64 бита или оставить 32, как в Дельфи XE4? Если делать, то будут одни плюсы. Если не делать — другие.

Можно сделать INTEGER 64-битным, вот в Питоне вся целочисленная арифметика 64-битная, и ничего. Но тогда нельзя будет низкоуровневыми средствами кастовать INTEGER в SET, чего конечно Веселовскому не нравится, и он зашёл с этим в тупик. Ибо с одной стороны надо и редакцию соблюсти, от буковки редакции — ни на шаг! С другой наверно это всё дело как-то задумывалось как практический инструмент. На том, что этот тупик пробит в других диалектах Оберона, Веселовский особо не акцентирует. Я же говорю: минимальность Оберона-07, святое соблюдение буквы его последней ревизии, которая, возможно, не окончательная, желание при этом решать на нём какие-то задачи и полный игнор тех фактов, что в других диалектах Оберона эта проблема решена (да-да, и не только в Active Oberon) — это плохой винегрет, которому мы дадим рабочее название «сумбур в голове Веселовского».

Как в рамках зафиксированной редакции Оберона-07, не меняя её, всё-таки его развивать? Или всё-таки поправить явные ляпы в этой редакции самим или ждать, когда это сделает дядька Вирт? Я открою вам секрет: в связи с тем, что Бертран Мейер сейчас заведует в ETH (альма-матер Оберонов) кафедрой, на которой разрабатывается Active Oberon, и любит он не Оберон, а вовсе даже Эйфель, то по дальнейшему развитию Оберонов силами ETH нанесён значительный удар. Если этим не займётся кто-то ещё. OberonCore? Да, возможно. Оберспейс на «продолжателя традиций», извините, не тянет.

Готовы ли Оберон и Оберон-2 к 64 битам?

Абсолютно готовы. В стандарте этих языков нет явной привязки к разрядности. Что всё-таки не мешает делать на них переносимые программы сегодня, не дожидаясь годков 20 новой редакции «Дубовых требований», в которой модуль:
Код: "OBERON"
  1. MODULE MustBeStandard; TYPE Int64* = LONGINT; END MustBeStandard.
будет стандартным. Но если то, что такой модуль не стандартизирован — это религия, то никогда уже г-н Веселовский не сможет попрограммить на Обероне-2 под 64 бита.

Готов ли Компонентный Паскаль к 64 битам?

Абсолютно готов. Есть ли смысл делать INTEGER 64-битным, а LONGINT — 128-битным — это отдельный вопрос. В принципе, числовые типы достигли своего насыщения, и, наверное, всё-таки в новой версии Питона целочисленна арифметика не будет 128-битной, а ещё в следующей — 256-битной. Это в моём понимании тупиковый путь. Есть ниша для длинной арифметики, а много где хватает и 32-битных вычислений.

Буду признателен Веселовскому, если он ткнёт носом в такое место стандарта языка КП, где декларируется «жесткая привязка примитивных типов к разрядности», потому что ничего такого я не встречал. Или Веселовского смущает то, что эти типы всё-таки имеют при реализации какую-то разрядность?

Сентенция «а SET напрямую связан с INTEGER», может быть, и имеет смысл в Обероне-07, где всё-таки приходится, ну просто ввиду отсутствия других средств, использовать прямое кастование между этими типами системными средствами, однако в языке КП это уже исправлено: там есть битовые операции BITS и ORD. А в реализации GPCP есть типы SET и LONGSET (по аналогии с INTEGER и LONGINT).

Готов ли Активный Оберон к 64 битам?

Готов, как и остальные Обероны. Вот эту туманную цитату: «Там наконец ввели тип ADDRESS, ну и многие другие неприятные мелочи устранили.» я бы попросил г-на Веселовского прояснить, пусть расскажет нам о других неприятных мелочах. Мелочи — не конёк Веселовского, он обожает обобщать всё до «джедайских сверхсредств, которых вы всё равно не поймёте, простые сельские парни», поэтому ждите потехи.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Готов ли Оберон к 64 битам?
СообщениеДобавлено: 11 янв 2016, 12:30 
Не в сети

Сообщения: 20
Оберон клуб, это клуб любителей посраться на любой доступной площадке?

64 бит это в первую очередь поддержка какого либо из распространенных на конкретном проце ABI, а какая разрядность это уже дело наживное, 64битные процы в 32 битах могут просто менее оптимально работать, если бы они работали нативно в 32бит режиме, это единственный существенный минус 32бит арифметики на 64бит проце.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Готов ли Оберон к 64 битам?
СообщениеДобавлено: 11 янв 2016, 14:07 
Не в сети
Аватара пользователя

Сообщения: 812
Откуда: Днепропетровская обл.
Вопрос сводился только к тому, насколько хорошо поддерживаются 64-битные типы на уровне стандарта языка. Допустим, Python к 64-битной арифметике готовили отдельно. А Оберон может использовать и 32-битную, и 64-битную арифметику на 32- и 64-битных процах. Три целочисленных типа нефиксированной разрядности. Сам язык готов. Процы ни при чём.

А сраться или нет — зависит от воспитания и потребностей. Если очень чешется — сритесь. Хотите — просто игнорируйте, экономьте своё время. В кругу единомышленников не срутся, срутся с инакомыслящими. Вот, допустим, не нравится мне .NET, и я защищаю свои взгляды как умею, может и не очень убедительно. То же самое с Обероном — не нравится людям, когда оберонщики им что-то доказывают, неубедительно кажется, вот и срач готов. Это в природе человека — давить инакомыслие, и Вы такой же, не заблуждайтесь на свой счёт.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Готов ли Оберон к 64 битам?
СообщениеДобавлено: 12 янв 2016, 12:19 
Не в сети

Сообщения: 20
Что значит язык готов не готов к x64, языку все равно, если это не совсем узкоспециализированный инструмент

готов должен быть компилятор и RTL


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Готов ли Оберон к 64 битам?
СообщениеДобавлено: 12 янв 2016, 12:21 
Не в сети

Сообщения: 20
И вообще, для работы с длинной арифметикой всегда использовались библиотеки, можно хоть 2048 бит юзать


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Готов ли Оберон к 64 битам?
СообщениеДобавлено: 12 янв 2016, 22:45 
Не в сети
Аватара пользователя

Сообщения: 812
Откуда: Днепропетровская обл.
Не всякому языку всё равно. Допустим, BASIC'у или PHP всё равно, а есть разрядность типов прописывается в стандарте языка. Например, так в Java, Компонентном Паскале, Дельфи и в Обероне-07. Это совсем узкоспециализированные инструменты?

А библиотеки могут конечно что угодно делать.


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

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


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

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


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

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Тех.поддержка phpBB