Scriptol

Поделись знанием:
Перейти к: навигация, поиск
Scriptol
Появился в:

12 октября 2001

Автор:

Denis Sureau

Выпуск:

Alpha A-30 (ноябрь 2006 года)

Система типов:

статическая и динамическая

Испытал влияние:

PHP, C++

Лицензия:

Mozilla 1.1, Open source, BSD license.

Сайт:

[www.scriptol.net/ iptol.net]

Scriptol — это современный простой язык программирования.





Обзор

Scriptol разрабатывался как простой, безопасный и универсальный язык программирования, позволяющий создавать динамические веб-страницы, сценарии и исполняемые приложения. Scriptol интегрирует XML в качестве источника или загружаемого файла. Является современным, объектно-ориентированным, процедурным языком. Scriptol компилируется в PHP компилятором Scriptol PHP. Компилятор превращает скрипт Scriptol в код PHP или HTML-страницу с внедренным Scriptol, содержащие PHP-инструкции. По сути, он превращает PHP в виртуальную машину или сервер функций и данных, байткодом для которого является язык PHP. Ядро языка общее для PHP и C++, что позволяет использовать один и тот же язык программирования и для веб-страниц, и для приложений. Наряду с прозрачностью, читаемостью и безопасностью, обеспечиваемыми синтаксисом, Scriptol сокращает время разработки, проверяя ошибки на стадии компиляции.

Scriptol был создан в соответствии с семью правилами: простота, безопасность, соответствие стандартам, объективность, несколько направлений, мобильность, легкое обучение. Scriptol программа может быть построена как исполняемый файл. Управляющие структуры более мощные и отличаются от классических языков, что позволяет эффективнее использовать шаблоны и автоматов (DFA). Безопасность является одной главной целью языка.

Компилятор бесплатен для независимых разработчиков, лицензия требуется только для компаний. Сайт разработчиков — [www.scriptol.com www.scriptol.com].

Описание языка программирования Scriptol

Scriptol является современным языком программирования, предназначенным для простой и легкой разработки, что сказывается на сроках создания, высоком качестве и безопасности проектов. Scriptol является объектно-ориентированным, XML-ориентированным, расширяемым, универсальным, использует C++, PHP, Java API и GTK для графического интерфейса пользователя. Scriptol универсален, что означает, что удобен для сценариев, для создания приложений или для динамических веб-страниц. Бесплатный интерпретатор и компилятор языка Scriptol доступны на Windows и Unix.

Особенности Scriptol

  • современный: был разработан в соответствии с семью правилами простоты, безопасности и не несет устаревшего синтаксиса.
  • универсальный: подходит для приложений, скриптов или веб-страницы.
  • объектно-ориентированный: даже примитивные типы данных, такие как «Int» (например, 123), являются объектом и имеет методы.
  • приведение типов: компилятор может проверить программу и тип переменных, это не представляется возможным с обычно нетипизированных языков сценариев.
  • естественный: типы переменных не на основе компьютерного оборудования, а на человеческом понимании или математическом множестве: это text, number, integer, real и т.д…
  • мощный и безопасный: введены новые структуры управления
Примеры:
- композитный if, который является одновременно if оператором и switch case с любым типом значения.
- while let, что защищает от бесконечного цикла.
- for .. in массиве, или  for .. in a..b, самый простой способ работы с интервалами.
  • простой: нет символов as -> or ::, просто точка в любом случае.
Добавить 1 к х: х + 1, а не х += 1.
Не требуется управления памятью, т.к. есть сборщик мусора.
  • совместим с С++: у вас есть только ссылка на C++ объектные файлы или библиотеки файлов, и используемые функции, которые они выполняют, не любое расширение необходимых для записи!
Например, нужно всего лишь импортировать библиотеки GTK в файл конфигурации Scriptol для использования GTK-интерфейса...
  • PHP совместим: вы можете запрограммировать веб-страниц в Scriptol, ваш код сконвертируется в PHP, и все функции PHP также могут быть использованы.
  • портативный: работает на любой PHP или Си (язык программирования) совместимой платформе.
  • XML-ориентированный: XML-документ является структурой данных языка и модель DOM является классом интегрированной библиотеки. Использование XML становится чрезвычайно простым со Scriptol.
  • многозадачный. Функция может возвращать несколько значений.
  • индексированные или ассоциативные массивы.
  • можно использовать API-интерфейсы в PHP, Java или C++.

Зачем использовать Scriptol?

