Scratch Programming Language

From the Scratch Wiki — made by Scratchers, for Scratchers.
Jump to: navigation, search

This article analyzes Scratch as the programming language. Though Scratch is primarily a children's programming language, it has a surprising number of programming concepts built into it.

Features

  • Scratch is turing complete.
  • It is primarily event-driven.
  • Whether or not it is OOP is debated in the community.
  • Scratch has variables and lists for data storage, and arrays can be replicated.
  • Scratch is not atomic in repetition, though that can be simulated with Single Frame programming.
  • Scratch 1.4 does not support procedures, and recursion. However, Scratch 2.0 will support these features.
  • Scratch has many simplified casting rules. Data isn't, however, first-class — you cannot have first-class lists, sprites, or procedures (lambda).

OS Permissions

Scratch has limited hardware/OS access, and is supposed to be a very "safe" programming language. The following can be accessd by Scratch:

  • Ambient volume
  • Mouse position relative to the Scratch frame
  • Key presses, only if Scratch is in focus
  • In Scratch 2.0, your movements will be provided as sensor values, using a webcam for image input.
  • The filesystem can be accessed while in development, but not while running.

Scratch Modifications offer more OS permissions.

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox