Недавно случайно наткнулся. 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
BESEN (Bero's EcmaScript Engine) for Delphi and FreePascal
Модератор: Модераторы
собственно, так скрипты, написанные на каком языке, он компилирует? Я так и не понял... Или, вот это ECMAScript название языка?
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
ECMAScript ≈ JS
а что, документации к нему нет совсем-совсем никакой?
а то я что-то посмотрел сейчас на исходники этого самого BESEN и ощутил некоторый когнитивный диссонанс. В общем, нифига не понял, как его использовать
а то я что-то посмотрел сейчас на исходники этого самого BESEN и ощутил некоторый когнитивный диссонанс. В общем, нифига не понял, как его использовать
-
Kemet
- постоялец
- Сообщения: 241
- Зарегистрирован: 10.02.2010 18:28:32
- Откуда: Временно оккупированная территория
- Контактная информация:
Какого характера документация? Если на ECMAScript, то это по нему и надо искать доки на ECMAScript Fifth Edition. по языку можно доки на QtScript посмотреть.
А пример использования смотреть исходники BESENShell.
ну запустить на выполнение можно из консоли типа, BESENShell Hello.js
Добавлено спустя 2 минуты 31 секунду:
А идеешка в комплекте без сырцов, к сожалению, но автор может поделиться, просто почти никто не просил.
А пример использования смотреть исходники BESENShell.
ну запустить на выполнение можно из консоли типа, BESENShell Hello.js
Добавлено спустя 2 минуты 31 секунду:
А идеешка в комплекте без сырцов, к сожалению, но автор может поделиться, просто почти никто не просил.
ну вот я и говрою, что пример-то по сути всего один и достаточно сложный для понимания. Никакие особенности не расписаны
-
Kemet
- постоялец
- Сообщения: 241
- Зарегистрирован: 10.02.2010 18:28:32
- Откуда: Временно оккупированная территория
- Контактная информация:
На текущий момент документации нет, написание только планируется. Но разработчик Benjamin Rosseaux, он же BeRo, оказывает техподдержку.
Также в рассылке встречаются русскоязычные программисты, которые используют BESEN в своих разработках. Ну или пытаются использовать.
Лично я не использую, мне просто показалось, что разработка довольно интересная и полезная, т.к. встречал здесь неоднократные упоминания о нереализованном желании написать полноценный браузер на object pascal, в связи с отсутствием поддержки яваскриптов. Теперь такая поддержка есть, тем более, что на сайте BESEN один из пользователей писал, что использует с BESEN'ом jQuery.
Также в рассылке встречаются русскоязычные программисты, которые используют BESEN в своих разработках. Ну или пытаются использовать.
Лично я не использую, мне просто показалось, что разработка довольно интересная и полезная, т.к. встречал здесь неоднократные упоминания о нереализованном желании написать полноценный браузер на object pascal, в связи с отсутствием поддержки яваскриптов. Теперь такая поддержка есть, тем более, что на сайте BESEN один из пользователей писал, что использует с BESEN'ом jQuery.
