Z

Suppose that Zamyla has designed a new programming language called Z. The language is "loosely typed," which means you needn’t specify a variable’s type; values that look like integers will be treated as integers, values that look like strings will be treated as strings, and `true` and `false` will be treated as Booleans. As in C, a program written in Z must have a function called `main`, which is automatically called when the program is executed. However, in Z, functions don’t need to be declared, as with prototypes, before they are called. As in C, comments in Z begin with `//`. But the language comprises only these building blocks, wherein `{ }` denotes one or more lines of code:

`function name(parameters) { }`

which defines a function called `name` that accepts as input a comma-separated list of zero or more parameters

`return(value)`

which returns a single `value` from a function

`$variable` which represents a variable (of any type) called `$variable`

`x <- y`

which stores `y` in `x`, where `x` is necessarily a variable

`if (x) { }`

which executes any code within `{ }` if and only if `x` is `true`

`x < y`

which evaluates to `true` if `x` is less than `y` and `false` otherwise

`add(x, y)`

which returns the sum of `x` and `y`, which are assumed to be integers

`get()`

which gets a value (of any type) from the user and returns it

`not(x)`

which converts `true` to `false` and `false` to `true`

`print(x)`

which prints `x` (of any type) and supports escape sequences like `\n`

Z has no other features. In particular, it does not support binary operators like `+`, `-`, `*`, `/`, `%`, `&&`, `||`, `!`, `>`, `>=`, `==`, or `<=` (though it does support `-` as a prefix for negative integers). And it does not have loops. But you can still program in it!

For instance, whereas in C you might write:

``x = x - y;``

in Z you would write:

``$x <- add($x, -$y)`` And here’s a whole program in Z that gets a user’s name name and then says hello: ``````function main() { // get user's name$name <- get()

// say hello
hello($name) } function hello($s)
{
// print "hello, $s\n", where$s is user's name
print("hello, ")
print(\$s)
print("\n")
}``````

Answer the below in `z.txt`.

Questions

1. (4 points.) Write a program in Z that gets two integers from the user and then prints "equal" if and only if the two integers are equal. Assume that the user will indeed input integers.

2. (6 points.) Write a program in Z that gets an integer from the user and then prints, one per line, all of the integers from that number through (i.e., including) 0, starting with that integer and ending with 0. Assume that the user will input a positive integer.

Debrief

1. Which resources, if any, did you find helpful in answering this problem’s questions?

2. About how long did you spend on this problem’s questions?