Project

General

Profile

What is Scol » History » Version 2

arkeon, 06/02/2014 06:20 PM

1 1 iri
h1. What is Scol ?
2
3
Scol is a *free*, *fonctionnal*, *high level*, *interpreted*, *polymorphic* and *asynchronous language*. Its typing is mainly static and done by inference of type.
4
5
Scol is under development, it should be multiplatform ultimately. Like Java or Python, Scol runs in a virtual machine (VM) and each Scol application runs in a child virtual machine. A VM can communicate with another VM. A full VM takes 15 à 20 MB in memory.
6
7
Scol has two 3d engine. The legacy engine, very old, is not used to the new applications. The second, newer, is totally based on "Ogre3d":http://www.ogre3d.org. *It is much more powerful and has a much better rendering*.
8
Today, Scol is used rather in the 3d real time, interactive and multi-user application. Applications can be _off_- or _on_-line.
9
10
However, multimedia, graphics, database, ... libraries are in the standard release : other applications are possibles !
11
12
h2. Examples :
13
14
* virtual 3d worlds
15
* showcases (companies, products, ...)
16
* galleries for artists
17
* universe edutainment
18
* simulations
19
* e-trainings
20
* visioconference
21
* serious games
22
* editors (for others applications / projects)
23
* few ecommerce applications
24
* and more
25
26
h2. More specifically
27
28
* *Free* : no royalties are required to install, use, study or contribute.
29 2 arkeon
Scol is under "Scol license (BSD-modified)":http://redmine.scolring.org/attachments/download/69/license.pdf for the historical part and under GNU / LGPL 2 for the newer part.
30 1 iri
31
* *Fonctional* : Scol is influenced by OCaml too. All is function and all instructions must return a single value (never "void" or more). Variables and other objects are internally considered as functions.
32
However, the side effects are importants. Recursive functions and objects are commonly used.
33
34
* *High level* : OO and GC
35
36
* *Interpreted* / script : Scol launches a new virtual machine with a minimal environment (with all APIs availables). Next, it reads and loads each package in the memory, checks the typing and product a byte-code. Finally, this last is executed.
37
38
* *Asynchronous* : Scol uses mostly the asynchronous method in the most of cases : networks, graphics, ...
39
40
* *Polymorphic* : Certain functions do not impose any type conditions on certain arguments, or certain parts of certain arguments.
41
42
* *Typing* : in Scol, types are simply there to help the developer: the types are only used when compiling. Thereafter, when you run your program, they are no longer used since the program has already been proved to be correctly typed. The typing is done by inference of type : this means that the compiler calculates the type of your functions itself; you will not usually have to specify it.
43
44
* Scol is written in C and C++ with few parts in asm.