jackson6612 said:
Is this true Boolean algebra is basis for all the languages?
Boolean logic is the base logic used to create the lowest level components of a computer, such as the arithmetic component, which performs math operations like add, subtract, multiply, divide. Languages for computers don't directly deal with this boolean logic, but instead with the instruction set and operands (data) that a particular computer uses.
How does a computer language function in general?
A computer language is translated into the native instructions and data (operands) used by a particular computer. It allows a person to specify a sequence of logical steps and define the data, inputs, and outputs to be used, without having to get into the lowest level of computer specific details.
The oldest computers had to be manually wired to perform a specific set of operations. On some old computers, a person could enter a program by toggling switches that represent 0's and 1's to enter commands and data into the computer's memory using a "front panel". Some types of computers used "plug boards" for programming, where the plug board was programmed by plugging in a large number of wires:
http://en.wikipedia.org/wiki/Plugboard
For machine level programming, a very low level assembler could read some form of human input, via paper tape or punched cards, allowing an operation code to be specified as a few letters, and data operands to be written in hex or octal. The person was burdoned with having to determine the locations in memory for instructions and data, and had to rewrite the program if instructions or data were moved around.
The next step up in assembler languages allows a group of letters to be used as names for data or instruction locations (labels), and the assembler can assign the actual addresses or offsets to be used when it converts the assembly language program into machine language. This allowed instructions and data to be moved without having to rewrite programs.
More advanced assemblers include macros, where a single line of macro code could be expanded into multiple machine language instructions. For IBM 360 based mainframes, the simple assembler was called BAL (Basic Assembly Language), and the macro version called ALC (assembly language compiler). Generally there was a library of common macros provided by the computer maker so that programmers wouldn't have to recreate their own set for common operations.
Compiled languages were the next step. Here a single line of code may consist of a mathematical expression that results in many machine level instructions.
The next step up from this are code generators that allow a person to draw a user interface using the tools provided by the code generator, typically "drag and drop". For example a person selects a "dialog box" and drags into the desired location on what will become the user interface for the program. Once this is done, the code genreator creates the code to be used by a compiler to produce the user interface part of the program code. The person then adds the non-user interface code between the generated code to create the completed program. The code generator can tell the difference between code it generated and code added by a programmer so that updating the user interface and/or non-interface code is not too difficult.