Code flow: Difference between revisions

From XPUB & Lens-Based wiki
Line 80: Line 80:


  3
  3
Tristram
(error!)


  "Tristram"
  "Tristram"

Revision as of 16:35, 25 September 2012

<slidy theme="aa" />

A Computer Glossary

EamesComputerGlossary.gif

Husband & wife design superstars Charles & Ray Eames produced this animation explaining the "mood" and jargon of computation for the IBM pavilion at the 1968 Worlds Fair in San Antonio Texas.

Hello World

http://rosettacode.org/wiki/Hello_world/Newbie

print "Hello world!"
 ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.

+

hw1-11.gif

http://www.retas.de/thomas/computer/programs/useless/piet/explain.html

Imperative & Declarative Languages

There are many kinds of languages used in software; A typical website might involve HTML (for the basic page structure and linking), CSS (for setting visual properties of (groups) of elements), JavaScript (for dynamic content in the browser), and then PHP (scripting on the server) and SQL (to access a database). Broadly said, formal languages belong to one of two categories: Imperative & Declarative.

Imperative languages

Imperative, a linguistic reference to the command of language, as in "put the candle back".

Imperative languages are:

  • Procedural
  • Explicit about how to do something.
  • Represent the majority of common "programming languages" like Javascript, C, Python, and PHP.
    • JavaScript, Python
    • PHP (though it's itself embedded within HTML, a declarative language)
    • C, C++
    • A "macro" in an application like Photoshop

A silly example, of an "imperative" style program.

 To exit a room:
 1. Walk to the door.
 2. Is the light on?
    YES?: Turn off the light.
    NO?: do nothing.
 3. Open the door.
 4. Walk outside.

Declarative languages

Declarative, a linguistic reference to the descriptive mood of a language as in "The sky is blue".

Declarative languages:

  • Broadly speaking describe conditions to be met,
  • Must be interpreted, to be converted into actual results
  • Is therefore open to responding to different contexts
  • Examples of declarative languages would be:
    • HTML
    • CSS (Cascading Style Sheets)
    • SQL (or Structured Query Lanuage used to describe data to access a database)
    • LISP, Prolog, Haskell ("higher level" programming languages)
    • Regular Expressions (a pattern language to search & replace text)

A silly example of a declarative style program:

 Saving Electricity Policy
 When a room is unoccupied, the light should be switched off.

Javascript

We will be doing exercises in Javascript which has the advantage of being built-in to every modern web browser.

Browsers like Firefox, and Chrome have built in "consoles" to access / test out Javascript.

Expressions

Some expressions for the console...

5
3
Tristram

(error!)

"Tristram"
'SHAndy'

Operations

5 * 3
100 - 1
3 * 8
"Tristram" + "Shandy"

Operations: Functions

Math.sqrt (25)
Math.sqrt (26)

Objects

"Tristram".toUpperCase

?!

"Tristram".toUpperCase()

Assignment

Assignment is the process of storing an expression in a "name", called a variable.

x = 5 * 3
name = "Tristram"

Assignment ++

x = x + 1
x += 1
x++
name = name + " Shandy"

DOM

c=document.getElementById("c")

Reaching into the document and grabbing hold of the page.

Canvas

See Canvas

The canvas tag was introduced by Apple and has been standardized to become part of HTML5.

Using a function to control when things happen in the page

Loop

Handouts

Assignment, GeneralImperative + ProgramHighLow

Debug / Trace