uclang
uclang copied to clipboard
Interpreted, dynamically typed, object-oriented programming language
uclang - programming language
Interpreted, dynamically typed, object-oriented programming language.
Language features
- Language syntax is derived from C/C++ programming languages.
- Some syntax is derived from Java programming language.
- Strong object oriented approach.
- Everything is an object.
- No global functions at all.
- Almost all actions are performed by execution of methods.
- Support for inheritance.
- Support for exceptions.
- Support for native threads, no GIL (Global Interpreter Lock).
- Module system designed for straightforward creation of binary modules in C/C++.
- A language built in data types are implemented as binary module.
- Lightweight interpreter, deployable on embedded devices.
Documentation
Documentation of uclang components is located in
uclang/doc.
Short introduction to language syntax and features can be found in
uclang/doc/intro.md.
Language modules
A set of modules was created in order to use uclang in production.
Implementation of these modules is located in
uclang/mods
Some of implemented modules are:
base,
sys,
inotify,
time,
lang,
pack,
parser,
math,
psql,
sqlite,
http,
websocket,
curl,
ftp,
ssh2,
gcrypt,
iconv,
jit,
fann,
av,
ao,
mpg,
portaudio,
gstreamer,
gtk,
image,
glut,
glew,
gl,
ftgl,
vg,
imxegl,
snmp,
node,
containers,
algorithms,
binbits,
graph,
json,
xml,
python,
v8,
lua,
mono,
perl,
ruby,
prolog,
zlib,
zip,
snappy,
fuse,
android
Examples
Some examples are introduced in
uclang/doc/intro.md.
Building interpreter
The container generator cont is needed
for compilation of the interpreter.
Linux compilation
Enter build directory build.
cd build
Process cmake source.
cmake ..
Build uclang.
make -j$(nproc)
Linux example scripts
Example scripts can be executed by following commands:
cd uclang/uclang_build
export LD_LIBRARY_PATH=$(pwd)
./uclang scripts/hello.ucl
...