PLDB
Languages Features Calendar About Lists Add Language
GitHub icon

Spin

Spin

Spin is a programming language created in 2006.

The multicore Propeller microcontroller opens up a new level of invention possibilities for students. Programming it in its native high-level language, Spin, makes optimal use of this unique and powerful multicore microcontroller. Spin's design was inspired by great attributes of three other languages, Delphi, C, and Python, and by envisioning new solutions to common programming problems. Like Python, Spin uses indentation whitespace, rather than curly braces or keywords, to delimit blocks.

#904on PLDB 16Years Old 200.0Users

Example code from Linguist:

ο»Ώ''**************************************** ''* Debug_Lcd v1.2 * ''* Authors: Jon Williams, Jeff Martin * ''* Copyright (c) 2006 Parallax, Inc. * ''* See end of file for terms of use. * ''**************************************** '' '' Debugging wrapper for Serial_Lcd object '' '' v1.2 - March 26, 2008 - Updated by Jeff Martin to conform to Propeller object initialization standards. '' v1.1 - April 29, 2006 - Updated by Jon Williams for consistency. '' OBJ lcd : "serial_lcd" ' driver for Parallax Serial LCD num : "simple_numbers" ' number to string conversion PUB init(pin, baud, lines) : okay '' Initializes serial LCD object '' -- returns true if all parameters okay okay := lcd.init(pin, baud, lines) PUB finalize '' Finalizes lcd object -- frees the pin (floats) lcd.finalize PUB putc(txbyte) '' Send a byte to the terminal lcd.putc(txbyte) PUB str(strAddr) '' Print a zero-terminated string lcd.str(strAddr) PUB dec(value) '' Print a signed decimal number lcd.str(num.dec(value)) PUB decf(value, width) '' Prints signed decimal value in space-padded, fixed-width field lcd.str(num.decf(value, width)) PUB decx(value, digits) '' Prints zero-padded, signed-decimal string '' -- if value is negative, field width is digits+1 lcd.str(num.decx(value, digits)) PUB hex(value, digits) '' Print a hexadecimal number lcd.str(num.hex(value, digits)) PUB ihex(value, digits) '' Print an indicated hexadecimal number lcd.str(num.ihex(value, digits)) PUB bin(value, digits) '' Print a binary number lcd.str(num.bin(value, digits)) PUB ibin(value, digits) '' Print an indicated (%) binary number lcd.str(num.ibin(value, digits)) PUB cls '' Clears LCD and moves cursor to home (0, 0) position lcd.cls PUB home '' Moves cursor to 0, 0 lcd.home PUB gotoxy(col, line) '' Moves cursor to col/line lcd.gotoxy(col, line) PUB clrln(line) '' Clears line lcd.clrln(line) PUB cursor(type) '' Selects cursor type '' 0 : cursor off, blink off '' 1 : cursor off, blink on '' 2 : cursor on, blink off '' 3 : cursor on, blink on lcd.cursor(type) PUB display(status) '' Controls display visibility; use display(false) to hide contents without clearing if status lcd.displayOn else lcd.displayOff PUB custom(char, chrDataAddr) '' Installs custom character map '' -- chrDataAddr is address of 8-byte character definition array lcd.custom(char, chrDataAddr) PUB backLight(status) '' Enable (true) or disable (false) LCD backlight '' -- affects only backlit models lcd.backLight(status) {{ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ TERMS OF USE: MIT License β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation β”‚ β”‚files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, β”‚ β”‚modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Softwareβ”‚ β”‚is furnished to do so, subject to the following conditions: β”‚ β”‚ β”‚ β”‚The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.β”‚ β”‚ β”‚ β”‚THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE β”‚ β”‚WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR β”‚ β”‚COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, β”‚ β”‚ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ }}

Language features

Feature Supported Example Token
Booleans βœ“ true false
Comments βœ“
' A comment
Line Comments βœ“
' A comment
'
Semantic Indentation βœ“

Article source

PLDB - Build the next great programming language. v5.0.0 - Acknowledgements Β· Email Β· GitHub