Cooperscript

Cooperscript

 

Cooperscript backup project can be found here.

Cooperscript (implemented in Java) is an open source Python dialect in which all operators precede their operands, and parentheses are used for all grouping (except string literals, which are delimited with double quotes, also statements are separated by semicolons). Cooperscript source files have a .COOP extension. Coopertags files (the sister language of Cooperscript, a text markup language) have a .CPTG extension. Cooperscript boasts an ultra-simple Lisp-like syntax unlike all other languages; target platforms include mobile and desktop. COOPERScript: Compact Object Oriented Programming Environment and Runtime System.

Special Characters

  • Core:
    • ()  grouping
    • -  word separator
    • ;  end of stmt.
    • :  dot operator
    • "  string delimiter
    • \  escape char.
  • Operators:
    • + - * / %
    • = < >
    • & | ^ ~ ! ?
  • Other:
    • #  comment
    • {}  block comment
    • _  used in identifiers
    • $  string prefix char.

Differences from Python

  • Parentheses, not whitespace
  • Operators come before their operands
  • Integration with Coopertags
  • Information hiding (public/private)
  • Single, not multiple inheritance
  • Adds interfaces ("hedron" defs.)
  • Drops iterators and generators
  • Adds lambdas
  • Adds quote and list-compile functions, treating code as data
  • Adds cons, car and cdr functionality

Coopertags

Coopertags is a simplified markup language used to replace HTML. Mock JSON files using Coopertags syntax have a .CPJS extension, and include no commas. Instead of myid: val, use [myid: val]. Instead of [1, 2, 3], use [arr: [: 1][: 2][: 3]]. Arbitrary Coopertags code can be embedded in the Cooperscript echo statement. Coopertags syntax, where asterisk (*) means occurs zero or more times, is defined as follows:

  • Tags:
    • [tag]
    • [tag (fld val)*: body]
    • [tag (fld val)*| body |tag]
  • Body:
    • text
    • [(fld val)*: text]*
  • Cooperscript call:
    • [expr: <expr>]
    • [exec: <stmt>... ]
    • [coop: <path>]
[ Back to Top ]