Questions Concepts
GitHub icon

Monkey

Monkey - Programming language

< >

Monkey is a programming language created in 2011 by Anthony Diamond.

Source code:
git clone https://github.com/Regal-Internet-Brothers/webcc-monkey
#170on PLDB 12Years Old 254Repos

Monkey X is a high-level programming language designed for video game development for many different platforms, including desktop and laptop computers, mobile phones, tablets, and video game consoles. The language itself is an object-oriented dialect of BASIC, which the compiler translates into native source code for several target platforms. The resulting code is then compiled normally. Read more on Wikipedia...


Example from hello-world:
puts("Hello World")
Example from Linguist:
'Showcases use of Lambda functions and Generics. #Import "<std>" Using std.. Function Main() Local testStack := New Stack< MyObject > For Local n := 1 To 20 Local newItem := New MyObject newItem.depth = Rnd( 0, 100 ) testStack.Push( newItem ) Next testStack.Sort( Lambda:Int( x:MyObject,y:MyObject ) Return x.depth<=>y.depth End ) For Local n := Eachin testStack Print( n.depth ) Next End Struct MyObject Field depth := 0 End
Example from Wikipedia:
' The 'Player' class, as referenced previously (Placement does not matter): Class Player ' Declare all of our fields (Class-local variables): ' These two variables will act as our position on the screen. ' (Alternatively, an 'Array or third-party class could be used) Field x:Float, y:Float ' This will be a reference to an 'Image' object we'll specify. Field image:Image ' Constructor(s): ' Overloading 'New' mainly works the same way as constructors in other languages. ' Returning is generally not recommended for constructors. Method New(img:Image, x:Float=100, y:Float=100) ' Due to the arguments using the same names, 'Self' ' is required to resolve our fields' names: Self.image = img Self.x = x Self.y = y End ' Methods: ' This will be our main render-method for this object: Method Draw:Void() ' Draw the 'image' object to the screen using our 'x' and 'y' fields. DrawImage(image, x, y) ' Returning in a 'Void' function is not required. (Some still recommend it) Return End End

Language features

Feature Supported Token Example
MultiLine Comments
Binary Literals
' \%[10]+
Integers
' [0-9]+
Floats
' [0-9]+\.[0-9]*(?!\.)
Hexadecimals
' \$[0-9a-fA-Z]+
Strings "
"Hello world"
Print() Debugging puts
Comments
' A comment
Line Comments '
' A comment
Semantic Indentation X

View source

- Build the next great programming language · Search · Add Language · Features · Creators · Resources · About · Blog · Acknowledgements · Queries · Stats · Sponsor · Traffic · Traffic Today · Day 305 · feedback@pldb.com · Logout