Friday, January 6, 2012

Some Computer Science Terminology

[Este post é em inglês. Se não entender, use um tradutor. Os links para a Wikipedia podem ser consultados em suas versões em português, portanto você ainda pode tirar algo proveito daqui.]

I wrote this as an email to someone special, but then I thought it could be shared here.
It is simply a few links and comments for topics we were talking about one night... you might get interested as well -- and feel free to join the conversation.


Hello dear reader!

Words in bold are terms that are interesting to be familiarized with, IMHO.

(Additional term linked above: State http://en.wikipedia.org/wiki/State_(computer_science))

Note that in Scheme an environment is a first-class object, which means it can be assigned to a variable, it can be passed as argument, it can be used just like a number or string, etc etc.
Note also how Common Lisp and Scheme (and most other programming languages that I am familiar with and that I can think about now) differ in number of environments. CL is said to be a Lisp-2, while Scheme is Lisp-1. It means that Scheme has only one lexical environment containing all functions and variables, while CL has two distinct environments, one only for functions and another, independent one, for variables.
You can also think of the terms scope and namespace, which can appear to play a similar role in several languages.

Turing Machine
Have in mind how little you need to have a computing machine (and think of what does it mean to "compute," by the way). Have in mind that the Turing Machine is not practical as a real computer, but is of fundamental theoretical importance.

(John) von Neumann