Pliro Wiki — English
Learn to make drawings, quizzes, games, and useful programs with Pliro. The learning paths explain one idea at a time with examples you can try. Start wherever you feel comfortable; the detailed reference is here when you need it.
Start here
-
Learn programming step by step — 22 lessons
-
Syntax and values — 60 entries
-
Built-ins — 63 entries
-
Programming guides — 44 entries
-
Concepts explained — 30 entries
All entries
Syntax and values
- != — inequality
- % — remainder
- * — multiplication
- + — addition and concatenation
- - — subtraction
- / — division
- < — less than
- <= — less than or equal to
- = — initialization and assignment
- == — equality
- > — greater than
- >= — greater than or equal to
- and: when both conditions must be true
- Grouping instructions in blocks
- Boolean: true or false
- Braces: map literals
- Changing a value inside nested collections
- Functions inside functions
- Sharing and copying lists and maps
- Colon: block headers and map entries
- Comma: separators and trailing commas
- Comments: #
- The complete grammar: how Pliro fits together
- else: what happens otherwise
- Working out a value: expressions
- false — the Boolean false literal
- for: visiting each item
- Using a function: calls and arguments
- function: naming a reusable job
- Choosing names and recognizing keywords
- if: making a choice
- in — separate loop name and iterable
- Indexing with []
- let: giving a value a name
- Where can I use my variable?
- List: keeping items in order
- Map: looking up values by a key
- Using a dot to find a named value
- none: when there is no value
- not: reversing a true-or-false answer
- Number and number literals
- or: when at least one condition must be true
- Parentheses: grouping and calls
- A function that calls itself
- return: sending an answer back
- set: changing an existing value
- Source files and projects
- Source-language directive
- Square brackets: lists and indexing
- Text and string literals
- Different kinds of values
- true — the Boolean true literal
- Unary + — numeric identity
- Unary - — numeric negation
- Unsupported and reserved syntax
- use — import a project module
- How Pliro stores text files
- when — cooperative event scripts
- while: repeating while a condition is true
- Whitespace and indentation
Built-ins
- after
- aim3D
- ask
- askNumber
- askYesNo
- box3D
- broadcast
- camera3D
- choose
- circle
- clear
- clear3D
- clearCanvas
- color3D
- cylinder3D
- deleteData
- draw3D
- drawLine
- drawText
- exitApp
- forward
- hideSprite
- home
- keyDown
- keyPressed
- left
- length
- loadData
- lookAt3D
- messageReceived
- moveCamera3D
- penDown
- penUp
- pinInput
- pinOutput
- playSound
- pointerClicked
- pointerPressed
- pointerReleased
- pointerX
- pointerY
- position3D
- randomInt
- readPin
- rectangle
- remove3D
- repeatList
- right
- saveData
- savedDataKeys
- say
- showImage
- showSprite
- solid3D
- sphere3D
- started
- text
- texture3D
- touching3D
- turn3D
- turnCamera3D
- wait
- writePin
Programming guides
- 2D coordinates and drawing
- 3D worlds, coordinates, and cameras
- Adding pictures and sounds to a project
- Animation and frame timing
- Bits, bytes, and computer memory
- Breaking a problem into smaller steps
- Building and distributing applications
- Changing the language of your code
- Choosing clear names
- Choosing colors in Pliro
- Complete example programs
- Controlling pins: from pretend devices to Raspberry Pi
- Different screens in a game
- Drawing with the turtle
- Finding bugs like a detective
- Finding something in a list
- Following a program step by step
- Improving a working program
- Input, processing, and output
- Keeping your code neat
- Making a program stop repeating
- Making programs for everyone
- Planning your first project
- Putting things in order
- Questions and keyboard input
- Random does not mean “take turns”
- Reacting to events, timers, and messages
- Remembering what is happening
- Running and stopping a program
- Saving data for later
- Sharing your project safely
- Source code and finished apps
- Sprites: pictures you can move
- Testing your program
- Trying commands one at a time
- Trying unusual inputs
- Understanding error messages
- Using the mouse or a pointing device
- What is Pliro?
- What is a computer program?
- What is an algorithm?
- Where can my program run?
- Why Pliro limits a running program
- Your first Pliro program
Concepts explained
- UTF-8: how letters become bytes
- Unicode: a shared catalogue of characters
- Code points: what does length count?
- Line endings: invisible marks between lines
- Escape sequences: special characters inside text
- File paths: an address for a file
- File extensions: the ending of a filename
- JSON: a text format for data
- Syntax and semantics: spelling and meaning
- Literals: values written directly in code
- Parameters and arguments: passing information to a function
- Return values: the answer a function gives back
- Compiler and interpreter: making code run
- Runtime and host: who does what?
- IDE: your programming workbench
- Command line: giving a tool a written instruction
- Modules: sharing work between source files
- Floating-point numbers: why tiny rounding happens
- Mutation: changing something already there
- Side effects: more than an answer
- Short-circuiting: stop checking when the answer is known
- Event loop: how scripts take turns
- Pixels: the small pieces of a picture
- Frames and FPS: pictures over time
- Collision detection: do two objects touch?
- API: an agreed way to ask for something
- Sandbox: a bounded place to run code
- Permissions and capabilities: can it, and may it?
- Canonical identity: one operation, different names
- Project manifests: the project’s information card
Using the reference examples
A complete reference to the implemented Pliro 0.x language, with one Markdown file per lemma. Start with the first program, then browse syntax, individual built-ins, and practical guides. Roadmap ideas are listed as unsupported rather than presented as available syntax.
Complete examples use pliro code fences and an explicit language directive. Text fences contain signatures, fragments, or deliberately invalid syntax; they are not all standalone programs. Media examples require the named project assets. Input and graphical examples need a suitable host. Names such as Number and List in parameter tables are documentation notation, not source type annotations.
The matching examples use the same canonical semantics. Syntax conversion preserves user identifiers, literal text, and comments; color and pattern data are not translated.
Reference and specifications
Single-file language reference · Authoritative specifications
