An Analysis of a Computer ProgramAs we are already aware Binary is a conceptual model that people have invented to represent the workings of a machine. Binary resultantly forms the basis of all software because as mentioned earlier no matter what programming language you use that code must be translated into a machine readable format before it can be interpreted by a machine, the product of this translation is usually represented as binary code. Computer Software is conceptual and intangible as opposed to hardware which is tangible such as a motherboard, a CPU, an optical drive or a monitor. As a result the word software is intentionally used to contrast the term hardware. Programming is a means of creating software and a computer program is a type of software. Specifically, a program is a set of instructions issued to a computer in a programming language, such as Processing. These instructions are usually made up of one or many statements. Depending on what language you are programming in statements can consist of several different parts, such as,
Statements can also be made up of many other parts not mentioned here, but for now we are most interested in two of these components making up a statement, commands and expressions, the rest we will get to later.
If you were to compare a statement in computer programming to a sentence in a natural language, a computer programming statement could be considered to be somewhat imperative. For example the following sentence in a natural language: “Run, as fast as you can!” This would be an imperative statement in English issued to the implied subject. In extending this comparison, a verb in an imperatively spoken sentence would have the same purpose as a command in a programming language. A command in a programming language usually implies a directive issued to a computer, in other words it's a means of telling a computer to do something. In Processing we often use functions to tell a computer what to do, a function in this sense is a type of command. Functions are the building blocks of Processing programs, as you will come to see. Additionally many functions in Processing accept parameters, which modify how the function is interpreted the by program. If we were to extend on our previous example and apply this programmatically, the word “Run” in the sentence would be a function and “as fast as you can!” would be representative of a parameter.
Expressions in computer programming languages can consist of single or multiple different types of data such as numbers, typographic characters and many other types of data that can be interpreted in various ways according to rules established by the language you are programming in. The process of how this expressional data is interpreted is known as evaluation and is similar to the term as it is used in mathematics. For example 3 + 2 is an expression that evaluates to 5. Mathematical operators such as +, -, *, etc. work in Processing, as you would probably expect them to. As the term implies the programmatic mathematical operator is often interchangeable with the standard classical mathematical operator in Processing. For example the statement in Processing:
Consists of two parts, first the function println() which accepts a parameter. In this case the second part of the statement, the parameter, is an expression and the expression is 5+3 which evaluates to 8. One of the basic features of Processing is it's ability to act as a calculator when computing values separated by mathematical operators such as + (plus), - (minus), * (multiply), / (divide) and % (modulus). But this inherent ability of Processing extends a lot further than simply evaluating numerical expressions, as expressions amongst other types of data can also consist of other typographic characters that can be evaluated. For example the statement:
println(“h” + “i”);
An example of operator overloading and typecasting in Processing's PDE