Concept în definiție ABC
Miscellanea / / July 04, 2021
De Guillem Alsina González, în sept. 2017
Cum ne putem înțelege cu cineva cu care nu avem niciun limbaj în comun? Prin intermediul unui traducător. Această funcție de traducere este cea care efectuează un compilator a se transforma în cod cod sursă executabil scris de un programator.
Compilarea este procesul prin care este un program scris într-un limbaj de nivel înalt tradus în codul mașinii utilizat de o anumită arhitectură a computerului, pentru executarea acestuia direct.
Prin urmare, și conform explicației pe care tocmai le-am propus, acest sistem necesită alegerea unui arhitectură destinație, care poate fi diferită în fiecare caz și ne va obliga să compilăm separat pentru fiecare dintre diferitele arhitecturi în care dorim să ruleze programul nostru.
Astfel, de exemplu, putem avansa pe un anumit program pentru arhitectura x86 pe 32 de biți, x86 pe 64 de biți, PowerPC sau ARM diferențiază și 32 și 64 de biți, în funcție de tipul de dispozitiv în care dorim rulați-l.
În plus, trebuie să ținem cont și de diferitele sisteme de operare, chiar dacă lucrăm pentru aceeași platformă hardware, deoarece fiecare are un mod diferit de a interacționa cu mașina fizică
Să luăm ca exemplu platforma x86 pe 64 de biți. S-ar putea să dorim să compilăm pentru Windows, GNU / Linux sau macOS, sau pentru fiecare dintre ele, care implică trei procese de compilare separate.
Uneori, acest lucru ne obligă să modificăm ușor codul sursă, păstrând adesea trei versiuni separate (sau mai multe, în funcție de cazul) pentru ca aceștia să interacționeze corect cu particularitățile și diferențele platformei de destinație.
Procesul de compilare urmează o serie de pași, cum ar fi detectarea erorilor sintactice în codul sursă, apoi a pre-procesate pentru a cunoaște resursele de care are nevoie programul și, în cele din urmă, legătura cu bibliotecile și resursele necesare pentru acesta execuţie.
În acest fel, a fişier executabil conținând toate resurse necesare pentru executarea acestuia și instrucțiunile necesare pentru accesarea resurselor externe, cum ar fi bibliotecile de coduri partajate (impartit).
Procesul de compilare se face cu un instrument sau instrumente specifice (compilator), deși este obișnuit ca aceasta să fie integrată în mediile de dezvoltare (IDE), facilitând astfel utilizarea sa.
Fiecare limbă de programare Are propriul său compilator, deși pentru o lungă perioadă de timp, compilatorul corespunzător unui limbaj și mediu, este capabil să genereze executabile pentru diferite platforme software diferit.
Există o opțiune alternativă la procesul de construire? Da, și sunt limbi interpretate.
Limbile interpretate sunt cele care sunt traduse în timpul rulării și nu sunt compilate.
Prin urmare, codul lor sursă este întotdeauna disponibil și ceea ce au nevoie este acela din sistem de operare pe care sunt executați, există un interpret.
Evitând procesul de compilare, dacă interpretul este disponibil pentru mai multe platforme, va fi posibil să rulați programul direct pe fiecare dintre ele, de obicei fără modificări.
Alte focalizare alternative, la jumătatea distanței dintre limbile compilate și interpretate, sunt cele care necesită o mașină virtuală pentru a rula, de exemplu, Java.
Limbajele de programare care rulează deasupra unui strat de virtualizare (mașină virtuală) necesită un proces intermediar similar cu cel al compilare, dar care are ca rezultat un cod care nu este direct executabil, deși mai optimizat decât cel executat de un limbaj interpretat.
În aceste cazuri, necesită un proces similar în formă cu cel al compilării, dar care dă un rezultat diferit și care necesită, în orice caz, instalare de o timpul de rulare în sistemul de operare în care dorim să rulăm programul nostru.
Fotografii: Fotolia - Alexander Pokusay / Onot
Subiecte în Compilație