В основном для:

  • встраивания кода в страницы HTML. Он будет работать на любом сервере. Использование PHP 4.
  • защиты кода путём распределения исполняемого файла.
  • легкой и быстрой разработки сценариев, благодаря синтаксису высокого уровня. Это чистый и мощный язык, очень интуитивный.
  • создания прототипов, проверки Scripts-программ и C-кода интерпретатором, прежде чем получаем исполняемый файл для включения в крупный проект.
  • создания приложений и веб-приложений: Scriptol может быть интегрирован в инструменты быстрой разработки приложений и может использовать кросс-платформенной GUI-библиотек GTK. Scriptol не нужен для Makefile или любого файла проекта. Scriptol-скрипты могут быть скомпилированы в PHP, поэтому он является портативным. Компилятор обнаруживает ошибки перед запуском программы.
  • обработки документов, сохраненных как XML, и другими приложениями.
  • формирования XML-документов или HTML-страниц из любого источника.
  • создания и использования баз данных и легкого связывания какой-либо обработки данных.

Также может быть использована вместе с RAD (Rapid Application Development) инструментом, таким как C++ Builder или Visual Studio.

Язык

Синтаксис

  • Выражения заканчиваются концом строки
  • Аналогично XML-признак конца структуры: /if, /while и т.д…
  • Каждый оператор имеет только одно использование, а не несколько соответствий в контексте, как в C.
  • Скалярные типы данных из реальной жизни: text, number, real и т.д…
  • Соединение выражения имеет вид:

x + 1 // равнозначно: x = x + 1

Структуры данных

Scalars, xml, class.

Управляющие структуры

  • if … else, composite if
  • for … in … step
  • while … let
  • do case … while, do case … until
  • scan by
  • break, continue, return

Обратите внимание, что Scriptol не использует switch case, потому что if достаточно мощный для обработки различных видов условий и фактически более мощный, чем switch case, поскольку он может использовать различные операторы сравнения.

Композитный If

if a
     = 10: print "equal"
     < 10: print "less"
     else
        print "more"
/if

While

В то время как структура имеет несколько форм, let защищает от бесконечного цикла.

while x < 10
   print x  
let x + 1

Определение функций

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

int, text funcname(... arguments...)
    ...statements...
return a, b

Сравнение кода Scriptol и PHP

Код Scriptol является интуитивно понятным и простым. Вместо этого синтаксис PHP подобен Си (язык программирования), Perl и языкам командной оболочки UNIX(Bash), направленным на ограничение потребления ресурсов, а не для упрощения задачи программистов.

Код Scriptol:

text x
input "Y/N?", x

if x.lower()
= "y"
    print "yes"
= "n"
    print "no"
else
    print "What?"
/if

Сгенерированный код PHP:

<?php
$x="";
echo "Y/N?";
$fp=fopen("php://stdin","r");
$x=rtrim(fgets($fp,65536));
fclose($fp);

$_I1=strtolower($x);
if($_I1==="y")
{
   echo "yes", "\n";
}
else
{
   if($_I1==="n")
   {
      echo "no", "\n";
   }
else
{
   echo "What?", "\n";
}
}

?>

Примеры кода

Пример № 1

Простая программа «Hello World»

int main(int argsize, array arglist)
  print "Hello World\n"
return 0
main($argc, $argv)

Пример № 2

Число Фибоначчи

constant int fmax = 16
int z

int fib(int n)
   if n <= 1
       z = n
   else
       z = fib(n - 1) + fib(n - 2)
   /if
return z

for int i in 0..fmax
    print "fib($i)= " , fib(i)
/for

Пример № 3

Внедрение кода Scriptol в HTML:

<html>
  <head>  </head>
<body>

<?sol 
    print "code embedded inside html!"
?>

</body>
</html>

Пример № 4

Слияние и отображение списков:

listdemo = (1,2,3) + (4,5)
subdemo = listdemo[1..3]
scan subdemo
     print subdemo[]
/scan 
>>> should print: 2 3 4

Пример № 5

«99 бутылок пива» демонстрирует простейшее применение циклов:

text bottle(int n)
    if n = 0 return "no more bottles of beer"
return text(n) + " bootle" + plural(n) + " of beer"

text b1

for int i in 99 -- 0 step -1
    b1 = bottle(i)

	if i > 0
		print b1, "on the wall,", b1 + ","
		print	"take one down, pass it around,"
		print bottle(i - 1), "on the wall." 
	/if
/for

Напишите отзыв о статье "Scriptol"

