Line 20: Line 20:
*[[Array]]s, which are lists of elements
*[[Array]]s, which are lists of elements
*[[OOP|Objects]], which are dictionaries of key-value pairs.
*[[OOP|Objects]], which are dictionaries of key-value pairs.
*[[Function]]s, which are pieces of code which can be executed with [[Argument]]s.
*[[Functions]], which are pieces of code which can be executed with [[Argument]]s.
==Programming languages relevant to Scratch==
==Programming languages relevant to Scratch==

Revision as of 06:37, 30 April 2013

This article is about programming languages in general. For the project type, see Programming Language (Project Type).

A programming language is a set of rules and functions that let us use a computer. Programming languages are designed to make it easy for humans to write complex instructions. They function a lot like human languages: they have explicit grammars and a primitive vocabulary. Scratch is a programming language.

Syntax and grammar

Programming languages are generally either interpreted or compiled, which means they are either executed directly, or translated into another language. For example, C and Java are compiled while Python and JavaScript are interpreted.

Note Note: Java and JavaScript are two completely different programming languages with no relation whatsoever in grammar, semantics, creation, or uses.

Languages usually consist of the following parts:

  • A parser: this converts a string of text into a data structure (Array or Object) that can easily be interpreted.
  • An interpreter or compiler: this "understands" the data structure and interprets it.
  • Primitives: these are built-in functions and values.

Languages usually have various primitive data types which can be expanded with OOP:

  • Numbers, which are parsed as numbers
    • Some languages consider integers, floating-point numbers, and doubles to be different data types.
  • Strings, which are parsed as text
  • Arrays, which are lists of elements
  • Objects, which are dictionaries of key-value pairs.
  • Functions, which are pieces of code which can be executed with Arguments.

Programming languages relevant to Scratch


Squeak was used to program the 1.x series of Scratch. It is a simple language designed to be human-readable and concise. See Squeak Tutorial for a simple introduction.


Adobe's Flash was used to program Scratch 2.0. It is programmed in ActionScript, which was based on ECMAScript.


Python is a simple interpreted scripting language that is used in the Scratch 2.0 back-end (server-side code). The forums run on DjangoBB, a Python library. Python is also used in many Scratch add-ons, including Kurt.


PHP is another server-side language which was used to build the Scratch 1.x server system (ScratchR).


JavaScript is a scripting language based on ECMAScript. It is used to add interactivity to webpages. Snap! is written in JavaScript, as is the front-end of the Scratch website. It is used with HTML and CSS.

Cookies help us deliver our services. By using our services, you agree to our use of cookies.