ALA7 programming language
Ala7 was invented to face main challenges in modern software industry:programmer productivity, code quality and performance.
Ala7 achieves these goals through:
- static and dynamic types
- list dynamic type
- easy GUI programming
- parallel, simd and multicore
- modern syntax to have compact and readable code
- fast compiler
- new memory manager
Language syntax
Here is code example:
list toArgumentExprList(list text)= l=[];ob=0;s="";al=[] le=len(text) if le=0 : return l else for i=0 to le-1 s=text[i] if s="," and ob=0 e=toExpr(al,1) if e.kind:append(l,e) al=[] e=toExpr(al,1) if e.kind:append(l,e) return l
Types
All variables are typed, however we have all type to store all types.
Function parameters are also typed and late binding is possible.
class Instr text=[str] class Type name="" all subtype Type toType(str text)= Type type return type proc parseInstr (Instr ins ) Type type le=len(ins.text) if le=0:return elif le>=2 s0=ins.text[0];s1=ins.text[1] if le >2 and s1="=" if le=5 and ins.text[2]="[" and ins.text[4]="]" s3=ins.text[3];type1=toType(s3) if type1.name !="" type.name="list";type.subtype=type1
GUI
Programming win32 GUI applications is easy and intuitive.
The features that make it possible: bind instruction to join gui event and a handler,
for gui classes (Window, Control,..) Microsoft Windows specific tasks are handled by runtime,
ready-made classes for standard windows controls, convenient procedures in gui module,
easy calls to win32 API procedures
Parallel programming:multicore and simd
Parallel:multicore and simd programming is built into the language.
For loops with parallel keyword are automatically performed on all available processor cores.
Language also suports simd operations in for simd loops.
for e in l parallel # multicore loop p1(e) for k=1 to end simd #simd loop using SEE matrix[row,k]=matrix1[row,k]*x
The following list shortly describes the new language
- automatic object reference counting
- fast memory manager
- modern syntax
- fast compiler
- string and list operations
- polymorphic lists, list iteration (for e in l)
- built in support for parallel programming
- both typed and untyped variables
- easy gui programming
- data separated from stack
- easy C language integration
- inline assembler
- automatic variable initialization
Commercial Ala7 software is available from Altcore website.
From this page you can download a trial version of an integrated development environment (editor, compiler, debugger) working on windows platform (XP and Vista). Maximum edited file size is 30k and resulted exe file size is restricted to 500KB. Multicore support limited to two cores.
Contact: mb@altcore.pl