Ссылки

  • [www.scriptol.com/ Официальный сайт]
  • [www.scriptol.net/ Официальный сайт]
  • [scriptol.sourceforge.net/ Sourceforge]


К:Википедия:Изолированные статьи (тип: не указан)

Отрывок, характеризующий Scriptol

– Папа! об чем вы это? – сказала ему Наташа, вслед за ним вошедшая в комнату матери.
– Ни о чем! Тебе что за дело! – сердито проговорил граф.
– Нет, я слышала, – сказала Наташа. – Отчего ж маменька не хочет?
– Тебе что за дело? – крикнул граф. Наташа отошла к окну и задумалась.
– Папенька, Берг к нам приехал, – сказала она, глядя в окно.


Берг, зять Ростовых, был уже полковник с Владимиром и Анной на шее и занимал все то же покойное и приятное место помощника начальника штаба, помощника первого отделения начальника штаба второго корпуса.
Он 1 сентября приехал из армии в Москву.
Ему в Москве нечего было делать; но он заметил, что все из армии просились в Москву и что то там делали. Он счел тоже нужным отпроситься для домашних и семейных дел.
Берг, в своих аккуратных дрожечках на паре сытых саврасеньких, точно таких, какие были у одного князя, подъехал к дому своего тестя. Он внимательно посмотрел во двор на подводы и, входя на крыльцо, вынул чистый носовой платок и завязал узел.
Из передней Берг плывущим, нетерпеливым шагом вбежал в гостиную и обнял графа, поцеловал ручки у Наташи и Сони и поспешно спросил о здоровье мамаши.
– Какое теперь здоровье? Ну, рассказывай же, – сказал граф, – что войска? Отступают или будет еще сраженье?
– Один предвечный бог, папаша, – сказал Берг, – может решить судьбы отечества. Армия горит духом геройства, и теперь вожди, так сказать, собрались на совещание. Что будет, неизвестно. Но я вам скажу вообще, папаша, такого геройского духа, истинно древнего мужества российских войск, которое они – оно, – поправился он, – показали или выказали в этой битве 26 числа, нет никаких слов достойных, чтоб их описать… Я вам скажу, папаша (он ударил себя в грудь так же, как ударял себя один рассказывавший при нем генерал, хотя несколько поздно, потому что ударить себя в грудь надо было при слове «российское войско»), – я вам скажу откровенно, что мы, начальники, не только не должны были подгонять солдат или что нибудь такое, но мы насилу могли удерживать эти, эти… да, мужественные и древние подвиги, – сказал он скороговоркой. – Генерал Барклай до Толли жертвовал жизнью своей везде впереди войска, я вам скажу. Наш же корпус был поставлен на скате горы. Можете себе представить! – И тут Берг рассказал все, что он запомнил, из разных слышанных за это время рассказов. Наташа, не спуская взгляда, который смущал Берга, как будто отыскивая на его лице решения какого то вопроса, смотрела на него.
– Такое геройство вообще, каковое выказали российские воины, нельзя представить и достойно восхвалить! – сказал Берг, оглядываясь на Наташу и как бы желая ее задобрить, улыбаясь ей в ответ на ее упорный взгляд… – «Россия не в Москве, она в сердцах се сынов!» Так, папаша? – сказал Берг.
В это время из диванной, с усталым и недовольным видом, вышла графиня. Берг поспешно вскочил, поцеловал ручку графини, осведомился о ее здоровье и, выражая свое сочувствие покачиваньем головы, остановился подле нее.
– Да, мамаша, я вам истинно скажу, тяжелые и грустные времена для всякого русского. Но зачем же так беспокоиться? Вы еще успеете уехать…
– Я не понимаю, что делают люди, – сказала графиня, обращаясь к мужу, – мне сейчас сказали, что еще ничего не готово. Ведь надо же кому нибудь распорядиться. Вот и пожалеешь о Митеньке. Это конца не будет?
Граф хотел что то сказать, но, видимо, воздержался. Он встал с своего стула и пошел к двери.
Берг в это время, как бы для того, чтобы высморкаться, достал платок и, глядя на узелок, задумался, грустно и значительно покачивая головой.
– А у меня к вам, папаша, большая просьба, – сказал он.
– Гм?.. – сказал граф, останавливаясь.
– Еду я сейчас мимо Юсупова дома, – смеясь, сказал Берг. – Управляющий мне знакомый, выбежал и просит, не купите ли что нибудь. Я зашел, знаете, из любопытства, и там одна шифоньерочка и туалет. Вы знаете, как Верушка этого желала и как мы спорили об этом. (Берг невольно перешел в тон радости о своей благоустроенности, когда он начал говорить про шифоньерку и туалет.) И такая прелесть! выдвигается и с аглицким секретом, знаете? А Верочке давно хотелось. Так мне хочется ей сюрприз сделать. Я видел у вас так много этих мужиков на дворе. Дайте мне одного, пожалуйста, я ему хорошенько заплачу и…
Граф сморщился и заперхал.
– У графини просите, а я не распоряжаюсь.
– Ежели затруднительно, пожалуйста, не надо, – сказал Берг. – Мне для Верушки только очень бы хотелось.
– Ах, убирайтесь вы все к черту, к черту, к черту и к черту!.. – закричал старый граф. – Голова кругом идет. – И он вышел из комнаты.
Графиня заплакала.
– Да, да, маменька, очень тяжелые времена! – сказал Берг.
Наташа вышла вместе с отцом и, как будто с трудом соображая что то, сначала пошла за ним, а потом побежала вниз.
На крыльце стоял Петя, занимавшийся вооружением людей, которые ехали из Москвы. На дворе все так же стояли заложенные подводы. Две из них были развязаны, и на одну из них влезал офицер, поддерживаемый денщиком.
– Ты знаешь за что? – спросил Петя Наташу (Наташа поняла, что Петя разумел: за что поссорились отец с матерью). Она не отвечала.
– За то, что папенька хотел отдать все подводы под ранепых, – сказал Петя. – Мне Васильич сказал. По моему…
– По моему, – вдруг закричала почти Наташа, обращая свое озлобленное лицо к Пете, – по моему, это такая гадость, такая мерзость, такая… я не знаю! Разве мы немцы какие нибудь?.. – Горло ее задрожало от судорожных рыданий, и она, боясь ослабеть и выпустить даром заряд своей злобы, повернулась и стремительно бросилась по лестнице. Берг сидел подле графини и родственно почтительно утешал ее. Граф с трубкой в руках ходил по комнате, когда Наташа, с изуродованным злобой лицом, как буря ворвалась в комнату и быстрыми шагами подошла к матери.
– Это гадость! Это мерзость! – закричала она. – Это не может быть, чтобы вы приказали.
Берг и графиня недоумевающе и испуганно смотрели на нее. Граф остановился у окна, прислушиваясь.
– Маменька, это нельзя; посмотрите, что на дворе! – закричала она. – Они остаются!..
– Что с тобой? Кто они? Что тебе надо?
– Раненые, вот кто! Это нельзя, маменька; это ни на что не похоже… Нет, маменька, голубушка, это не то, простите, пожалуйста, голубушка… Маменька, ну что нам то, что мы увезем, вы посмотрите только, что на дворе… Маменька!.. Это не может быть!..
Граф стоял у окна и, не поворачивая лица, слушал слова Наташи. Вдруг он засопел носом и приблизил свое лицо к окну.
Графиня взглянула на дочь, увидала ее пристыженное за мать лицо, увидала ее волнение, поняла, отчего муж теперь не оглядывался на нее, и с растерянным видом оглянулась вокруг себя.
– Ах, да делайте, как хотите! Разве я мешаю кому нибудь! – сказала она, еще не вдруг сдаваясь.
– Маменька, голубушка, простите меня!
Но графиня оттолкнула дочь и подошла к графу.
– Mon cher, ты распорядись, как надо… Я ведь не знаю этого, – сказала она, виновато опуская глаза.
– Яйца… яйца курицу учат… – сквозь счастливые слезы проговорил граф и обнял жену, которая рада была скрыть на его груди свое пристыженное лицо.
– Папенька, маменька! Можно распорядиться? Можно?.. – спрашивала Наташа. – Мы все таки возьмем все самое нужное… – говорила Наташа.
Граф утвердительно кивнул ей головой, и Наташа тем быстрым бегом, которым она бегивала в горелки, побежала по зале в переднюю и по лестнице на двор.
Люди собрались около Наташи и до тех пор не могли поверить тому странному приказанию, которое она передавала, пока сам граф именем своей жены не подтвердил приказания о том, чтобы отдавать все подводы под раненых, а сундуки сносить в кладовые. Поняв приказание, люди с радостью и хлопотливостью принялись за новое дело. Прислуге теперь это не только не казалось странным, но, напротив, казалось, что это не могло быть иначе, точно так же, как за четверть часа перед этим никому не только не казалось странным, что оставляют раненых, а берут вещи, но казалось, что не могло быть иначе.