[Nolang]

Nolang is a programming language.
Design priciple of Nolang is to make C/C++ alike programming language with familiar syntax, which is even easier to adopt.
Top of that Nolang will add features you could only dream about on C/C++.

Features

Current status

Currently Nolang is under development and first public version was released 2010/10/08.
REMARK! Nolang is still under development and real usage is discouraged. These releases are ment just to be preview and to get feedback, improvements and bug fixes.

Releases

Please see releases page.

Git

Git repository has always the lastest code. Clone Git repository using:
git clone http://nolang.com/git/nolang.git

Repositories

REMARK! Repostiories are currently out of date!
Built binaries are available for different Linux distributions. Please see all repositories and raw repository structureas at: http://nolang.com/repos/.

Patches and bugs

Patches can be sent to: .
Bug reports can be sent to: .
Any feedback can be sent to: .

Code examples

Some code examples.

Hello World!

First the traditional "Hello World" application!

helloworld.nolang

main()
{
    print "Hello, World!\n";
}
	

Output

Hello, World!

Extended Hello World!

hello2.nolang

Download hello2.nolang.

Output

Extended Hello, World 42!
First value: 4
Whole array: 4 5 6 
	

More complex test

test2.nolang

Download test2.nolang.

Output

Extended Hello, World 42!
Second value: 5
Whole array: 4 5 6 42 
Second value: 45
Whole array: 123 45 

Advanced test

test7.nolang

Download test7.nolang.

Output

Extended Hello, World 42!
Test::dump()
Second value: 5
Whole array: 4 5 6 42 
Array size: 4
Test::dump()
Second value: 45
Whole array: 123 45 
Array size: 2
Int size: 4
get(1): 45
Test::dump()
Second value: 270
Whole array: 246 270 
get(1): 270
2==2
Array data values are: 1 3 
Array sdata values are: Test 
Before noref: 4 6 8 9 4 
After noref: 4 6 8 9 4 
After ref: 4 6 8 9 4 5 
Got 5
Got 42
Other::dump()
Second value: 5
Whole array: 4 5 6 
Otherval: 5
Other::dump()
Second value: 5
Whole array: 4 5 6 12 
Otherval: 5

Parallel test

testparallel.nolang

Download testparallel.nolang.
This example shows the parallel call initiated with prefix "@". Parallel call will create a separate thread/process for the call execute multiple calls in parallel. Because of multiple calls running in parallel the output of this example may vary a lot. Only assignments or return values from the calls are guaranteed to be handled in proper order meanign that "first parallel" and "second parallel" should always come in proper order.

Output

Other::dump()
Second value: 5
Whole array: 4 5 6 
Otherval: 5
The result we got from first parallel is 4
Other::dump()
Second value: 5
Whole array: 4 5 6 12 
Otherval: 5
The result we got from second parallel is 5
Another run.
The result we got from first parallel is 4
Other::dump()
Second value: 5
Whole array: 4 5 6 12 
Otherval: 5
The result we got from second parallel is 5
Other::dump()
Second value: 5
Whole array: 4 5 6 
Otherval: 5

More examples

More examples.

License

Nolang is released under an Open source license. The license is BSD compatible.
Copyright (c) 2010-2012 Nolang project All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


©2010-2012 Nolang project
Tapir picture licensed under GNU FDL 1.2.