43 lines
No EOL
1.5 KiB
Text
43 lines
No EOL
1.5 KiB
Text
{{language|Arturo
|
|
|exec=interpreted
|
|
|strength=strong
|
|
|checking=dynamic
|
|
|express=implicit
|
|
|site=https://arturo-lang.io
|
|
|tags=arturo
|
|
|gc=yes}}
|
|
Arturo is an independently-developed, modern programming language, vaguely related to various other ones - including but not limited to [[Logo]], [[Rebol]], [[Forth]], [[Ruby]], [[Haskell]], [[D]], [[SmallTalk]], [[Tcl]] and [[Lisp]].
|
|
|
|
The language has been designed following some very simple and straightforward principles:
|
|
|
|
* Code is just a list of words and symbols
|
|
* Words and symbols within a block are interpreted - when needed - according to the context
|
|
* No reserved words or keywords - look for them as hard as you can; there are absolutely none
|
|
|
|
<syntaxhighlight lang="arturo">
|
|
factorial: function [n][
|
|
switch n > 0 -> n * factorial n-1
|
|
-> 1
|
|
]
|
|
|
|
loop 1..19 [x]->
|
|
print ["Factorial of" x "=" factorial x]
|
|
</syntaxhighlight>
|
|
|
|
===Implementation===
|
|
The main compiler is implemented in [[Nim]]/[[C]] as a Bytecode interpreter / Stack-based VM and should run in most architectures.
|
|
|
|
The main goals are: expressiveness, brevity, performance and portability. (With that exact order)
|
|
|
|
===License===
|
|
Arturo is released under the [[MIT/X11 License]].
|
|
|
|
===Todo===
|
|
[[Tasks not implemented in Arturo]]
|
|
|
|
{{language programming paradigm|Concatenative}}
|
|
{{language programming paradigm|Declarative}}
|
|
{{language programming paradigm|Dynamic}}
|
|
{{language programming paradigm|Functional}}
|
|
{{language programming paradigm|Imperative}}
|
|
{{language programming paradigm|Reflective}} |