Модераторы: THandle, bems
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скриптовой PHP движок, на freepascal,есть тут заинтересованные? 
:(
    Опции темы
lukas
Дата 3.9.2010, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: нет
Всего: 15



Приветствую всех.  smile 

Давно не был на этом форуме. 
К делу.

Сейчас я занимаюсь разработкой php интерпретатора (с компилятором в байт код и виртуальной машиной для его выполнения). Дело в том, что это реализация с нуля, которая разрабатывается на delphi и freepascal. Благодаря freepascal реализация языка будет кросс платформенной.

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

На данный момент движок уже дает первые тесты, в нем есть условия, циклы, переменные простого типа, константы, а также подсчет выражений.
Все это работает сейчас так же как в оригинальном пхп. Типизация такая же как в пхп, есть int, double, bool, string. Немного реализованы уже массивы (кстати хеш-массив в моей реализации это таблица такого же типа как и таблицы переменных). Реализован импорт нативных функций в движок. Реализован умный класс для хеш-таблиц (оптимизирован для мгновенного поиска по ключу-строке).

Работает сие чудо с помощью 3х адресного кода в виртуальной машине, стековая машина используется пока только для вызова функций, больше ее негде пока использовать.

Все это работает очень быстро. По скорости работы движка, моя версия не очень отстает от оригинала, на некоторых тестах (особенно при вызове функций)  моя версия обгоняет PHP 5.2. В среднем же, моя версия где-то на 10-20% медленней оригинального php 5.2 версии.

Пишите:
ICQ: 861287
mail: [email protected]


Сейчас еще осталось допилить массивы, реализовать объекты и классы, реализовать пользовательские функции, конструкцию switch, реализовать сборщик мусора (хотя он есть в зачаточном виде), реализовать оптимизатор (хотяб минимальный).

P.S. Мой движок быстрее чем Pascal Script раза в 4-5 (не помню точно), и на столько же где-то быстрее FastScript. При этом еще нет реализации JIT.

Задача полностью повторить PHP не стоит, но в синтаксисе как можно ближе. В моей версии нет типа данных - ресурс. Думаю добавить тип данных userdata - что-то вроде record. Также подумываю как делать юникодные строки, делать ли все юникодным или как-то дать возможность работы и с такими и с такими.

Все это планируется выставить как openSource возможно, если у меня хватит энтузиазма. В отличии от оригинального PHP в моей версии будет нормальная многопоточность, также возможность добавлять методы классам во время выполнения (именно классам, а не объектам). 

Это сообщение отредактировал(а) lukas - 3.9.2010, 14:20


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Akella
Дата 5.9.2010, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 7
Всего: 329



А это рассматривали- php4delphi?
PM MAIL   Вверх
lukas
Дата 5.9.2010, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: нет
Всего: 15



Цитата

А это рассматривали- php4delphi? 


Про этот проект я знаю и пользовался миллион раз, то что у меня в подписи как раз на нем и основано, но я хочу написать пхп с нуля (возможно добавить свои некоторые синтаксические особенности). Это пока эксперимент, тем более в пхп так не хватает многопоточности и даже в 6 версии они ее не предусматривают. Оригинальный пхп ест очень много памяти.

Сам язык пхп я знаю вдоль и поперек, ну и делфи / паскаль тоже. Один момент думал даже писать на с++, но боюсь там будет много ошибок из-за не строгой типизации данных и нетривиальных конструкций. Поэтому написать это чудо на freepascal для меня быстрее.


Думая моя реализация пхп будет востребована в игровой сфере, как скриптовой движок для игр, под веб я не собираюсь реализовывать.

Это сообщение отредактировал(а) lukas - 5.9.2010, 13:56


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Akella
Дата 5.9.2010, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 7
Всего: 329



lukas, а кнопками Цитата и Быстрая цитата, я так понял не научились пользоваться за, почти, 4 года?

Добавлено через 43 секунды
Цитата(lukas @  5.9.2010,  10:26 Найти цитируемый пост)
то что у меня в подписи как раз на нем и основано


Цитата(lukas @  5.9.2010,  10:26 Найти цитируемый пост)
но я хочу написать пхп с нуля


а есть смысл?
PM MAIL   Вверх
lukas
Дата 5.9.2010, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: нет
Всего: 15



Цитата(Akella @  5.9.2010,  12:27 Найти цитируемый пост)
а есть смысл?


Ну задача топика не переубедить меня в том, что нету смысла. Смысл для меня есть - получить опыт создания компиляторов и интерпретаторов, прославиться  сделать себе имя, да и вообще это интересно. Короче, люди должны быть энтузиастами, я думаю консерваторам такие идеи чужды.  smile  

С цитатой глюк был, не заметил.

Это сообщение отредактировал(а) lukas - 5.9.2010, 14:01


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
lukas
Дата 23.9.2010, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: нет
Всего: 15



Может кто посоветует какие порталы и сайты, где можно найти таких людей (увлекающихся созданием компиляторов и интерпретаторов)?

Это сообщение отредактировал(а) lukas - 23.9.2010, 16:49


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
lukas
Дата 17.10.2010, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: нет
Всего: 15



Привет Друзья.

Моя сумасшедшая  smile  идея постепенно сбывается. Встречайте:

http://code.google.com/p/orionphp/

OrionPHP
 - Кроссплатформенный интерпритатор языка Orion (потомок PHP).

Исходники открыты под лицензией MIT. Пока это пре-пре-пре-альфа версия. Все исходники на svn, там же есть 2 проекта примера использования движка - для делфи и лазаруса.

Исходники совместимы с delphi 2005-2010 (возможно и Delphi7 не проверял), а также с FreePascal (Lazarus). Юникодная версия как бы есть и как бы ее нету, пока не разобрался как внедрять юникод в язык. Хочу заметить, что движок будет как можно максимально потоко-безопасным.

Уже есть: 
  • Виртуальная машина с эмуляцией регистров (регистры есть, но на самом деле это стек). 
  • Парсер, который разбирает исходный код скрипта
  • Компилятор, который компилирует информацию от парсера в байт код для виртуальной машины
Синтаксический анализатор пока не умеет проверять на ошибки, но это следующий этап. Уже все есть - компиляция выражений с функциями, переменными, элементами массивов, а также циклы (while, do, for), условия (if, else, elseif), пользовательские и анонимные (без названия) функции, сборщик мусора для хеш-массивов, анонимных функций, стека виртуальной машины, легко внедрять свои функции (нативные функции), реализованы константы. Хочу заметить, что язык поддерживает довольно сложные выражения, например:


Код

$func = function ($msg){
    message($func);
}

$func('aaaa');

// или еще сложнее
$arr['key']['key2'] = $func;
$arr['key']['key2']('bbbb');  // вызов функции $func с параметром 'bbbb'


А также можно возвращать значения из функции по элементу массива:
Код

function testArr(){
    return array('aaa','bbb','ccc',array('xxx','yyy'));
}

message(testArr()[3][1]); // покажет 'yyy'


Язык получился довольно быстрым, честно говоря на вызовах пользовательских и нативных функциях мой язык выигрывает у PHP 5.2, что не делают например известные FastScript или PascalScript, они проигрывают известным языкам как php, python и т.п. раз в 7-10, а то и больше.

Из-за того что, вызов функций у моего языка происходит быстрее чем у пхп, скорость практически одинаковая, хотя если учесть, что люди часто пишут функции пользовательские и нативные в циклах, то orionPHP будет выигрывать.


P.S. Если есть заинтересованные люди пишите мне в аську или здесь. Может кто захочет стать активным тестером. Данные есть в первом посте выше.

Это сообщение отредактировал(а) lukas - 17.10.2010, 21:06


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle

Добро пожаловать в форум группы "Delphi".

В разделе разрешается:

  • Флудить (в приемлемых величинах)
  • Обсуждать модерирование данного раздела (но не его модератора)
  • Добавлять свои правила если они не противоречат существующим
  • Делать наезды на пешеходов***

Строго запрещено:

  • Размещать рекламу
  • Совершать оскорбления личностей
  • Материться
  • *** Пешеходами не являются (ко)модераторы, админы, участники клуба.

Если Вам понравилась атмосфера форума, заходите к нам чаще! Люблю, целую, вечно Ваш, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Форум группы: delphi | Следующая тема »


 




[ Время генерации скрипта: 0.0479 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.