Let's start with the lowest possible "Language": Machine code.
Machine "code" is basically just the numbers that the processor knows how to directly execute. Typically those numbers are added up from a series of smaller numbers that specify things like the source of the data, the destination for the data and the operation to perform on the data. You could image a 3 digit number where the first digit specifies what to do that that data. e.g. 1 to add it, 2 to subtract it, 3 to multiply it, and so on. Then the middle digit might select the data source from a list of registers, memory at the location specified by a register, or combination of registers, or the memory in the next program address. Like 1 for the main register (the accumulator), 2 for the value in the next program address, 3 for the memory address register, and so on. And then the last digit says where to put it. So as an example, 121 might (_2_) take in a number from the next program address, (1__) add it to the value in the main register, and then (__1) place that value in the main register. If the next value had a 1 in it, then the accumulator would be incremented (increased by one) so we are counting. This sort of machine code is the most simple code imaginable.
Next, is what we call Assembly Language. This is where we write a program that has that list of sources, operations and destinations and then it takes in characters from the user (the program) and compiles it to the machine code by looking up the names on the list and putting out the numbers. So instead of putting in 211, we might write out "add acc, #1" and that would get translated into 121 with the #1 putting the value in the next address. Extra credit: Who wrote the very first assembler?
And after that, we can imagine a very simple language that translates algebraic sentences into assembly language. Like in the C language, we might say "a=a+1" and that would become "add acc, #1" and that would become 121, 1.
So those are all pretty low level. Some people will call C a high level language, but it's a pretty low high.
The point here is this: You don't have to think about the accumulator, or what goes in what address, or what code number tells the processor to do something. You can just type in instructions in something more or less like a human language and the computer figures out how to compile that down to machine code... from your higher level language.
file: /Techref/language/low2high.htm, 2KB, , updated: 2023/4/8 18:22, local time: 2024/11/15 23:43,
owner: JMN-EFP-786,
3.22.248.100:LOG IN
|
©2024 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions? <A HREF="http://linistepper.com/techref/language/low2high.htm"> High Level Languages vs Low Level "Languages"</A> |
Did you find what you needed? |