Numărul sarcinilor 2

Răspundeți la întrebări în scris, în funcție de varianta primită.

Ce este o bibliotecă runtime?

Runtime Library (RTL - Runtime Library).







La implementarea funcțiilor API la nivelul sistemului de programare, aceste funcții sunt furnizate utilizatorului sub forma unei biblioteci de funcții a limbajului de programare corespunzător. În mod tipic, aceasta este o bibliotecă runtime (RTL). Sistemul de programare furnizează utilizatorului o bibliotecă de funcții și conectează la programul rezultat codul obiect responsabil pentru realizarea acestor funcții.

Evident, eficiența apelării funcțiilor API în această versiune va fi puțin mai mică decât atunci când accesați direct funcțiile sistemului de operare. Acesta este cazul, deoarece pentru a executa mai multe funcții API, biblioteca de limbaj de programare RTL trebuie să efectueze în continuare apeluri către funcțiile sistemului de operare. Disponibilitatea tuturor apelurilor și apelurilor necesare la funcțiile sistemului de operare în codul obiect RTL este asigurată de sistemul de programare.

Cu toate acestea, portabilitatea codului sursă al programului în această variantă este cea mai ridicată, deoarece sintaxa și semantica tuturor funcțiilor sunt strict reglementate în standardul limbajului de programare corespunzător. Ele depind de limbaj și nu depind de arhitectura sistemului de calcul țintă. Prin urmare, pentru a executa programul de aplicație pe noua arhitectură a sistemului informatic, este suficient să reconstruiți codul programului rezultat cu ajutorul sistemului de programare corespunzător.

Execuția uniformă a funcțiilor limbajului este asigurată de sistemul de programare. Atunci când vizează diferite arhitecturi ale sistemului de calcul țintă, sistemul de programare poate necesita combinații diferite de funcții ale sistemului de operare pentru a efectua aceleași funcții ale limbii sursă. Acest lucru trebuie luat în considerare în codul RTL. În general, fiecare arhitectură a sistemului țintă de calcul va avea nevoie de propriul cod RTL al limbajului de programare. Sistemul de programare oferă posibilitatea de a alege acest cod obiect RTL pentru conectarea automată la programul rezultat.







De exemplu, luați în considerare funcțiile de alocare dinamică în C și Pascal. În C, aceste funcții sunt reîncadrate și libere (funcții noi și șterse în C ++), în funcții Pascal noi și dispuse. Dacă utilizați aceste funcții în codul sursă al programului, din punctul de vedere al programului sursă, aceștia vor acționa în același mod în funcție de semantica codului sursă al programului. În același timp, pentru dezvoltatorul programului sursă, nu contează ce arhitectură este orientată spre programul său. Acest lucru este important pentru sistemul de programare, care pentru fiecare dintre aceste funcții trebuie să conecteze codul obiect al bibliotecii la programul rezultat. Acest cod va aborda funcțiile relevante ale sistemului de operare. Este posibil ca și pentru funcțiile de același tip în diferite limbi (de exemplu, malloc în C și nou în Pascal să efectueze acțiuni similare), acest cod va efectua apeluri similare la sistemul de operare. Cu toate acestea, pentru diferite versiuni ale sistemului de operare, acest cod va fi diferit chiar dacă utilizați același limbaj sursă.

Problema este, în principal, că majoritatea limbajelor de programare furnizează utilizatorului un set de funcții standardizate, care nu este foarte larg. Prin urmare, dezvoltatorul codului sursă este semnificativ limitat în alegerea funcțiilor API disponibile. De obicei, un set de funcții standard nu este suficient pentru a crea un program de aplicații cu drepturi depline. Apoi, dezvoltatorul poate face referire la funcțiile altor biblioteci disponibile în sistemul de programare. În acest caz, nu există nici o garanție că funcțiile incluse în acest sistem de programare, care nu sunt incluse în standardul limbajului de programare, vor fi disponibile într-un alt sistem de programare, mai ales dacă este orientat către o altă arhitectură a sistemului țintă de calcul. Această situație este mai aproape de cea de-a treia versiune a implementării API. De exemplu, aceleași funcții maUoc, realloc și liber în C nu fac parte, de fapt, din standardul de limbă. Acestea fac parte din biblioteca standard, care "de facto" este inclusă în toate sistemele de programare bazate pe limba C. Standardele comune există pentru multe funcții utilizate în mod obișnuit ale limbii. Dacă luăm mai multe funcții specifice, cum ar fi funcțiile de generare a unor noi procese, atunci nu va exista un standard general acceptat pentru ele fie în C, fie în Pascal.







Articole similare

Trimiteți-le prietenilor: