Jump to content

Category:ArkScript

From Rosetta Code
(Redirected from ArkScript)
Language
ArkScript
This programming language may be used to instruct a computer to perform a task.
Official website
Execution method: Compiled (bytecode)
Garbage collected: No
Parameter passing methods: By value
Type strength: Strong
Type checking: Dynamic
Lang tag(s): arkscript
See Also:


Listed below are all of the tasks on Rosetta Code which have been solved using ArkScript.

ArkScript is a small, fast, functional and scripting language for C++ projects, inspired by Lua, Lisp, and Python.

The language has been designed to be concise, with only 9 keywords, and two rules to parse it:

  1. the first node after an opening paren ( is a "function", the following nodes are arguments
  2. the only exception to the previous rule is when defining the argument list of a function
(let foo 5)
(let bar "hello world!")

(let egg (fun (a b c)
  (+ a (* b c))))

(print (egg 1 foo bar))

The language is also

  • small: the core fit under 8000 lines of code ; also small in terms of keywords (only 9)
  • a scripting language: very easy to embed it in your projects. Registering your own functions in the language is made easy
  • portable: a unique bytecode which can be run everywhere the virtual machine is
  • a functional language: every parameter is passed by value, everything is immutable unless specified
  • powerful: provides closures and explicit capture
  • promoting functionalities before performances: expressiveness often brings more productivity, though performances aren't left behind
  • a Lisp inspired language, with fewer parentheses: [...] is expanded to (list ...) and {} to (begin ...)
  • extensible: supports C++ module to use it in the language, adding functionalities


Implementation

The compiler and VM are implemented in C++ 20. For more details, see ArkScript GitHub.

License

ArkScript is released under the Mozilla Public License 2.0.

Todo

Tasks not implemented in ArkScript

Cookies help us deliver our services. By using our services, you agree to our use of cookies.