Jump to content
Wikipedia The Free Encyclopedia

Pico (programming language)

From Wikipedia, the free encyclopedia
For other uses, see Pico (disambiguation).
This article has multiple issues. Please help improve it or discuss these issues on the talk page . (Learn how and when to remove these messages)
The topic of this article may not meet Wikipedia's general notability guideline . Please help to demonstrate the notability of the topic by citing reliable secondary sources that are independent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to be merged, redirected, or deleted.
Find sources: "Pico" programming language – news · newspapers · books · scholar · JSTOR
(July 2025) (Learn how and when to remove this message)
This article needs additional citations for verification . Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Pico" programming language – news · newspapers · books · scholar · JSTOR
(December 2023) (Learn how and when to remove this message)
This article relies largely or entirely on a single source . Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.
Find sources: "Pico" programming language – news · newspapers · books · scholar · JSTOR
(March 2024)
This article only references primary sources. Please improve this article by adding secondary or tertiary sources.
Find sources: "Pico" programming language – news · newspapers · books · scholar · JSTOR
(March 2024) (Learn how and when to remove this message)
(Learn how and when to remove this message)
Pico
Paradigms Reflective, procedural
FamilyLisp
Designed by Theo D'Hondt
Wolfgang De Meuter
Developer Vrije Universiteit Brussel
First appeared1995; 30 years ago (1995)
Stable release
2.0 / 2007; 18 years ago (2007)
Implementation languageScheme
Platform IA-32, x86-64
OS Mac OS 9, macOS; LinuxBSD, Windows
Websitepico.vub.ac.be
Influenced by
Scheme, Smalltalk

Pico is a programming language developed at the Software Languages Lab at Vrije Universiteit Brussel, intended to be simple, powerful, extensible, and easy to read.[1] 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 Software Languages 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

[edit ]

De Meuter, Gonzalez, and D'Hondt describe the Pico syntax as being "two-tiered."[1] The first layer consists of simple rules for writing small programs in a functional programming style.

Comments

[edit ]

Comments are surrounded by backquotes ("`").

Variables

[edit ]

Variables are dynamically typed; Pico uses static scope.

var: value

Functions

[edit ]

Functions, like everything in Pico, are first-class objects, meaning they can be assigned to variables and passed to and returned from functions. Also, there are no anonymous functions in Pico; functions must have a name.[1] For example, a function, func, 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

[edit ]

Operators can be used as prefix or infix in Pico:

+(5, 2)
5 + 2

Data types

[edit ]

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 data structures that may contain any of the regular data types.

Boolean types are represented by functions (as in lambda calculus).

Control structures

[edit ]

Conditional evaluation

[edit ]

Only the usual if statement is included

if(condition, then, else)

Code snippets

[edit ]
display('Hello World', eoln)
max(a, b):
 if(a < b, b, a)
`http://www.paulgraham.com/accgen.html `
foo(n): fun(i): n := n+i

Implementations

[edit ]

Mac OS, Mac OS X

[edit ]

Windows

[edit ]

Linux

[edit ]

Cross-platform

[edit ]

References

[edit ]
  1. ^ a b c D'Hondt, Theo; Gonzalez, Sebastian; De Meuter, Wolfgang (1 January 1999). "The design and rationale behind pico". Programming Technology Lab, Department of Computer Science, Vrije Universiteit Brussel. Retrieved 3 December 2023.
[edit ]


Features
Object systems
Implementations
Standardized
Common
Lisp
Scheme
ISLISP
Unstandardized
Logo
POP
Operating system
Hardware
Community
of practice
Technical standards
Education
Books
Curriculum
Organizations
Business
Education
People
Common Lisp
Scheme
Logo
POP

AltStyle によって変換されたページ (->オリジナル) /