Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Orion Script - php подобный скриптовой движок, как замена Pascal и Fast Script... 
:(
    Опции темы
lukas
Дата 7.1.2011, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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 и т.п.
    ... было что-то еще..   smile 


P.S. Orion станет для делфи и паскаля что-то вроде Lua для C++. Я хочу его использовать в игровых проектах и для создания программ. На web я не претендую вообще.  Проект пока не готов к использованию на практике, идет активная разработка.. Напоминаю, что это не интерпретатор. Это виртуальня машина + компилятор в байт-код для этой машины.


Отвечу на ваши вопросы, это пока лишь мое хобби.


Это сообщение отредактировал(а) lukas - 7.1.2011, 15:10


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


Творец
****


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

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



Интересно, а зачем такое? Где и как можно применить?
PM MAIL   Вверх
lukas
Дата 7.1.2011, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Akella @  7.1.2011,  15:14 Найти цитируемый пост)
Интересно, а зачем такое? Где и как можно применить? 


Я хочу затем использовать его для своего конструктора игр, он там будет выполнять роль скриптового языка и не только. 

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.
PM MAIL WWW   Вверх
Akella
Дата 8.1.2011, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



user posted image
PM MAIL   Вверх
lukas
Дата 8.1.2011, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Кодировка на хостинге UTF-8, а файл формата Windows-1251, гугл не понимает этого.


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


Творец
****


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

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



значит файл сделай в UTF-8 smile
PM MAIL   Вверх
lukas
Дата 8.1.2011, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Для тех кто думает, что язык медленнее оригинального PHP написанного на Си - это далеко не так, я приведу примеры, где моя реализация с лихвой обходит php 5.2 версии:

Вызов функции с параметрами по-умолчанию:
Orion - 1200 mlsec (delphi)
Orion - 1500 mlsec (freepascal)
PHP 5.2 - 2350 mlsec

Код

const MY_CONST = 2.5;
function test($x = 20,$y = 'abc',$z = null,$a = MY_CONST){
   
}

$i = 0;
while ($i < 1000000){
  $i++;
  test();
}
 

Статические методы и константы класса:
ORION - 250 mlsec
ORION - 260-270 mlsec (freepascal)
PHP 5.2.4 - 1350 mlsec

Код

class URa {

      const MY_CONST = 20;

      function test(){
          return URa::MY_CONST;
      }
}

$i = 0;
while ($i < 100000){
  $i++;
    $d = URa::MY_CONST + URa::MY_CONST + URa::MY_CONST;
    $d = URa::test();
}



Вызов функции:
Orion - 2050 mlsec
Orion - 2650 mlsec (freepascal)
PHP 5.2 - 2750 mlsec
Код

function test($x){
   
}

$i = 0;
while ($i < 1000000){
  $i++;
  test($i);
  test($i);
  test($i);
}



Вот наглядные примеры, конечно язык проигрывает в чистых циклах, в простых операторах, в присвоении переменных и т.п., но это спички, в них проигрывает даже луа. Зато на практике чаще влияет на скорость то, что я привел выше.

P.S. Если есть люди, которые захотят поближе протестировать все этом, можно со мной связаться, написать в PM. Может кто-то захочет помочь морально или материально.

Это сообщение отредактировал(а) lukas - 8.1.2011, 22:36


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


Творец
****


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

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



А ты напиши надстройку для Apache. И будет веб сервер.
PM MAIL   Вверх
lukas
Дата 9.1.2011, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Akella @  9.1.2011,  10:19 Найти цитируемый пост)
А ты напиши надстройку для Apache. И будет веб сервер.


Где бы почитать про это? Ну если не на freepascal'e, то хотя бы на си. Хотя просто ради прикола можно попробовать.


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


Творец
****


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

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



А доступ к СУБД есть?
PM MAIL   Вверх
lukas
Дата 9.1.2011, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Akella @  9.1.2011,  10:53 Найти цитируемый пост)
А доступ к СУБД есть? 


    Это дело модулей, важно понять где начинается и кончается язык программирования. Когда закончу буду писать модули, есть SDK чтобы любой желающий мог написать свои модули к языку, как статические, так и динамические через dll. Могу сказать какие модули будут точно - Synapse, Curl, MySQL, PerlExpr (рег вырожения), Свои рег выражения (простой вариант), модуль для работы с GUI.


Спешу похвалится, реализовал сегодня статические свойства у классов, они работают быстрее чем в пхп в 1,5-2 раза, причем поддерживается и наследование:

Код

// Orion - 1800 mlsec
// Orion - 2200 mlsec (freepascal)
// PHP 5.2 - 3600 mlsec
class URa {
  const MY_CONST = 2.5;
  static $var = 20;
}

$i = 0;
while ($i < 1000000){
  $i++;
  URa::$var = $i;
  URa::$var = $i;
  URa::$var = $i;
}


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


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

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

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


 




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


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

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