From 54088d606ee35afadd783d41cc06c1d4ecb4c2d3 Mon Sep 17 00:00:00 2001 From: vahagn Date: Tue, 15 Jun 2021 00:18:11 +0100 Subject: [PATCH] Add 'Lectures/multifile_compilation.md' --- Lectures/multifile_compilation.md | 51 +++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Lectures/multifile_compilation.md diff --git a/Lectures/multifile_compilation.md b/Lectures/multifile_compilation.md new file mode 100644 index 0000000..6592658 --- /dev/null +++ b/Lectures/multifile_compilation.md @@ -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 +