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