BESEN (Bero's EcmaScript Engine) for Delphi and FreePascal

Обсуждаются как существующие проекты (перевод документации, информационная система и т.п.), так и создание новых.

Модератор: Модераторы

Ответить
Kemet
постоялец
Сообщения: 241
Зарегистрирован: 10.02.2010 18:28:32
Откуда: Временно оккупированная территория
Контактная информация:

BESEN (Bero's EcmaScript Engine) for Delphi and FreePascal

Сообщение Kemet »

Недавно случайно наткнулся. ECMA Script на object pascal. Проверил в на FPC 2.4.4 - скомпилировалось (поправил 1-ну строку), тестовые примеры работают.

BESEN

BESEN is an acronym for "Bero's EcmaScript Engine", and it is a complete ECMAScript Fifth Edition Implemention in Object Pascal, which is compilable with Delphi >=7 and FreePascal >= 2.5.1 (maybe also 2.4.1).

BESEN is licensed under a OwnLicense+AGPLv3 dual-license.
Features:

Complete implementation of the ECMAScript Fifth Edition standard
Own bytecode-based ECMA262-complaint Regular Expression Engine
Incremental praise/exact mark-and-sweep garbage collector
Unicode UTF8/UCS2/UTF16/UCS4/UTF32 support (on ECMAScript level, UCS2/UTF16)
Compatibility modes, for example also a facile JavaScript compatibility mode
Bytecode compiler
Call-Subroutine-Threaded Register-based virtual machine
Context-Threaded 32-bit x86 and 64-bit x64/AMD64 Just-in-Time Compiler (a ARMv7 EABI JIT for ARM CPUs with VFPv3 instruction set is planned)
Constant folding
Dead code elimination
Abstract-Syntax-Tree based optimizations
Type inference (both exact and speculative)
Polymorphic Inline Cache based on object structure and property key IDs
Perfomance optimized hash maps
Self balanced trees (for example to sort on-the-fly linked list items of hash maps for very fast enumeration of array objects)
Easy native ObjectPascal class integration (properties per RTTI and published methods per by-hand-parsing of the native virtual method table)

Страница проекта на Sourceforge
Аватара пользователя
hinst
энтузиаст
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Сообщение hinst »

собственно, так скрипты, написанные на каком языке, он компилирует? Я так и не понял... Или, вот это ECMAScript название языка?
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

ECMAScript ≈ JS
Kemet
постоялец
Сообщения: 241
Зарегистрирован: 10.02.2010 18:28:32
Откуда: Временно оккупированная территория
Контактная информация:

Сообщение Kemet »

Аватара пользователя
hinst
энтузиаст
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Сообщение hinst »

а что, документации к нему нет совсем-совсем никакой?
а то я что-то посмотрел сейчас на исходники этого самого BESEN и ощутил некоторый когнитивный диссонанс. В общем, нифига не понял, как его использовать
Kemet
постоялец
Сообщения: 241
Зарегистрирован: 10.02.2010 18:28:32
Откуда: Временно оккупированная территория
Контактная информация:

Сообщение Kemet »

Какого характера документация? Если на ECMAScript, то это по нему и надо искать доки на ECMAScript Fifth Edition. по языку можно доки на QtScript посмотреть.
А пример использования смотреть исходники BESENShell.
ну запустить на выполнение можно из консоли типа, BESENShell Hello.js

Добавлено спустя 2 минуты 31 секунду:
А идеешка в комплекте без сырцов, к сожалению, но автор может поделиться, просто почти никто не просил.
Аватара пользователя
hinst
энтузиаст
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Сообщение hinst »

ну вот я и говрою, что пример-то по сути всего один и достаточно сложный для понимания. Никакие особенности не расписаны
Kemet
постоялец
Сообщения: 241
Зарегистрирован: 10.02.2010 18:28:32
Откуда: Временно оккупированная территория
Контактная информация:

Сообщение Kemet »

На текущий момент документации нет, написание только планируется. Но разработчик Benjamin Rosseaux, он же BeRo, оказывает техподдержку.
Также в рассылке встречаются русскоязычные программисты, которые используют BESEN в своих разработках. Ну или пытаются использовать.
Лично я не использую, мне просто показалось, что разработка довольно интересная и полезная, т.к. встречал здесь неоднократные упоминания о нереализованном желании написать полноценный браузер на object pascal, в связи с отсутствием поддержки яваскриптов. Теперь такая поддержка есть, тем более, что на сайте BESEN один из пользователей писал, что использует с BESEN'ом jQuery.
Kemet
постоялец
Сообщения: 241
Зарегистрирован: 10.02.2010 18:28:32
Откуда: Временно оккупированная территория
Контактная информация:

Сообщение Kemet »

Страничка проекта на Гуглокоде
Ответить