Re[18]: Оберон vs все остальное
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 14.01.05 10:56
Оценка:
Здравствуйте, Cyberax, Вы писали:

C> кстати, а в Oberon'е есть volatile?


Нету.

Если Вам так интересна многопоточность, то есть специально придуманный для нее Оберон под названием Active Oberon. Там объекты активные, то есть объект = поток.

Операционка написанная на нем тут: http://bluebottle.ethz.ch/

Так же есть дальний родственник Оберона — Zonnon это переосмысление Active Oberon for .NET http://www.zonnon.ethz.ch/
Re[16]: Системность
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 14.01.05 11:03
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Да какой он, нафиг, системный? Он же не умеет работать без GC и

C>runtime-системы. Он такой же системный как и Java.

Просто GC+runtime реализуются непосредственно поверх железа, а уже все остальное (включая операционку) пишется на языке высокого уровня. Например, именно так и было сделано в операционке Aos BlueBottle






Кроме того для специальных случаев встроенных систем — тех где динамическая память отсутсвует в принципе, можно использовать обрезанный Оберон без инструкции NEW и без динамической загрузки модулей.
http://www.inr.ac.ru/~info21/cpascal/cp_report_1.4_rus.htm#D

За исключением полностью слинкованных приложений, в которых при исполнения не нужно загружать никакие модули, для модулей требуется динамический загрузчик [linking loader]. Встроенные системы являются важными примерами приложений, которые могут быть полностью слинкованы.

Re[17]: Системность
От: Cyberax Марс  
Дата: 14.01.05 11:05
Оценка:
Сергей Губанов пишет:

> Кё> А почему тогда не C++?

> А потому что:
> 1) Полное исчерпывающее описание Оберона занимает 16-30 страниц (в
> зависимости от шрифта), а полное исчерпывающее описание С++ занимает
> несколько сотен страниц. Проблема обучения.

Не надо народ смешить. Спека "системного" языка занимать 30 страниц не
может.

Где в спеке Оберона описывается взаимодействие с нативным кодом, способы
передачи параметров, расположения структур в памяти, обработку машинных
исключений? Ни за что не поверю, что все вошло в 16 страниц.

> 2) Сколько ресурсов надо затратить чтобы написать новый правильно

> работающий компилятор С++ под новый тип чипа просто не сопоставимо с
> той же работой для Оберона. В ETH портирование Оберона на новый тип
> чипа делают студенты за месяц.
>
Берем GCC и добавляем туда поддержку еще одного процессора. Делается
элементарно — сам разговаривал с человеком, который это сделал за пару
недель. Для GCC просто нужно описать систему команд процессора, ну и
портировать runtime (если нужно).

> 3) Сопровождение кода на С++ эффективно может делать только автор

> этого кода, любой другой программист лучше заново по своему напишет
> чем разбереться с уже написанным.
>
Ой, ну конечно. Я спокойно читаю код на С++, если конечно в нем не
используется черная магия в виде многоуровневых шаблонов. Мои коллеги
тоже что-то не испытывают проблем с чтением C/С++.

> 4) С++ — unsafe, Оберон — safe (работа с адресной арифметикой, если

> таковая необходима, в Обероне осуществляется через внешние библиотеки).

Ха, какой он тогда "системный"?

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[17]: Системность
От: Cyberax Марс  
Дата: 14.01.05 11:06
Оценка: +1
tarkil пишет:

> C>Системный язык — это С, с натяжкой, С++.

> А почему С++ — с натяжкой?

Слишком высокоуровневый для системного программирования в некоторых
случаях (RTTI, исключения). Хотя достоинство С++ в том, что
высокоуровневые фичи можно и не использовать.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[19]: Оберон vs все остальное
От: Cyberax Марс  
Дата: 14.01.05 11:10
Оценка:
Сергей Губанов пишет:

> C> кстати, а в Oberon'е есть volatile?

> Нету.
> Если Вам так интересна многопоточность, то есть специально придуманный
> для нее Оберон под названием Active Oberon. Там объекты активные, то
> есть объект = поток.

В качестве эксперимента — пойдет. Для практики нафиг не нужен — даже не
сравним с Erlang'ом.

> Операционка написанная на нем тут: http://bluebottle.ethz.ch/


