RosettaCodeData/Lang/Arturo/00-LANG.txt
2025-02-27 18:35:13 -05:00

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}}