![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: 3 Всего: 15 |
Здравствуйте,
Я долго думал, где опубликовать эту тему, в проектах она останется незамеченной, вернее не найдет там людей, которым бы был этот проект интересен. И так к делу: Orion — так называется аля новый альтернативный php скриптовой движок, пишется он на pascal (delphi, freepascal, lazarus). Разработка кроссплатформенная. Создание интерпретатора php с нуля — это идея конечно бредовая для многих, но все же, кто заинтересовался читаем дальше. Думаю сообществу будет интересно. На данный момент многое готово — виртуальная машина, парсер, компилятор в байт-код, синтаксический анализатор и т.д. и т.п. Из возможностей уже есть — переменные, константы, условия, циклы, функции (в том числе и анонимные), хеш-массивы, сборщик мусора, даже что-то вроде namespace на свой лад, классы (пока нет объектов). Исходники открыты под лицензией MIT. Скорость выполнения скриптов на таком же уровне как и PHP 5.2, иногда медленнее, а иногда быстрее. Он быстрее также PascalScript и FastScript в 4-5 раз, вообще я поражаюсь насколько медленные скриптовые движки под паскалем. Адрес проекта: http://code.google.com/p/orionphp/ Исходники можно скачать через svn (лучше через него), также есть демо проекты, на сайте можно прочитать несколько статей про Орион. Язык на 95% похож на php. Интеграция с delphi и lazarus Конечно интегрировать пока Pascal Script и Fast Script легче, но из-за этой легкости мы существенно снижаем скорость выполнения скриптов. Интегрировать Orion можно через динамическую библиотеку или статически скомпилировав вместе с проектом. Орион не будет компилироваться под Delphi 7, он совместим с Delphi 2005-2010, XE, FreePascal 2.2.4-2.5.x. Где можно увидеть примеры скриптов? Их можно посмотреть в исходниках: http://code.google.com/p/orionphp/source/b...%2Ftrunk%2Ftest - это юнит тесты для языка http://code.google.com/p/orionphp/source/b...2Ftrunk%2Fdemos - это просто демо скрипты Глянув на эти скрипты, можно понять на сколько готов язык. И так, вы еще читаете? Для неведующих: Язык PHP разрабатывали 2 человека, поэтому, это не такая уж сложная задача, больше времени уходит на написание расширений для языка. Я знаю что существует phc, php.net и еще один такой проект, но это меня не останавливает. Я хочу развить php немного в другом направлении, выработать новый язык на основе пхп. Что нового по сравнению с PHP * 1. Оператор IN - вхождение элемента в массив или строку * 2. Множества - короткая запись объявления массивов как в JavaScript? * 3. Foreach цикл может перебирать элементы по ссылке * 4. Переменные и константы всегда регистро-независимые * 5. Множественное объявление констант через короткую запись, в классах в том числе * 6. Константы класса - protected, public, private * 7. Возможность менять методы и свойства классов во время выполнения. * 8. Возможность обращаться к глобальным переменным через "@" вместо $ * 9. Возможность обращаться к массивам после вызова функции: myFunc()[1] * 10. Возможность сохранять байт-код в строку и выполнять его. Что выбросили из PHP * 1. Интерфейсы (очень вероятно что их не будет) * 2. Абстрактные и финальные модификаторы для классов, методов (тоже пока не ясно что с ними будет) * 3. Выбросили "@" - который глушит ошибки * 4. Выбросили волшебные кавычки * 5. & - этот символ сделали унарным оператором возвращающим ссылку на значение, а не костылем как в пхп * 6. -> и :: сделали бинарными операторами - слева ссылка на объекта, справа на свойство * 7. Выбросили волшебную возможность обращения к переменным $$var и т.п. ... было что-то еще.. ![]() P.S. Orion станет для делфи и паскаля что-то вроде Lua для C++. Я хочу его использовать в игровых проектах и для создания программ. На web я не претендую вообще. Проект пока не готов к использованию на практике, идет активная разработка.. Напоминаю, что это не интерпретатор. Это виртуальня машина + компилятор в байт-код для этой машины. Отвечу на ваши вопросы, это пока лишь мое хобби. Это сообщение отредактировал(а) lukas - 7.1.2011, 15:10 -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Интересно, а зачем такое? Где и как можно применить?
|
|||
|
||||
lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: 3 Всего: 15 |
Я хочу затем использовать его для своего конструктора игр, он там будет выполнять роль скриптового языка и не только. 1. Сначала я допишу его, доведу до стабильности. 2. Создам фреймворк, чтобы его отдельно можно было ставить 3. Напишу GUI расширение на основе LCL для этого языка 4. Построю конструктор игр на основе ГУИ расширения и Ориона, вынеся нагрузочный код в нативную часть расширения. 5. В результате, конструктор можно будет легко перенести на другую платформу. 6. Этим я убью 2х зайцев, разрабатывая на основе ОРиона конструктор, я тем самым отлажу язык и исправлю все баги. И еще буду использовать его в качестве основного для создания игр или программ в конструкторе (ведь гуи библиотека уже будет). 7. Возможно добавлю в конструктор возможность встраивать нативный код паскаля в приложение, но тогда придется полностью открыть код, придется использовать fpc. Разработка тоже будет уже на лазарусе. (Конструктор - RAD - среда разработки). А где и как еще его можно применить, да там же где применяют Pascal Script и подобные разработки. Это сообщение отредактировал(а) lukas - 7.1.2011, 15:25 -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
![]() |
|||
|
||||
lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: 3 Всего: 15 |
Кодировка на хостинге UTF-8, а файл формата Windows-1251, гугл не понимает этого.
-------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
значит файл сделай в UTF-8
![]() |
|||
|
||||
lukas |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: 3 Всего: 15 |
Для тех кто думает, что язык медленнее оригинального PHP написанного на Си - это далеко не так, я приведу примеры, где моя реализация с лихвой обходит php 5.2 версии:
Вызов функции с параметрами по-умолчанию: Orion - 1200 mlsec (delphi) Orion - 1500 mlsec (freepascal) PHP 5.2 - 2350 mlsec
Статические методы и константы класса: ORION - 250 mlsec ORION - 260-270 mlsec (freepascal) PHP 5.2.4 - 1350 mlsec
Вызов функции: Orion - 2050 mlsec Orion - 2650 mlsec (freepascal) PHP 5.2 - 2750 mlsec
Вот наглядные примеры, конечно язык проигрывает в чистых циклах, в простых операторах, в присвоении переменных и т.п., но это спички, в них проигрывает даже луа. Зато на практике чаще влияет на скорость то, что я привел выше. P.S. Если есть люди, которые захотят поближе протестировать все этом, можно со мной связаться, написать в PM. Может кто-то захочет помочь морально или материально. Это сообщение отредактировал(а) lukas - 8.1.2011, 22:36 -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
||||||
|
|||||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
А ты напиши надстройку для Apache. И будет веб сервер.
|
|||
|
||||
lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: 3 Всего: 15 |
Где бы почитать про это? Ну если не на freepascal'e, то хотя бы на си. Хотя просто ради прикола можно попробовать. -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
А доступ к СУБД есть?
|
|||
|
||||
lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: 3 Всего: 15 |
Это дело модулей, важно понять где начинается и кончается язык программирования. Когда закончу буду писать модули, есть SDK чтобы любой желающий мог написать свои модули к языку, как статические, так и динамические через dll. Могу сказать какие модули будут точно - Synapse, Curl, MySQL, PerlExpr (рег вырожения), Свои рег выражения (простой вариант), модуль для работы с GUI. Спешу похвалится, реализовал сегодня статические свойства у классов, они работают быстрее чем в пхп в 1,5-2 раза, причем поддерживается и наследование:
Это сообщение отредактировал(а) lukas - 9.1.2011, 14:35 -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |