Scriptol

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 16:07, 8 июня 2016.
Scriptol
Парадигма объектно-ориентированный
Спроектировано Denis Sureau
Лицензия Mozilla 1.1, Open source, BSD license.
Портал: http://www.scriptol.net/
Под влиянием
PHP, C++

Scriptol - (произносится skrɪptol) - универсальный язык программирования позволяющий заниматься веб-разработкой.

Обзор

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

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

Scriptol был создан в соответствии с семью правилами:

Правило 1: Программируйте, как вы думаете
Синтаксис языка соответствует типу мышления человека - объекты человеческих представлений формализованы простейшем образом.
Правило 2: Безопасность
Язык снижает риск появления ошибок. Он имеет четкий, простой, минимальный, и не запутанный синтаксис. Любая предпосылка к ошибке удаляется из языка.
Правило 3: Общие соглашения
Когда правила 1 и 2 не являются достаточными, чтобы определить язык, применяется это.
Язык хранит то, что знакомо для программистов. Основные прародители языка: C ++, PHP, HTML.
Правило 4: Объективность
Никакой элемент языка не обособляется и не является исключением. Каждый определяется семью правилами и является оптимальным выбором.
Правило 5: Нет узконаправленности
Конструкции языка не ориентированы на одну тенденцию, как ООП, например. Он построен с возможностью использовать цели, события, процедуры, правила, модели.
В языке есть объекты и действия. Любое выражение также может быть записано как событие. Объекты являются динамическими. Действия могут быть представлены как данные.
Правило 6: Мобильность
Язык будет работать на любой операционной системе или компьютере. Он не компилируется непосредственно в машинный код. В настоящее время компилируется в Php или C ++, MSIL для .NET.
Правило 7: Легкость обучения
Для легкого обучения, учебник имеет два уровня. Базовый уровень языка охватывает особенности классических скриптов. В общем же, язык выходит далеко за рамки.
Для простоты понимания, программист может писать ключевые слова на любом человеческом языке.

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

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

Особенности

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

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

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

  • встраивания кода в страницы HTML. Он будет работать на любом сервере. Использование PHP 4.
  • защиты кода путем распределения исполняемого файла.
  • легкой и быстрой разработки сценариев, благодаря синтаксису высокого уровня.
  • создания приложений и веб-приложений: 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

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 Fibonacci

 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 injection into HTML:

 <html>
  <head>  </head>
 <body> <?sol 
    print "code embedded inside html!"
 ?> </body>
 </html>

Пример № 4 Merging and printing lists

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

>>> should print: 2 3 4

Пример № 5 "99 Bottles of Beer"

демонстрирует простейшее применение циклов:

 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

Ссылки