четверг, 10 ноября 2022 г.

Внедрение параллельности в однопоточный язык, не нарушающее совместимости

Если типичный императивный язык программирования был в начальной задумке однопоточным, то наивное добавление в него многопоточности не может быть осуществлено без слома совместимости, так как нарушает фундаментальное свойство, гарантирующее неизменность доступных переменных при отсутствии их изменений со стороны самого потока. Приёмы работы с данными, которые были совершенно приемлемы в однопоточности, могут оказаться неадекватными в многопоточном. Последнее само по себе не является недопустимым, если платформа изначально существовала в такой среде и формирование базы кода всегда происходило с учётом этой особенности. Но даже в этом случае достижение корректности кода избыточно перекладывается на плечи программиста с сопутствующими результатами. Такой подход неприемлем для языков, создаваемых не только для того, чтобы не мешать, но и для того, чтобы помогать. Что можно предложить для них?

понедельник, 26 сентября 2022 г.

Накладные расходы проверок на RISC-V, ARM, Эльбрус, AMD64

Получил в использование одноплатный компьютер StarFive VisionFive c 2-ядерным процессором на архитектуре RISC-V. На поставляемом с платой дистрибутиве Fedora провёл тестирование транслятора Восток и, в частности, проверку времени исполнения сгенерированного кода с проверками корректности и без.

суббота, 13 августа 2022 г.

Транслятор 0.0.10 и Web-среда 0.2

Выпущено обновление транслятора 0.0.10, библиотеки по умолчанию 0.0.9 и веб-среды для взаимодействия с транслятором 0.2.

суббота, 23 июля 2022 г.

Web-среда 0.1 для транслятора Web-sandbox 0.1 for the translator

Доработана и обозначена как версия 0.1 написанная на Go и JavaScript web-среда(песочница) для взаимодействия с транслятором Восток. Среда позволяет редактировать модули на Обероне, запускать экспортированные процедуры, преобразовывать модули на другие языки программирования. Модули, доступные по умолчанию из окружения транслятора, ограничены в доступе к возможностям сервера.

The web-sandbox written in Go and JavaScript for interacting with the Vostok translator has been fixed as version 0.1. The sandbox allows you to edit modules on Oberon, run exported procedures, convert modules to other programming languages. Modules available from the default translator's environment have restricted access to server's resources.

среда, 23 февраля 2022 г.

Версия 0.0.9

Выпущено обновление транслятора, библиотеки и сборщика Android приложений. Как и прежде, доступна установка и автоматическое обновление из Snap Store, deb-репозитория и Homebrew. Также доступна Web-песочница.

пятница, 18 февраля 2022 г.

odcey

Выпущена начальная версия утилиты odcey - преобразователя текстового формата BlackBox Component Builder .odc в плоский Utf-8 текст. Утилита появилась как побочный эффект изучения блэкбоксовского формата и сопровождения установочного пакета для программы odcread, написанной на C++. odcey может рассматриваться как замена заброшенной odcread.

Доступны две основные команды:

  1. text для вывода содержимого объектов типа TextModels.StdModel
  2. git для встраиванивания в .git в качестве текстового конвертера для удобного просмотра изменений через git diff и аналоги

До стабилизации в собранном виде доступна только в snapcraft в edge потоке

воскресенье, 30 января 2022 г.

CASE для указателей и записей

Добавлена поддержка указателей и записей в CASE, введённой в ревизии 2013 года сообщения о языке, и необходимой для эффективного перехода по указанным в ветвях типах.

Внедрение параллельности в однопоточный язык, не нарушающее совместимости

Если типичный императивный язык программирования был в начальной задумке однопоточным, то наивное добавление в него многопоточности не может...