Pico Programming Language

Pico is a programming language developed at the PROG lab at the Dutch-speaking Free University of Brussels (Vrije Universiteit Brussel, VUB). The language was created to introduce the essentials of programming to non computer science students. Pico can be seen as an effort to generate a palatable and enjoyable language for people who do not want to study hard for the elegance and power of a language. They have done it by adapting Scheme's semantics. While designing Pico, the PROG lab was inspired by the Abelson and Sussman's book "Structure and Interpretation of Computer Programs". Furthermore, they were influenced by the teaching of programming at high school or academic level. Pico should be interpreted as 'small', the idea was to create a small language for educational purposes.

Language Elements

Comments

Comments are surrounded by a backquote (`).

Variables

Variables are dynamically typed, pico uses a static scope.
  var: value 

Functions

Functions are first-class objects in Pico. They can be assigned to variables. For example a function with two arguments arg1 and arg2 can be defined as
  func(arg1, arg2): ... 
Functions can be called with the following syntax:
  func(value1, value2) 

Operators

Operators can be used as prefix or infix in Pico:
  +(5, 2)  5 + 2 

Data Types

Pico has the following types: string, integer, real and tables. It does not have a native char type, so users should resort to size 1 strings. Tables are compound datastructures that may contain any of the regular datatypes. Boolean types are represented by functions, in the same way as lambda calculus does.

Control Structures

Conditional Evaluation

Only the usual if statement is included
  if(condition, then, else) 

Code Snippets

  display('Hello World', eoln) 
  max(a, b):   if(a < b, b, a) 

Implementations

Mac OS / Mac OS X

Windows

Linux

Crossplatform

External links

 

<< PreviousWord BrowserNext >>
the cluefinders
magnesium in biology
djivan gasparyan
boa constrictor
ppe
polish alphabet
lumbricus
membranipora
kadesh
pete townsend
brood (honeybee)
varsity letter
membranipora membranacea
abaza
grosch's law
buffer gap
megadeath
digital waveguide synthesis
ernst reijseger
annus horribilis
lone pair
culture of liechtenstein
king u of goryeo
pieter aertsen
ottorino respighi
william etty
eisenstein
rhodes (disambiguation)
metal gear
rensselaer
queenborough
queen bee
education in japan
education in france
asian elephant
list of news web sites
haywood nelson
deposit feeder
forensic anthropology
human remains
equivalence of categories
bertrand of toulouse
fluid feeder
raphael cartoons