Чего-то маловато в ней функциональности...

> Так же есть дальний родственник Оберона — Zonnon это переосмысление

> Active Oberon for .NET http://www.zonnon.ethz.ch/

Очередная поделка...

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[17]: Системность
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 14.01.05 11:11
Оценка:
http://www.inr.ac.ru/~info21/cpascal/cp_report_1.4_rus.htm#D


Приложение D: Обязательные требования к среде выполнения

Определение Компонентного Паскаля опирается на три фундаментальных предположения.

1) Во время исполнения программ доступна информация, позволяющая проверять динамический тип объекта. Это нужно для реализации проверок типов и охраны типов.

2) Отсутствует процедура DISPOSE <освобождение памяти под более не используемые объекты>. Память <занимаемая объектом> не может быть освобождена по явной инструкции программиста, поскольку это создало бы проблемы безопасности, связанные с потерей памяти [memory leaks] <память, занимаемая объектами, недоступными ни через какие указатели, которую программист забыл освободить> и с висячими указателями [dangling pointers] <доступные указатели, продолжающие указывать на области памяти, по ошибке преждевременно освобожденные>. За исключением таких встроенных систем, где не используется динамическое управление памятью, или где ее можно разместить только однажды и никогда не нужно освобождать, требуется автоматический сбор мусора.

3) Модули и по крайней мере их экспортированные процедуры (команды) и экспортированные типы должны быть доступны динамически. Если необходимо, это может вызывать загрузку модулей. Программный интерфейс, используемый для загрузки модулей или для доступа к указанной мета-информации, не определяется языком, но компилятор должен сохранять эту информацию при генерации кода.
За исключением полностью слинкованных приложений, в которых при исполнения не нужно загружать никакие модули, для модулей требуется динамический загрузчик [linking loader]. Встроенные системы являются важными примерами приложений, которые могут быть полностью слинкованы.

Реализация, которая не удовлетворяет этим требованиям к компилятору и среде выполнения, не считается удовлетворяющей определению Компонентного Паскаля.

Re[17]: Системность
От: Cyberax Марс  
Дата: 14.01.05 11:12
Оценка:
Сергей Губанов пишет:

> C>Да какой он, нафиг, системный? Он же не умеет работать без GC и

> C>runtime-системы. Он такой же системный как и Java.
> Просто GC+runtime реализуются непосредственно поверх железа

То есть железо должно быть спроектировано специально для Oberon'а?
Закатайте губы обратно — такого железа не будет.

> а уже все остальное (включая операционку) пишется на языке высокого

> уровня. Например, именно так и было сделано в операционке Aos
> BlueBottle <http://bluebottle.ethz.ch/&gt;

Таких JavaOS — куча. _Практичных_ — ноль.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[18]: Системность
От: tarkil Россия http://5209.copi.ru/
Дата: 14.01.05 11:34
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Слишком высокоуровневый для системного программирования в некоторых

C>случаях (RTTI, исключения). Хотя достоинство С++ в том, что
C>высокоуровневые фичи можно и не использовать.

Вот-вот, и я к тому же. Страуструп одной из задач ставил, чтоб C++ мог использоваться для всех задач C с неменьшей эффективность. Эти фичи не повязаны жёстко друг на друга, можно от чего-то отказаться.

А чего, на мой взгляд, не хватает в компиляторах, так это гибко настроить ограничения на использование разных возможностей языка. Скажем, запретить для системного проекта виртуальные функции. Или для прикладного проекта — арифметику с указателями...
--
wbr, Peter Taran
Re[18]: Системность
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 14.01.05 12:48
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>То есть железо должно быть спроектировано специально для Oberon'а?

C>Закатайте губы обратно — такого железа не будет.


