Frequently Asked Questions

This FAQ is about the Scriptol Interpreter and the programming language.
You can ask a question on the new forum.
 
 

My program doesn't work

I have a complete configuration with the Apache server, but my scriptol php program displays an error. Here is the code:
<sol
   include("button.php");
?>
When you are used with legacy programming language you may encounter such problems. In fact, include is a keyword in Scriptol, you should write either:
require("button.php");
or include_once("button.php").
 

Can I use OpenGL and Glue with Scriptol

Not tested yet with the interpreter, but this will be possible when finished.
 

Redeclaration: every OO language should use local namespace

If you prevent users from reusing short names for block level small-scope usage variables, you run the risk of creating a slew of identifiers. One single omission of an initialization, followed by a use of a variable declared in an outer scope, in an inner scope results in violation of the block sentinel.
for(int i=0;i<5;i++) { }
int i;
while(i < 5) {
    // do something here
}
Agreed this is a contrived example, however, the point is clear. Ordinarily you could count on "i" being uninitialized and an error or warning be reported. If the declaration of "i" remained within the for block. If it did not, as it used to be in the older C++ standard, this led to side-effects of the loop counter being present in later code, which did not generated a "non-initialized" error/warning. Every OO language implement block-level local namespaces. Redeclarations are not CONFUSING as much as they are CLEARLY indicating that they user has wanted to use a name that exists outside without affecting it.

Here are two examples to show what Scriptol allows or not:
Example 1 (NOT ALLOWED)
int i
scan a
  int i = 5     // bad
  print i * a[]
/scan


Example 2 (ALLOWED)
int i
scan a
  int j = 5
  print j * a[]
/scan
scan b
  int j = 50
  print j * b[]
/scan


 Scriptol doesn"t allow reusing an identifier for a different thing in an inner block. It allows to reuse a name in successive scopes. This suppresses a source of confusing and also is required for future control structures in the language (actions).
 Take note also that variables are always initialized (in the generated target code) in Scriptol.

 

What runtime files are required to distribute my application?

What I think it's like this: very good language, it can build .exe, it can provide GUI features... so I can write some pretty cool applications with it (not related to websites).
But then, how I'll distribute my application? What runtime files are required?
For my kind of work is not acceptable to say to user "You need to install and configure PHP first", so this is why I'm interested to use GTK (or .NET in the future).
No runtime is required but the gcms.dll library. I'll suppress it in the future.
It will be possible also to extend the language with other libraries.
 

Using Visual Studio

Can Scriptol work with Visual Studio 6.0 and Visual Studio.net ?

Scriptol can be integrated into the IDE for compiling Scriptol programs as with C++ Builder (version pro).
 

When will be the Interpreter finished?

I expect the first release condidate in September 2006 January 2007.
 

Can I call the constructor of the base class?

I inherit the class Car of the class Vehicle, for example. Can I call the constructor of Vehicle, from the constructor of Car? I do that in Java.
Java has the "super" keyword to call the constructor of a class from the constructor of an inherited class.
There is no equivalent in Scriptol. If you call the constructor of the base class, this create a new instance of the base class. But you can assign the attributes of the base class from the constructor of the inherited class.
 

Will the interpreter use XUL?

XUL est a graphical user interface using XML to draw the screen. It will be used by the interpreter. I don't know for now if il will be possible to integrate the Scriptol code into the code of the interface, to replace XPCom, but this may be faisable.
 

Question, problem, comment? Mail to:

faq@scriptol.net