| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Форум группы: delphi > Скриптовой PHP движок |
| Автор: lukas 3.9.2010, 14:19 |
| Приветствую всех. Давно не был на этом форуме. К делу. Сейчас я занимаюсь разработкой 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 в моей версии будет нормальная многопоточность, также возможность добавлять методы классам во время выполнения (именно классам, а не объектам). |
| Автор: Akella 5.9.2010, 08:14 |
| А это рассматривали- php4delphi? |
| Автор: lukas 5.9.2010, 10:26 | ||
Про этот проект я знаю и пользовался миллион раз, то что у меня в подписи как раз на нем и основано, но я хочу написать пхп с нуля (возможно добавить свои некоторые синтаксические особенности). Это пока эксперимент, тем более в пхп так не хватает многопоточности и даже в 6 версии они ее не предусматривают. Оригинальный пхп ест очень много памяти. Сам язык пхп я знаю вдоль и поперек, ну и делфи / паскаль тоже. Один момент думал даже писать на с++, но боюсь там будет много ошибок из-за не строгой типизации данных и нетривиальных конструкций. Поэтому написать это чудо на freepascal для меня быстрее. Думая моя реализация пхп будет востребована в игровой сфере, как скриптовой движок для игр, под веб я не собираюсь реализовывать. |
| Автор: Akella 5.9.2010, 12:27 |
| lukas, а кнопками Цитата и Быстрая цитата, я так понял не научились пользоваться за, почти, 4 года? Добавлено через 43 секунды а есть смысл? |
| Автор: lukas 5.9.2010, 13:58 |
Ну задача топика не переубедить меня в том, что нету смысла. Смысл для меня есть - получить опыт создания компиляторов и интерпретаторов, прославиться сделать себе имя, да и вообще это интересно. Короче, люди должны быть энтузиастами, я думаю консерваторам такие идеи чужды. С цитатой глюк был, не заметил. |
| Автор: lukas 23.9.2010, 16:48 |
| Может кто посоветует какие порталы и сайты, где можно найти таких людей (увлекающихся созданием компиляторов и интерпретаторов)? |
| Автор: lukas 17.10.2010, 21:02 | ||||
| Привет Друзья. Моя сумасшедшая http://code.google.com/p/orionphp/ OrionPHP - Кроссплатформенный интерпритатор языка Orion (потомок PHP). Исходники открыты под лицензией MIT. Пока это пре-пре-пре-альфа версия. Все исходники на svn, там же есть 2 проекта примера использования движка - для делфи и лазаруса. Исходники совместимы с delphi 2005-2010 (возможно и Delphi7 не проверял), а также с FreePascal (Lazarus). Юникодная версия как бы есть и как бы ее нету, пока не разобрался как внедрять юникод в язык. Хочу заметить, что движок будет как можно максимально потоко-безопасным. Уже есть:
А также можно возвращать значения из функции по элементу массива:
Язык получился довольно быстрым, честно говоря на вызовах пользовательских и нативных функциях мой язык выигрывает у PHP 5.2, что не делают например известные FastScript или PascalScript, они проигрывают известным языкам как php, python и т.п. раз в 7-10, а то и больше. Из-за того что, вызов функций у моего языка происходит быстрее чем у пхп, скорость практически одинаковая, хотя если учесть, что люди часто пишут функции пользовательские и нативные в циклах, то orionPHP будет выигрывать. P.S. Если есть заинтересованные люди пишите мне в аську или здесь. Может кто захочет стать активным тестером. Данные есть в первом посте выше. |