Ага щассс...


  • Язык как основа архитектуры. Проект Lilith
    http://www.rol.ru/news/it/press/cwm/19_98/pdp.htm

  • Язык как основа архитектуры. Проект "Кронос" и путь к технологиям XDS
    http://www.rol.ru/news/it/press/cwm/20_98/kron.htm

  • Язык как основа архитектуры. Средства кроссразработки и технологии XDS
    http://www.rol.ru/news/it/press/cwm/21_98/micro.htm

  • ОТ РАЗРАБОТКИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ К КОНСТРУИРОВАНИЮ КОМПЬЮТЕРОВ
    Никлаус Вирт
    Выступление при получении премии Тьюринга
    http://www.uni-vologda.ac.ru/oberon/wirth/wirth-turing.htm

  • http://www.inr.ac.ru/~info21/info/wirth_avia.htm

    ...Бортовой компьютер (получивший, кстати, имя OLGA = Oberon Language Goes Airborne) оказался настолько компактным благодаря компактности и эффективности получившихся программ (использовалось подмножество языка Оберон), что вес машины удалось резко снизить по сравнению с предыдущими версиями конструкции — всего до 15 кг. (Потомки компьютера OLGA используются в компании weControl.)

  • Re[18]: Системность
    От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
    Дата: 14.01.05 12:49
    Оценка: :))
    Здравствуйте, Cyberax, Вы писали:

    C>То есть железо должно быть спроектировано специально для Oberon'а?

    C>Закатайте губы обратно — такого железа не будет.

    Это для Си++ такого железа не было и не будет
    Re[19]: Системность
    От: Cyberax Марс  
    Дата: 14.01.05 12:51
    Оценка: +2
    Сергей Губанов пишет:

    > C>То есть железо должно быть спроектировано специально для Oberon'а?

    > C>Закатайте губы обратно — такого железа не будет.
    > Это для Си++ такого железа не было и не будет

    А чего у меня передо мной стоит такое с монитором? Под С++ НЕ НУЖНО
    проектировать железо.

    --
    С уважением,
    Alex Besogonov (alexy@izh.com)
    Posted via RSDN NNTP Server 1.9
    Sapienti sat!
    Re[19]: Системность
    От: Cyberax Марс  
    Дата: 14.01.05 12:53
    Оценка:
    Сергей Губанов пишет:

    > C>То есть железо должно быть спроектировано специально для Oberon'а?

    > C>Закатайте губы обратно — такого железа не будет.
    > Ага щассс...

    И где оно сейчас? Я же не зря написал "не будет". Всякие Lisp-машины
    тоже благополучно сдохли...

    --
    С уважением,
    Alex Besogonov (alexy@izh.com)
    Posted via RSDN NNTP Server 1.9
    Sapienti sat!
    Re[19]: Системность
    От: Курилка Россия http://kirya.narod.ru/
    Дата: 14.01.05 12:57
    Оценка:
    Здравствуйте, Сергей Губанов, Вы писали:

    СГ>Здравствуйте, Cyberax, Вы писали:


    C>>То есть железо должно быть спроектировано специально для Oberon'а?

    C>>Закатайте губы обратно — такого железа не будет.


    СГ>Ага щассс...


    <skipped>

    Да, ужасно распространённые системы, люди на них миллиарды долларов делают
    Re[20]: Системность
    От: Курилка Россия http://kirya.narod.ru/
    Дата: 14.01.05 13:07
    Оценка:
    Здравствуйте, Cyberax, Вы писали:

    C>Сергей Губанов пишет:


    >> C>То есть железо должно быть спроектировано специально для Oberon'а?

    >> C>Закатайте губы обратно — такого железа не будет.
    >> Ага щассс...

    C>И где оно сейчас? Я же не зря написал "не будет". Всякие Lisp-машины

    C>тоже благополучно сдохли...

    А, кстати, ничего не можешь сказать, линков кинуть как раз по лиспмашинам? Они совсем сдохли пару десятков лет назад или всё-же есть живые экземпляры?
    Re[21]: Системность
    От: Cyberax Марс  
    Дата: 14.01.05 13:14
    Оценка:
    Курилка пишет:

    >>> C>То есть железо должно быть спроектировано специально для Oberon'а?

    >>> C>Закатайте губы обратно — такого железа не будет.
    >>> Ага щассс...
    > C>И где оно сейчас? Я же не зря написал "не будет". Всякие Lisp-машины
    > C>тоже благополучно сдохли...
    > А, кстати, ничего не можешь сказать, линков кинуть как раз по
    > лиспмашинам? Они совсем сдохли пару десятков лет назад или всё-же есть
    > живые экземпляры?

    Ничего не умирает полностью в мире компьютеров — я даже не один
    работающий комп с перофокартами видел. Есть какие-то отдельные
    Лисп-процессоры — развитие старых образцов, но про новые разработки
    что-то не слышно.

    А ссылки можно найти в Гугле по слову Symbolics.

    --
    С уважением,
    Alex Besogonov (alexy@izh.com)
    Posted via RSDN NNTP Server 1.9
    Sapienti sat!
    Re[19]: Системность
    От: GlebZ Россия  
    Дата: 14.01.05 13:15
    Оценка:
    Здравствуйте, Сергей Губанов, Вы писали:

    Джентельмены, а зачем машины для языка? Мое мнение, что это язык должен оптимально портироваться. И если процессор может выполнять достаточно высокоуровневые команды, то тогда именно язык должен портироваться на них (но не наоборот).

    С уважением, Gleb.

    PS: Я слышал о отдельных процах в mainframe для байт-кода Java(ито мельком), но кто мешает воспользоваться другим языком для портирования под него?
    Re[20]: Системность
    От: Cyberax Марс  
    Дата: 14.01.05 14:12
    Оценка:
    GlebZ пишет:

    > PS: Я слышал о отдельных процах в mainframe для байт-кода Java(ито

    > мельком), но кто мешает воспользоваться другим языком для портирования
    > под него?

    Есть два подхода для аппаратных процессоров:
    1. _Некоторые_ команды JVM микрокодом транслировать в непосредственный
    код. Получается не особо быстро, зато сложно и дорог.
    2. Использовать аппаратную поддержку для ускорения JIT'а и GC. Именно
    так и работают сейчас нормальные Java-процы.

    --
    С уважением,
    Alex Besogonov (alexy@izh.com)
    Posted via RSDN NNTP Server 1.9
    Sapienti sat!
    Re[21]: Системность
    От: GlebZ Россия  
    Дата: 14.01.05 14:46
    Оценка:
    Здравствуйте, Cyberax, Вы писали:


    C>2. Использовать аппаратную поддержку для ускорения JIT'а и GC. Именно

    C>так и работают сейчас нормальные Java-процы.

    Специально подчеркнул. Уже давно настали времена, когда софтварно большинство вещей делается намного дешевле (и быстрей если брать отношение стоимости и производительности) чем на аппаратном уровне. Это стало понятно, еще когда была бадяга между пентюхом и risk процами. А под эту аппаратную поддержку, наверняка можно и MSIL навернуть. Не так уж они и концептуально различаются.

    С уважением, Gleb.
    Re[17]: Оберон vs все остальное
    От: Bigger Российская Империя  
    Дата: 14.01.05 15:17
    Оценка:
    Здравствуйте, Сергей Губанов, Вы писали:

    СГ>Здравствуйте, Курилка, Вы писали:


    К>>А какже сказанное тобою тут про встроенные системы и отсутствие потоков? Как это с универсальностью соотносится?


    СГ>Так ведь в Си/Си++ многопоточность тоже появляется только через внешние библиотеки.


    Отсюда поподробнее пожауйста

    Программист — это шаман..., подарите бубен!
    Re[22]: Системность
    От: Cyberax Марс  
    Дата: 14.01.05 15:47
    Оценка:
    GlebZ пишет:

    > C>2. Использовать *аппаратную поддержку* для ускорения JIT'а и GC. Именно

    > C>так и работают сейчас нормальные Java-процы.
    > Специально подчеркнул. Уже давно настали времена, когда софтварно
    > большинство вещей делается намного дешевле (и быстрей если брать
    > отношение стоимости и производительности) чем на аппаратном уровне.

    Да, но тот же GC с совсем небольшой аппаратной поддержкой можно сделать
    ЗНАЧИТЕЛЬНО эффективнее, как и JIT. Требуется ведь не полная их
    аппаратная реализация, а просто несколько особых фич.

    > Это стало понятно, еще когда была бадяга между пентюхом и risk

    > процами. А под эту аппаратную поддержку, наверняка можно и MSIL
    > навернуть. Не так уж они и концептуально различаются.

    Да, есть и для MSIL решения.

    --
    С уважением,
    Alex Besogonov (alexy@izh.com)
    Posted via RSDN NNTP Server 1.9
    Sapienti sat!
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.