The attributes, we can describe the language with are:
-
simple
-
unambiguous
-
useful
-
easy to learn
-
easy transition to more common languages
-
all the main concepts of programming languages
-
of course: turing complete
-
no object-oriented-programming
-
no null
The goal of this project is to create a language which can be an introduction language for programmers without compensating on the might of the language. One important aspect is that this language has as less ambiguity as possible. The goal is that when one developer looks at some unknown code, that there won’t be questions like "What happens when I access this?", "What happens if I shadow this variable there", etc. Static typing ensures a lot of error handling before the runtime. Moreover, the error handling has to be specific and useful, so people don’t have to search half of the programming time about the error on (you probably guessed it) StackOverflow.
-
No shadowing
-
Structs
-
complex data structures
-
read from cli
maybe more?
-
file descriptors
-
sockets
-
static typing
-
primitive data types
-
declare and call functions
-
while-loop
-
if, elif, else statement
-
variable assignment, variable declaration
-
print to stdout (write(…))
-
Make more native functions!
Put them into the native_functions.py class and make sure they have the right functions. Take the previous native functions as an example.
-
Submit bugs (and even fix them?)!
Submit bugs with the issue tags and maybe fix them by submitting a pull request.