Program de calculator

Program de calculator  - 1) o combinație de instrucțiuni de calculator și date care permite hardware-ului unui sistem de calcul să efectueze calcule sau funcții de control ( standard ISO / IEC / IEEE 24765:2010) [1] ; 2) o unitate sintactică care respectă regulile unui anumit limbaj de programare , constând din definiții și operatori sau instrucțiuni necesare unei anumite funcții, sarcini sau soluții de problemă (standard ISO/IEC 2382-1:1993) [2] .

Prima definiție corespunde conceptului de „ program executabil ”, a doua se referă la conceptul de „ cod sursă ”.

Alte definiții din documentele de reglementare:

Programele de calculator ca obiect al dreptului de autor și alte drepturi de proprietate intelectuală sunt clasificate drept imobilizări necorporale .

Crearea de programe

Cel mai adesea , o imagine de program este stocată ca un modul executabil (un singur fișier sau un grup de fișiere). Din această imagine, de obicei pe disc , un program executabil în RAM poate fi construit de un încărcător de software .

În programarea unui sistem , un program este date care sunt utilizate de procesor ca instrucțiuni pentru controlul unui sistem informatic [5] . Programul poate include atât codul de mașină , executat de procesor pentru a atinge un anumit scop, cât și datele necesare pentru aceasta. O caracteristică distinctivă a programului este locația sa în memorie și execuția de către procesor.

Procesul de dezvoltare software constă din mai multe etape, dintre care în sens restrâns doar crearea directă a codului programului se numește „ programare ”. Într-un sens larg, programarea se referă adesea la întregul proces de dezvoltare a software-ului, iar persoanele implicate în acest tip de activitate sunt numiți programatori .

Scrierea codului sursă al programelor folosind limbaje de programare facilitează înțelegerea și editarea oamenilor. Acest lucru, în special, este ajutat de comentarii , care sunt permise în sintaxa majorității limbilor. Pentru execuția pe computer, textul programului terminat este convertit ( compilat ) în cod mașină.

Unele limbaje de programare vă permit să faceți fără precompilarea programului și să îl traduceți în instrucțiuni de cod de mașină direct în timpul execuției. Acest proces se numește compilare dinamică și permite o portabilitate mai mare a programelor pe diferite platforme hardware și software, păstrând în același timp multe dintre beneficiile compilației.

Programele interpretate care nu folosesc în mod normal procesul de compilare și sunt interpretate de sistemul de operare sau programe speciale de interpret se numesc scripturi sau „scripturi”.

Textele sursă ale programelor de calculator din majoritatea limbajelor de programare constau dintr-o listă de instrucțiuni care descriu cu exactitate algoritmul de bază . O abordare similară în programare se numește imperativă . Cu toate acestea, se aplică și alte metodologii de programare. De exemplu, descrierea caracteristicilor inițiale și necesare ale datelor care sunt procesate și oferirea unei alegeri a unui algoritm de soluție adecvat unui program de interpret specializat - această abordare se numește programare declarativă . Programarea declarativă include programarea funcțională și logică , precum și tipuri mai puțin comune de programare .

Programele pot fi create sub formă de text și vizual . În primul caz, codul sursă este tastat manual, în al doilea, funcționalitatea programului este setată folosind elementele interfeței grafice cu utilizatorul , iar textul programului este generat automat și poate fi fie disponibil pentru modificare manuală, fie complet ascuns de programator.

Depozitare și execuție

Până în momentul în care un utilizator de computer emite explicit sau implicit o solicitare de a executa un program de calculator, acesta este de obicei stocat în memorie nevolatilă . Când se primește o astfel de solicitare, programul este încărcat de un alt program de calculator, numit sistem de operare, în memoria cu acces aleatoriu , de unde poate fi executat direct de unitatea centrală de procesare. CPU-ul execută apoi programul, instrucțiune cu instrucțiune, până când acesta se termină. Un program care rulează se numește proces [6] . Încetarea programului are loc fie la atingerea ultimei sale instrucțiuni (de obicei transferul controlului către sistemul de operare), fie printr-o eroare, software sau hardware.

Execuție simultană

Multe sisteme de operare acceptă mecanismul multitasking , care vă permite să creați efectul mai multor programe de computer care rulează simultan pe un computer. Sistemele de operare pot rula mai multe programe folosind managerul sistemului de operare  , un mecanism software pentru comutarea proceselor care rulează pe procesor. Deși rulează un singur program la un moment dat, dacă comutați suficient de frecvent, utilizatorul poate interacționa cu toate programele în timp ce acestea rulează [7] . Calculatoarele moderne multi-procesor sau calculatoarele cu procesoare multi-core suportă execuția simultană a mai multor programe în hardware [8] .

Fragmentele de cod ale aceluiași program de calculator pot fi executate simultan folosind fire de execuție . Există procesoare cu mai multe fire optimizate special pentru rularea mai multor fire.

Programe cu auto-modificare

