Interpreted, dynamically typed, object-oriented programming language.
- 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 of uclang components is located in
uclang/doc
.
Short introduction to language syntax and features can be found in
uclang/doc/intro.md
.
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
Some examples are introduced in
uclang/doc/intro.md
.
The container generator cont
is needed
for compilation of the interpreter.
Enter build directory build
.
cd build
Process cmake source.
cmake ..
Build uclang.
make -j$(nproc)
Example scripts can be executed by following commands:
cd uclang/uclang_build
export LD_LIBRARY_PATH=$(pwd)
./uclang scripts/hello.ucl
...