Add 'Lectures/multifile_compilation.md'
This commit is contained in:
51
Lectures/multifile_compilation.md
Normal file
51
Lectures/multifile_compilation.md
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
# Բազմաֆայլ Կոմպիլացիա
|
||||||
|
|
||||||
|
|
||||||
|
1947թ
|
||||||
|
As early as 1947, programmers started to use primitive loaders that could
|
||||||
|
take program routines stored on separate tapes and combine and relocate
|
||||||
|
them into one program. By the early 1960s, these loaders had evolved into
|
||||||
|
full-fledged linkage editors.
|
||||||
|
|
||||||
|
Since program memory remained expensive
|
||||||
|
and limited and computers were (by modern standards) slow, these linkers
|
||||||
|
contained complex features for creating complex memory overlay structures to cram large programs into small memory, and for re-editing previously linked programs to save the time needed to rebuild a program from
|
||||||
|
scratch.
|
||||||
|
During the 1970s and 1980s there was little progress in linking technology. Linkers tended to become even simpler, as virtual memory moved
|
||||||
|
much of the job of storage management away from applications and overlays, into the operating system, and as computers became faster and disks
|
||||||
|
larger, it became easier to recreate a linked program from scratch to replace a few modules rather than to re-link just the changes. In the 1990s
|
||||||
|
linkers have again become more complex, adding support for modern features including dynamically linked shared libraries and the unusual demands of C++. Radical new processor architectures with wide instruction
|
||||||
|
words and compiler-scheduled memory accesses, such as the Intel IA64,
|
||||||
|
will also put new demands on linkers to ensure that the complex requirements of the code are met in linked prograsm
|
||||||
|
|
||||||
|
|
||||||
|
- Միաֆայլ-ծրագիր
|
||||||
|
- Դժվար է գրել/խնամել մեծ ծրագրեր
|
||||||
|
- Բազմաֆայլ ծրագիր
|
||||||
|
- Հարմարավետություն
|
||||||
|
- Պրցեդուրաի բազմակի օգտագործում <գրադարան>
|
||||||
|
- Կոմպիլացի մեկ անգամ, բազմակի կիրառում
|
||||||
|
|
||||||
|
- Պատմական ակնարկ
|
||||||
|
- Օբյեկտային ֆայլ
|
||||||
|
|
||||||
|
- Loading vs Linking
|
||||||
|
|
||||||
|
- Program loading
|
||||||
|
- Relocation
|
||||||
|
- Symbol Resolution
|
||||||
|
|
||||||
|
# Object File
|
||||||
|
- Object code
|
||||||
|
- Debug symbols
|
||||||
|
- Symbol Table
|
||||||
|
|
||||||
|
- Segments
|
||||||
|
|
||||||
|
- Անունների ֆորմատը (Name mangling)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Հղումներ
|
||||||
|
Linking and Loading
|
||||||
|
|
||||||
Reference in New Issue
Block a user