Un program de calculator care rulează este considerat a fi diferit de datele pe care le prelucrează. Cu toate acestea, această distincție este estompată atunci când un program de calculator se modifică. Programul de calculator modificat este apoi executat ca parte a programului original. Auto-modificarea codului este posibilă în programele scrise în codul mașinii , limbajul de asamblare , Lisp , C , Cobol , PL/1 și Prolog .

Utilizarea programelor

Majoritatea utilizatorilor de computere folosesc programe concepute pentru a îndeplini sarcini specifice aplicației, cum ar fi pregătirea și procesarea documentelor, calcule matematice , procesare de imagini etc. Software-ul corespunzător se numește programe de aplicație sau software de aplicație . Gestionarea componentelor sistemului de calcul și formarea unui mediu pentru funcționarea programelor de aplicație sunt realizate de software-ul de sistem , cea mai importantă componentă a căruia este sistemul de operare.

Aspecte juridice

Potrivit art. 1261 din Codul civil al Federației Ruse, un program de calculator este un set de date și comenzi prezentate într-o formă obiectivă, destinate funcționării computerelor și a altor dispozitive informatice pentru a obține un anumit rezultat, inclusiv materiale pregătitoare obținute în timpul dezvoltarea unui program de calculator și a afișajelor audiovizuale generate de acesta.

Programele cu cod sursă disponibil public se numesc sursă deschisă .

Programele de calculator din majoritatea țărilor sunt supuse dreptului de autor (inclusiv Ucraina și Rusia). În unele țări, programele de calculator pot fi protejate prin brevete . Brevetarea programelor de calculator a fost facilitată de Acordul privind aspectele comerciale ale drepturilor de proprietate intelectuală, care a stabilit cerințe minime [9] pentru gama protejată de drepturi de proprietate intelectuală și a permis de fapt brevetarea software-ului. Acordul TRIPS este obligatoriu pentru implementarea pe teritoriul Ucrainei și Rusiei în calitate de state membre ale OMC.

Astfel, un program poate fi protejat atât ca „operă literară”, cât și ca „invenție”. Pentru determinarea regimului de protecție juridică, în primul caz, se folosește „textul codului”, în celălalt, caracteristicile utilizate pentru invențiile propuse spre brevetare (adică este necesar să se dovedească „inovativitatea”, „originalitatea” și „neevidență”, precum și posibilitatea rezolvării unei probleme tehnice existente și adecvarea comercială) [10] . În același timp, există o problemă de diferențiere juridică a programelor de calculator de conținutul digital proprietar și software-ul proprietar [11] .

Dreptul exclusiv asupra programelor de calculator și bazelor de date ia naștere automat din momentul creării acestuia și este valabil pe toată durata vieții autorului și în șaptezeci de ani, începând cu data de 1 ianuarie a anului următor celui al decesului autorului (sau decesului ultimul dintre coautori).

Legislația actuală a Federației Ruse nu prevede brevetarea programelor de calculator ca atare. Aceste obiecte de proprietate intelectuală sunt protejate prin dreptul de autor, care ia naștere automat din momentul creării lor și nu necesită înregistrarea de stat obligatorie. Totuși, programele de calculator și bazele de date pot fi înregistrate la Rospatent la cererea deținătorului drepturilor de autor [12] .

Drepturi de autor și altele[ ce? ] drepturile de proprietate intelectuală vă permit să restricționați accesul la codul sursă al programelor.

Vezi și

Note

  1. ISO/IEC/IEEE 24765:2010 Ingineria sistemelor și software-ului - Vocabular
  2. ISO/IEC 2382-1:1993, Tehnologia informației - Vocabular - Partea 1: Termeni fundamentali
  3. GOST 19781-90. ESPD . Termeni și definiții
  4. Art. 1261 „Programe de calculator” din Codul civil al Federației Ruse
  5. Feldman S. K. Programarea sistemului. Un curs complet de prelegeri cu materiale teoretice și lucrări de laborator. - 2003. - 512 p. — ISBN 5-88548-096-6 .
  6. Silberschatz, 1994 , p. 97.
  7. Silberschatz, 1994 , p. 100.
  8. Akhter Shameem. Programare cu mai multe nuclee. - Richard Bowles (Intel Press), 2006. - P. 11-13. — ISBN 0-9764832-4-6 .
  9. Chibisov D. M. Natură juridică Ugodi despre aspectele comerciale ale drepturilor puterii intelectuale (TRIPS)  (ucraineană)  // Buletinul științific al Universității Naționale Uzhgorod. Seria „Lege”. - 2012. - Nr. 19 .
  10. Chibisov D.M. Moduri de protecție a conținutului digital proprietar  (ukr.)  (link indisponibil) (8 aprilie 2015). Consultat la 9 aprilie 2015. Arhivat din original pe 2 aprilie 2015.
  11. D.M. Chibisov. Conținut digital proprietar: o caracteristică cheie . Blog (8 aprilie 2015). Arhivat din original pe 12 iunie 2018.
  12. Zimin V.A. Înregistrarea programelor de calculator în Federația Rusă . Preluat la 9 iunie 2016. Arhivat din original la 4 aprilie 2016.

Literatură