В число проектов GNU принят генератор языковых виртуальных машин Jitter
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Инструментарий Jitter официально перешёл под крыло проекта GNU и теперь будет развиваться под именем GNU Jitter с использованием инфраструктуры GNU и в соответствии с требованиями данного проекта. Jitter позволяет генерировать переносимые и очень быстрые виртуальные машины для произвольных конструкций языков программирования, производительность выполнения кода в которых существенно опережает интерпретаторы и близка к нативному компилируемому коду. Исходные тексты Jitte написаны на языке Си и поставляются под лицензией GPLv3.
Jitter принимает в качестве входных данных высокоуровневую спецификацию инструкций, поддерживаемых виртуальной машиной, а на выходе формирует готовую реализацию виртуальной машины для выполнения заданных инструкций. Логика каждой инструкции в спецификации задаётся при помощи кода на языке Си (см. пример спецификации виртуальной машины для языка Lisp). Из дополнительных возможностей отмечается поддержка труднореализуемых на языке Си и свойственных динамическим языкам программирования операций условного ветвления, таких как проверка значений тегов и проверка переполнений.
Результирующая виртуальная машина оформляется на языке Си с небольшим число ассемблерных вставок. Предоставляются настройки для включения различных оптимизаций и выбора механизмов диспетчеризации, что упрощает портирование виртуальной машины для разных платформ. Поддерживается использование регистровой, стековой и комбинированной архитектуры выполнения, а также возможность отражения структур данных VM в аппаратные регистры CPU и подключение сборщиков мусора. Сгенерированный код включает простой C API для динамической подстановки и выполнения кода в виртуальной машине, а также программу-драйвер для обособленного запуска в виртуальной машине кода из текстовых файлов.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (http://ageinghacker.net/blog/p...)
- OpenNews: Инициатива GNU Assembly, продвигающая новую модель управления проектом GNU
- OpenNews: Мэйнтейнеры проектов GNU выступили против единоличного лидерства Столлмана
- OpenNews: Фонд свободного ПО пересмотрит взаимодействие с проектом GNU
- OpenNews: Ричард Столлман опубликовал "Руководство по доброжелательному общению" для проектов GNU
- OpenNews: Проекту GNU исполнилось 35 лет
Похожие новости:
- Релиз компилятора Rakudo 2021.10 для языка программирования Raku (бывший Perl 6)
- Выпуск свободного эмулятора классических квестов ScummVM 2.5.0
- Релиз набора компиляторов LLVM 13.0
- Выпуск платёжной системы GNU Taler 0.8, развиваемой проектом GNU
- Выпуск P2P-платформы GNUnet 0.15.0
- [Программирование, Компиляторы] Почему я прекратил разработку своего старого языка программирования и создал новый
- [Системное администрирование, DevOps, Облачные сервисы, Распределённые системы] DRS как средство оптимизации размещения виртуальных машин в облаке Mail.ru Cloud Solutions
- [Высокая производительность, Облачные вычисления, Администрирование баз данных] Как запускать в облаке приложения, требовательные к latency? СУБД Arenadata DB на сверхбыстрых облачных дисках
- [Программирование, Компиляторы] Использование библиотеки LLVM для генерации кода регулярных выражений
- Операционная система OpenVMS портирована для архитектуры x86-64
Теги для поиска: #_gnu, #_jitter, #_vm
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 09:55
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Инструментарий Jitter официально перешёл под крыло проекта GNU и теперь будет развиваться под именем GNU Jitter с использованием инфраструктуры GNU и в соответствии с требованиями данного проекта. Jitter позволяет генерировать переносимые и очень быстрые виртуальные машины для произвольных конструкций языков программирования, производительность выполнения кода в которых существенно опережает интерпретаторы и близка к нативному компилируемому коду. Исходные тексты Jitte написаны на языке Си и поставляются под лицензией GPLv3. Jitter принимает в качестве входных данных высокоуровневую спецификацию инструкций, поддерживаемых виртуальной машиной, а на выходе формирует готовую реализацию виртуальной машины для выполнения заданных инструкций. Логика каждой инструкции в спецификации задаётся при помощи кода на языке Си (см. пример спецификации виртуальной машины для языка Lisp). Из дополнительных возможностей отмечается поддержка труднореализуемых на языке Си и свойственных динамическим языкам программирования операций условного ветвления, таких как проверка значений тегов и проверка переполнений. Результирующая виртуальная машина оформляется на языке Си с небольшим число ассемблерных вставок. Предоставляются настройки для включения различных оптимизаций и выбора механизмов диспетчеризации, что упрощает портирование виртуальной машины для разных платформ. Поддерживается использование регистровой, стековой и комбинированной архитектуры выполнения, а также возможность отражения структур данных VM в аппаратные регистры CPU и подключение сборщиков мусора. Сгенерированный код включает простой C API для динамической подстановки и выполнения кода в виртуальной машине, а также программу-драйвер для обособленного запуска в виртуальной машине кода из текстовых файлов. =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 09:55
Часовой пояс: UTC + 5