Pico (programming language)

Pico (programming language)

:"See also Pico (disambiguation)."

Pico is a programming language developed at the PROG lab at the Vrije Universiteit Brussel. 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 static scope. var: value

Functions

Functions are first-class objects in Pico. They can be assigned to variables. For example a function with two parameters param1 and param2 can be defined as func(param1, param2): ...

Functions can be called with the following syntax: func(arg1, arg2)

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)

` http://www.paulgraham.com/accgen.html accgen(n): accfun(num): n + num

Implementations

Mac OS / Mac OS X

* [http://pico.vub.ac.be/downloads.html MacPico]
* [http://wilma.vub.ac.be/~pvdabeel/stuff/Xpico-Snaps/ XPico]

Windows

* [http://pico.vub.ac.be/downloads.html WinPico] "This version is buggy"
* [http://student.vub.ac.be/~nkaraogl/WinPico/ WinPico Stable]

Linux

* [http://dirk.rave.org/ TextPico for Linux]

Crossplatform

* [http://www.infogroep.be/sPico sPico for DrScheme]

External links

* [http://pico.vub.ac.be/ Pico Homepage]
* [http://prog.vub.ac.be/ PROG lab]
* [http://dinf.vub.ac.be/ Department of Computer Science at VUB]
* [http://www.vub.ac.be/ VUB]
* [http://www.infogroep.be/Pico The Infogroep Pico-page]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • Planner (programming language) — Planner (often seen in publications as PLANNER although it is not an acronym) is a programming language designed by Carl Hewitt at MIT, and first published in 1969. First, subsets such as Micro Planner and Pico Planner were implemented, and then… …   Wikipedia

  • Curly bracket programming language — Curly brace or bracket programming languages are those which use balanced brackets ({ and }, also known as squiggly brackets , brace brackets or simply braces ) to make blocks in their syntax or formal grammar, mainly due to being C influenced.… …   Wikipedia

  • Pico — may refer to: * pico , a prefix in the International System of Units (SI) denoting a factor of 10 12 * picodirectory, The creator of VectorVX 6.0.1 Technologies for Internet search indexing * Pico (image editor), an image editor developed at Bell …   Wikipedia

  • List of programming languages by category — Programming language lists Alphabetical Categorical Chronological Generational This is a list of programming languages grouped by category. Some languages are listed in multiple categories. Contents …   Wikipedia

  • List of programming languages — Programming language lists Alphabetical Categorical Chronological Generational The aim of this list of programming languages is to include all notable programming languages in existence, both those in current use and historical ones, in… …   Wikipedia

  • Generational list of programming languages — Here, a genealogy of programming languages is shown. Languages are categorized under the ancestor language with the strongest influence. Of course, any such categorization has a large arbitrary element, since programming languages often… …   Wikipedia

  • List of reflective programming languages and platforms — Programming languages and platforms that typically support reflection include dynamically typed languages such as Objective C and Smalltalk; scripting languages such as Perl, PHP, Python, VBScript, and JavaScript; and the Maude system of… …   Wikipedia

  • Indent style — In computer programming, an indent style is a convention governing the indentation of blocks of code to convey the program s structure. This article largely addresses the C programming language and its descendants, but can be (and frequently is)… …   Wikipedia

  • Meta-circular evaluator — A meta circular evaluator is a special case of a self interpreter in which the existing facilities of the parent interpreter are directly applied to the source code being interpreted, without any need for additional implementation. Meta circular… …   Wikipedia

  • Digital darkroom — is the hardware, software and techniques used in digital photography that replace the darkroom equivalents, such as enlarging, cropping, dodging and burning, as well as processes that don t have a film equivalent. All photographs benefit from… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”