# SI413 Fall 2026 Unit 1 Labs language_name: Painting Programming Language (PPL) notes_from_prof: | Language designed by Daniel Stein and reviewed by Jake Lawrence. PPL stands for Painting Programming Language. Rather than using any special operators, the operators look like a backslash followed by some operator name. This makes the code a little more verbose but maybe more readable? And of course it's all about painting. example_program: | idea Ask for name paint /color{What is your name?} idea Print name from console paint /color{Hello}/mix/dipBrush idea Ask for a noun and adjective paint /color{Enter a noun and an adjective::} idea Get both inputs, reverse the first one, and concatenate paint /dipBrush/complement/mix/color{ is not }/mix/dipBrush # Task 3 language_syntax: | There are 4 kinds of Expressions A series of characters that start with '/color{' and end with '}'. There are two escape sequences, ':}', and '::'. The command '/dipBrush' Two expressions separated by '/mix' An expression followed by '/complement' A comment is a line in the program that starts with 'idea' A Statement is a new line that starts 'paint ' A Program is a sequence of Statements with only one on each line language_semantics: | The command /dipBrush reads an entire line from the terminal, removing the new line character Evaluating two Expression delimited by '/mix' concatenates the string literals Evaluating /complement reverses the Expression before it. /complement has higher precedence than /mix. The escape sequences, ':}' and '::', evaluate to '}' and ':' respectively A Statement that starts with 'paint ' evaluates the expressions left to right and prints the result on its own line. A Program executes each Statement in order.