Open the Windows Explorer and look at the items on your harddrive. Each folder may contain
Although you can create data files (your Word, Excel, Corel Draw, HTML projects are all data files), creating or changing programs is usually left to professionals or semi-professionals. Programs (like Word, Excel, Corel Draw, Notepad, Frontpage, Browsers, Games, ...) allow you to transfer input data into output data. For instance, a browser transforms the source code into the displayed image, word transforms mouseclicks and keystrokes into a formatted text, and so on. Programs may be more or less interactive, but each program, even a browser, contains interactive parts.
A program is a set (list) of instructions that tell the computer, step by step, and very explicitely, what to do. Interactive programs pause from time to time and await an input (as response to something displayed on the screen, for instance) from the user. Most programs have different threads---program parts that are executed in parallel with multitasking. Since the threads take turns on the CPU, you can interrupt the downloading and displaying of a webpage (one thread) by clicking on the "Back" button (another thread reserved for user interaction).
Remember, the computer only understands sequences of 0s and 1s. If "11111111" means "display a red screen", and "00000000": "display a green screen, "11111111000000001111111100000000111111110000000011111111000000000" would then be a nice program in machine language. Each program must eventually be translated into machine language in order that the computer understands it.
Assembly Languages are slightly more understandable for humans. The data structures still correspond to the physical structure of the registers and memory of the host computer. Therefore each platform has its own assembly language. For transforming assembly language programs into machine language, you use a üprogram called an assembler.
Still, assembly languages are nowadays seldom used by programmers; they use high-level programming languages, like those discussed below.
These are macine-independent, independent of the architecture of the computer where the program is supposed to run. You don't have to rewrite the program if you use a different computer, like it was necessary in the 40s and early 50s.
Programs written in these high-level languages have to be compiled. Compiling means:
Then this source code is transformed into the corresponding machine language code (called object code) using programs called compilers or interpreters. Thus the program source code is also data.
Requirements for these languages are: They should be
Higher level programming languages allow data structures, as integers, dacimal numbers of a certain precision, characters, text strings, arrays, and so on.
Objects both contain the data and the methods---procedures for manipulating the data. With object-oriented programming, you create objects, and instances of these objects, and the interaction between them. Advantages are the possibility to reuse or modify existing objects, making especially the design of huge programs in project teams more feasable. Object-oriented languages are also very often event-driven.
Developed by IBM in 1954. A scientifically oriented language, very good for number-crunching, without GUIs in mind. Mainly used in the 70s and 80s.
John Backus, who proposed this first high-level languages, had to fight much scepticism about whether the automatic translation of such a language into machine code could be done efficiently. The first Fortran compiler (for IBM 704) was written between 1955 and 1957.
"Algorithmic Language", developed between 1957 and 1962.
A joint effort of the computing associations ACM and GAMM to produce a "universal" language. John Backus and Peter Naur formulated the notation (Backus Naur Form) in which the language was described.
COmmon Business-Oriented Language, 1959
very readable, maximum use of plain English, maybe less powerful than other languages.
a language designed for artificial intelligence, 1959, MIT
a small languages intended for symbol manipulation and recursion.
Beginners' All-purpose Symbolic Instruction Code,
introduced 1965 by Dartmouth College professors Thomas E. Kurtz and John Kemeny as a simple introductory language, especially for students in the humanities. Easy to learn and compiling needs very little memory.
Invented by the Swiss N. Wirth in the 1971. A very structured language. Pascal allows many data types and was the first language where it was impossible to let the computer try to add numbers and strings, for example. Pascal was the main language taught in universities in the 80s.
PROgramming in LOGic, Universite de Marseille, 1972. A logic-based language for database and artificial intelligence applications.
A declarative language using a set of declarations or predicates, looking very different to the other languages.
Bell Labs 1972. A structured language, like Pascal, encouraging the modular approach. C programs are very fast and very powerful.
An object-oriented enhancement of C, created in 1982 at Bell Labs.
Also a object-oriented programming language, rather similar than C++. Different from other programs, Java programs can run on any platform, since they use the Java Virtual Machine, a layer between operating system and program. Therefore, small Java programs (so-called Java applets) are widely used on the internet. Java programs are (still) a little slower than C++.
Programs that allow programmers to write programs by clicking and dragging. Codes is not typed in but generated automatically in about the same way as Frontpage generated HTML code for you. Visual Basic was introduced in 1987 by Microsoft. Other brands are Visual Studio .NET 2003, for Basic, C, C++, C#.but there are also programs for Java and others. Delphi is another visual programming tool for large-scale enterprises