Scriptol, language for Web 2.0 scripts
The Scriptol language created in 2001 by Denis Sureau was defined according to seven rules: simplicity, security, conformance
to standards, objectivity, multiple orientations, portability, easy
The scriptol code is either interpreted or compiled in PHP or C++, a scriptol program may be built as a binary executable.
Control structures are different and more powerful than in classical languages, allowing pattern-matching and automata (DFA). Security is one main goal of the language and variables are typed.
It is an universal language for making dynamic web pages, scripting, prototyping or GUI based applications. It integrates XML either in the source or from a loaded file.
Several innovations in Scriptol have been adopted by other languages created since 2001.
You may use Scriptol:
- For web pages programming: Scriptol may be compiled into PHP, thus it is portable. The compiler detects errors before running the program.
- For script writing: This a clear and powerful language, very intuitive.
- For prototyping: test a scriptol program with the interpreter and produce a C++ source for inclusion into a large project.
- For faster programming and source protection: use the interpreter to debug the program, then distribute a binary executable.
- It may be used along with a RAD (Rapid Application Development) tool as C++ Builder or Visual Studio.
- It is a front-end to XML parsers.
Features of Scriptol
- Universal: suited for applications, scripts or web pages.
- Typed variables.
- Object oriented. Even primitives and constants have methods.
- XML oriented: Xml is a data structure of the language.
- Control structures are safe while .. let, for .. in, etc...
- Pattern-matching and automata easy with the do..case structure.
- Rules are easily implemented thanks to the composite if structure.
- Multiple assignments. A function can return several values.
- Indexed or associative arrays.
- Can use APIs of Php, Java or C++.
Statements are terminated by end of line.
Xml-like terminators: /if, /while, etc...
Each operator has only one usage, not several acccording the context as in C.
Scalar types are those of the real life: text, number, real, etc...
Compound assignments have the form:
x + 1 // means for: 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
You can mix different types of comparisons and compare different types of data from one test to another.
if a = 10: print "equal" < 10: print "less" else print "more" /if
The while structure has several form and the let terminator protects against infinite loops.
while x < 10 print x /while // infinite loop
while x < 10 print x let x + 1
The header is similar to that of C but several types may be returned together. The terminator is the return statement, the keyword only if the function returns nothing.
int, text funcname(... arguments...) ...statements... return a, b
Simple print command:
The print command sends a newline after the text. The echo command does not.
print "Hello world!"
Two lists are added and the contents of a sub-array parsed. Scan can parse multiple arrays at once.
listdemo = (1,2,3) + (4,5) subdemo = listdemo[1..3] scan subdemo print subdemo /scan
Should print: 2 3 4.
Embedding code into HTML page:
The scriptol code is converted to PHP by the solp compiler.
<?sol print "code embedded inside html"; ?>