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

Scriptol
Класс языка язык программирования
Появился в 12 октября 2001
Автор Denis Sureau
Выпуск Scriptol 3 (2016)
Система типов статическая и динамическая
Испытал влияние PHP, C++
Лицензия Mozilla 1.1, Open source, BSD license.
Сайт 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

править
if a
     = 10: print "equal"
     < 10: print "less"
     else
        print "more"
/if

В то время как структура имеет несколько форм, 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

Ссылки

править