Z****a 发帖数: 5434 | 1 编译器也是程序,也要靠其他编译器将源码编译链接
那么世界上第一个编译器是怎么来的? | c*******9 发帖数: 9032 | 2 第一个程序猿是诗人拜伦的女儿。什么子程序循环都是她提出的。她认为编程和做女红
没什么区别。
【在 Z****a 的大作中提到】 : 编译器也是程序,也要靠其他编译器将源码编译链接 : 那么世界上第一个编译器是怎么来的?
| g*********e 发帖数: 14401 | | n******7 发帖数: 12463 | 4 还是我比较厚道,花半分钟google了一下
http://stackoverflow.com/questions/1653649/how-was-the-first-co
Assembly instructions are (generally) a direct mapping to opcodes, which are
(multi-)byte values of machine code that can be directly interpreted by the
processor. It is quite possible to write a program in opcodes directly by
looking them up from a table (such as this one for the 6039 microprocessor,
for example) that lists them with the matching assembly instructions, and
hand-determining memory addresses/offsets for things like jumps.
The first programs were done in exactly this fashion - hand-written opcodes.
However, most of the time it's simpler to use an assembler to "compile"
assembly code, which automatically does these opcode lookups, as well as
being helpful in computing addresses/offsets for named jump labels, et
cetera.
The first assemblers were written by hand. Those assemblers could then be
used to assemble more complicated assemblers, which could then be use to
assemble compilers written for higher-level languages, and so on. This
process of iteratively writing the tools to simplify the creation of the
next set of tools is called (as mentioned by David Rabinowitz in his answer)
bootstrapping. |
|