Portare

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Portarea (termen englezesc ), în informatică , este un proces de transpunere, uneori chiar și cu modificări, a unei componente software , menită să permită utilizarea acesteia pe o altă platformă decât cea originală. Un port se face atunci când software-ul este adaptat într-un fel, nu atunci când codul sursă este complet rescris într-un alt limbaj de programare .

Portabilitatea este caracteristica unui software (așadar numit portabil ) prin care poate fi portat cu ușurință, cu un efort mult mai mic decât ar costa să recreeze aceleași funcții de la zero pe noile platforme. Uneori portabilitatea indică în cel mai general mod posibil independența în faza de execuție față de platforma utilizată.

Două activități legate de, dar distincte de, portare sunt emularea și compilarea încrucișată sau compilarea încrucișată .

Descriere

Portarea poate fi o activitate complexă și costisitoare; aceasta depinde de „distanța” tehnologică dintre mediul sursă și mediul țintă, de tipul de componentă software de „adus” și de instrumentele cu care a fost construită.

Se spune că o componentă software este portabilă dacă este posibilă portarea acesteia (mai ales dacă este simplă și ieftină din punct de vedere al resurselor de lucru); în acest sens, portabilitatea poate fi considerată un caz particular de reutilizare a software-ului. Cazul extrem este acela în care o componentă software poate fi refolosită pe diferite platforme fără ca aceasta să implice nicio modificare , iar astăzi avem tendința de a folosi termenul de portabilitate în acest ultim sens, care în domeniul hardware sau al sistemelor se mai numește și interoperabilitate .

În scenariul de astăzi, în care computerele de tot felul sunt capabile să comunice și să schimbe date și programe prin intermediul internetului , portabilitatea este adesea un factor decisiv în alegerea tehnologiilor, metodologiilor și instrumentelor pentru producția de software. În același timp, apariția unor standarde precum cele promulgate de ISO și ANSI (de exemplu, în ceea ce privește formatele de stocare a datelor sau limbajele de programare ) și convergența consecventă a tehnologiilor și a sistemelor informaționale în ceea ce privește cel puțin unele aspecte ale funcționării acestora, joacă în mod evident în favoarea portabilității software-ului în general.

Există un număr mare de instrumente care ajută la portare, cum ar fi GCC , care vă permite să compilați diferite limbi sub diferite arhitecturi și autoconf , care, înainte de a compila, automatizează căutarea acelor mici diferențe care v-ar putea împiedica să compilați sursă și se adaptează corespunzător.programul.

Cauze

Operația de portare , adică crearea (scrierea) unui port, poate fi necesară datorită diferențelor dintre procesoare , diferitelor interfețe (API de interfață de programare a aplicațiilor) ale sistemelor de operare , diversității hardware sau datorită incompatibilităților subtile implementării limbajul de programare de pe mediul țintă (cel pe care urmează să fie compilat programul). În plus față de cele mai faimoase cauze, portarea poate fi solicitată atunci când programatorul crede că codul sursă nu a fost ales cu atenție și, în consecință, nu este potrivit scopului dorit.

Exemplu

Deși există numeroase nuanțe în sensul atribuit termenului „portabilitate” în contexte diferite, merită subliniat cel puțin două: portabilitatea datelor și portabilitatea programului .

Portabilitatea datelor

Depinde de formatul în care datele sunt stocate în fișier . De exemplu, un fișier text stocat ca o secvență de coduri ASCII este în general considerat portabil, deoarece acest tip de codificare este acum (aproape) adoptat universal de către producătorii de computere.

Portabilitatea programelor

Portabilitatea programelor depinde în esență de limbajul de programare utilizat. Unele limbi nu pot fi considerate portabile (adică nu permit scrierea de programe portabile) din simplul motiv că pentru unele medii nu există un interpret sau un compilator de limbă; sau pentru că compilatorii sau interpreții disponibili în medii diferite au unele diferențe mai mult sau mai puțin subtile în sintaxa pe care o acceptă sau în semantica pe care o atribuie unor constructe; astfel încât un program care funcționează corect pe o mașină ar putea prezenta defecțiuni mai mult sau mai puțin grave, sau chiar nu reușește să compileze , pe alta.

Această ultimă problemă poate fi rezolvată prin publicarea unui standard lingvistic, sau o descriere a acestuia cât mai precisă și lipsită de ambiguitate, posibil gestionată de un organism „autoritar” care are sarcina de a certifica aderarea compilatorilor și interpretilor la această descriere. Un exemplu celebru în acest sens este dat de limbajul C , din care au furnizat mai întâi un standard ANSI și apoi ISO . În consecință, programele C sunt portabile în sensul că pot fi compilate în orice mediu (datorită API-ului comun), obținând în mod evident programe de limbaj mașină diferite, dar care prezintă un comportament semantic echivalent.

Rețineți că, deși C și C ++ sunt limbaje portabile, diversitatea compilatoarelor celor două limbaje de programare pune o serie de probleme de portabilitate. Simplul fapt de a avea un program în C sau în C ++ nu garantează portabilitatea acestuia și, prin urmare, este adesea necesar să depunem un efort suplimentar pentru a depăși diferențele dintre cele două sisteme și dintre compilatoare.

O formă mai radicală de portabilitate este oferită de limbajele interpretate, evident cu condiția ca interpreții să existe pentru diferitele cercuri de interes și că acești interpreți prezintă un comportament echivalent (de exemplu, conform cu un standard). În acest caz, portarea unui program nu necesită nici măcar recompilarea. Acesta este de exemplu cazul Java ; Software-ul Java poate fi rulat în orice mediu în care este instalată așa-numita mașină virtuală Java (mai precis JRE, Java Runtime Environment , care poate fi descărcat gratuit de pe site-ul web Oracle). Un alt aspect al portabilității Java este acela care face posibilă inserarea de mici programe Java ( applet-uri ) în paginile Web destinate vizualizării de diferite browsere care rulează pe mașini complet diferite.

Elemente conexe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT