< User:3sal2

Revision as of 02:08, 5 April 2014 by 3sal2 (talk | contribs) (Userfied.)

DocumentInQuestion.png It has been suggested that this page's contents be merged with the page Scratch. You can discuss this on the page's talk page. (Date?)

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.


  • 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 2.0 does support procedures, and recursion.
  • 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. [[Category:Computer Science]]