Scriptol

Материал из Циклопедии
Перейти к навигации Перейти к поиску
Scriptol
Появился в:

12 октября 2001

Автор(ы):

Denis Sureau

Релиз:

Scriptol 3 (2016)

Типизация данных:

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

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

PHP, C++

Лицензия

Mozilla 1.1, Open source, BSD license.

Сайт:

www.scriptol.com

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

Обзор[править]

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

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

Компилятор бесплатен для независимых разработчиков, лицензия требуется только для компаний. Сайт разработчиков — 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++: у вас есть только ссылка на 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[править]

<source lang="csharp"> if a

    = 10: print "equal"
    < 10: print "less"
    else
       print "more"

/if </source>

While[править]

В то время как структура имеет несколько форм, let защищает от бесконечного цикла. <source lang="csharp"> while x < 10

  print x  

let x + 1 </source>

Определение функций[править]

Заголовок похож на С, но несколько типов могут быть возвращены одновременно. Завершается return оператором и только ключевым словом, если ничего не возвращается. <source lang="csharp"> int, text funcname(... arguments...)

   ...statements...

return a, b </source>

Сравнение кода Scriptol и PHP[править]

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

Код Scriptol: <source lang="cpp"> text x input "Y/N?", x

if x.lower() = "y"

   print "yes"

= "n"

   print "no"

else

   print "What?"

/if </source> Сгенерированный код PHP: <source lang="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";

} }

?> </source>

Примеры кода[править]

Пример № 1[править]

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

<source lang="csharp"> int main(int argsize, array arglist)

 print "Hello World\n"

return 0 main($argc, $argv) </source>

Пример № 2[править]

Число Фибоначчи <source lang="csharp"> 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 </source>

Пример № 3[править]

Внедрение кода Scriptol в HTML: <source lang=" javascript"> <html>

 <head>  </head>

<body>

<?sol

   print "code embedded inside html!"

?>

</body> </html> </source>

Пример № 4[править]

Слияние и отображение списков: <source lang="csharp"> listdemo = (1,2,3) + (4,5) subdemo = listdemo[1..3] scan subdemo

    print subdemo[]

/scan >>> should print: 2 3 4 </source>

Пример № 5[править]

«99 бутылок пива» демонстрирует простейшее применение циклов: <source lang="csharp"> 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 </source>

Ссылки[править]