OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Суббота, 14 Июнь, 2025 17:46

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




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
СообщениеДобавлено: Понедельник, 16 Декабрь, 2024 00:17 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1623
Плюсы, видимо, такие:
* лёгкая переносимость
* доступ к библиотекам
* компиляторы Си хорошо оптимизированы, поэтому можно ожидать высокого быстродействия

Минусы:

* когда вы пойдёте это сертифицировать, проверке подлежит весь стек, а не только обероновская часть. Значит, безопасность такой системы берётся по слабому звену, т.е. равна безопасности Си
* делать любую реализацию Оберона - это значит _отдавать_ в Оберон и _брать_ из Оберона. Отдаём в Оберон ещё плюс одну реализацию Оберона, а берём из Оберона его популярность (она на самом деле в какой-то степени есть и по сей день). Если Оберон транслируется через Си, значит, в каком-то смысле "Оберонщики не смогли". Не смогли сделать свой (пусть упрощённый) аналог gcc или llvm, покрывающий все платформы. А значит - эрозия изначальной жизненной силы Оберона, который был как раз "системный язык, но не Си, а лучше" и в этом был один из его основных смыслов. Для каждого проекта нужно оценить, что здесь перевешивает.
* Моё убеждение, исходящее из опыта, состоит в том, что двухэтажные конструкции такого рода всегда хуже одноэтажных. Сам по себе процесс двухэтапной компиляции означает, что у вас два лексера, два парсера, два способа сборки, две системы сообщения об ошибках, две системы обработки ошибок, двухэтапное отображение места ошибки в компиляции, два источника ограничений, два источника ошибок в самой реализации и всё это на самом деле надо знать, а разработчику языка поддерживать на плаву. Не получится обойтись знанием одного Оберона. Да, иногда они могут быть почти так же хороши, а иногда даже чуть лучше, но это либо стоит неимоверных усилий, либо обеспечена изоляция слоёв, как например программисту на Javascript можно не знать ассемблера, хотя js иногда транслируется для исполнения в машинный код.
* Сборка мусора. В Си нет способа обойти стек вычислений. Поэтому ометание стека либо не обеспечено (например, при консервативной сборке мусора, я показывал пример падения такой системы), либо делается по-хакерски с соответствующими рисками. Стек обероновских программ ещё можно как-то контролировать. Но такие системы имеют смысл, когда можно вызывать Си из Оберона и иногда даже наоборот. В этом случае стек представляет из себя смесь стеков разного сорта. Монолитные оберон-системы на железе лишены этой проблемы, поскольку там весь стек под контролем разработчика
* Производительность процесса компиляции. Понятно, что двойная компиляция будет кратно медленнее одинарной
* доступ к библиотекам озаначает вызов функций на Си из Оберона и обратно, т.е. вместо защищённых конструкций, таких, как массивы, нужно использовать незащищённые, такие, как указатели. При этом опасность работы с сишным кодом не только растекается по всему приложению, но и существует опасность повреждения обероновской кучи некорректно вызванным или некорректно написанным кодом на Си. Об это довольно легко сломать зубы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 16 Декабрь, 2024 20:13 

Зарегистрирован: Пятница, 11 Январь, 2019 21:33
Сообщения: 101
Цитата:
Си это давно уже не просто язык программирования, но изученное и освоенное промежуточное представление, ничем не хуже внутреннего представления во многих хороших компиляторах; не идеальное, но хорошо известное (...)
Практика показывает, что, возможно к сожалению, стандартизация распространённых компиляторов Си далека от идеальной. Зачастую даже использование другой версии того же компилятора решает конкретную проблему, но это заставляет задуматься.


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

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


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

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


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

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