Datorprogram - 1) en kombination av datorinstruktioner och data som gör det möjligt för ett datorsystems hårdvara att utföra beräkningar eller styrfunktioner ( ISO / IEC / IEEE 24765:2010 standard) [1] ; 2) en syntaktisk enhet som överensstämmer med reglerna för ett visst programmeringsspråk , bestående av definitioner och operatorer eller instruktioner som är nödvändiga för en viss funktion, uppgift eller problemlösning (ISO/IEC 2382-1:1993 standard) [2] .
Den första definitionen motsvarar begreppet " körbart program ", den andra hänvisar till begreppet " källkod ".
Andra definitioner från reglerande dokument:
Datorprogram som föremål för upphovsrätt och andra immateriella rättigheter klassificeras som immateriella tillgångar .
Oftast lagras en programbild som en körbar modul (en enda fil eller en grupp filer). Från den här bilden, vanligtvis på disk , kan ett körbart program i RAM - minnet byggas av en mjukvarulastare .
I systemprogrammering är ett program data som används av processorn som instruktioner för att styra ett datorsystem [5] . Programmet kan innehålla både maskinkod , som exekveras av processorn för att uppnå något mål, och de data som krävs för detta. En utmärkande egenskap hos programmet är dess placering i minnet och exekvering av processorn.
Mjukvaruutvecklingsprocessen består av flera steg, av vilka i snäv mening endast det direkta skapandet av programkod kallas " programmering ". I vid bemärkelse hänvisar programmering ofta till hela processen för mjukvaruutveckling, och personer som är involverade i denna typ av aktivitet kallas programmerare .
Att skriva källkoden för program med hjälp av programmeringsspråk gör det lättare för människor att förstå och redigera. Detta, i synnerhet, underlättas av kommentarer , som är tillåtna i syntaxen för de flesta språk. För körning på en dator konverteras ( kompileras ) den färdiga programtexten till maskinkod.
Vissa programmeringsspråk låter dig göra utan förkompilering av programmet och översätta det till maskinkodinstruktioner direkt vid körning. Denna process kallas dynamisk kompilering och den möjliggör större portabilitet av program över olika hårdvaru- och mjukvaruplattformar samtidigt som många av fördelarna med kompilering behålls.
Tolkade program som normalt inte använder kompileringsprocessen och som tolkas av operativsystemet eller speciella tolkprogram kallas skript eller "skript".
Källtexterna till datorprogram i de flesta programmeringsspråk består av en lista med instruktioner som exakt beskriver den underliggande algoritmen . Ett liknande tillvägagångssätt inom programmering kallas imperativ . Men andra programmeringsmetoder gäller också. Till exempel att beskriva de initiala och nödvändiga egenskaperna hos de data som bearbetas och tillhandahålla ett val av en lämplig lösningsalgoritm till ett specialiserat tolkprogram - detta tillvägagångssätt kallas deklarativ programmering . Deklarativ programmering inkluderar funktionell och logisk programmering , såväl som mindre vanliga typer av programmering .
Program kan skapas i textform och visuellt . I det första fallet skrivs källkoden manuellt, i det andra ställs programfunktionaliteten in med hjälp av elementen i det grafiska användargränssnittet och programtexten genereras automatiskt och kan antingen vara tillgänglig för manuell modifiering eller helt dold från programmerare.
Fram till det ögonblick då en datoranvändare uttryckligen eller implicit utfärdar en begäran om att köra ett datorprogram, lagras det vanligtvis i ett icke-flyktigt minne . När en sådan begäran tas emot, laddas programmet av ett annat datorprogram, kallat operativsystemet, till direktminnet , varifrån det kan exekveras direkt av centralenheten. CPU:n exekverar sedan programmet, instruktion för instruktion, tills det är klart. Ett pågående program kallas en process [6] . Programavslutning sker antingen när den sista instruktionen uppnås (vanligtvis överför kontrollen till operativsystemet), eller genom ett fel, mjukvara eller hårdvara.
Många operativsystem stöder multitasking- mekanismen , som låter dig skapa effekten av flera datorprogram som körs samtidigt på en dator. Operativsystem kan köra flera program med operativsystemhanteraren , en mjukvarumekanism för att byta processer som körs på processorn. Även om endast ett program körs åt gången, om du byter tillräckligt ofta, kan användaren interagera med alla program medan de körs [7] . Moderna flerprocessordatorer eller datorer med flerkärniga processorer stödjer samtidig körning av flera program i hårdvara [8] .
Kodfragment av samma datorprogram kan exekveras samtidigt med exekveringstrådar . Det finns flertrådiga processorer speciellt optimerade för att köra flera trådar.
Ett datorprogram som körs anses vara annorlunda än de data det behandlar. Denna skillnad är dock suddig när ett datorprogram modifierar sig själv. Det modifierade datorprogrammet exekveras sedan som en del av det ursprungliga programmet. Kod självmodifiering är möjlig i program skrivna i maskinkod , assemblerspråk , Lisp , C , Cobol , PL/1 och Prolog .
De flesta datoranvändare använder program utformade för att utföra specifika applikationsuppgifter, såsom att förbereda och bearbeta dokument, matematiska beräkningar , bildbehandling, etc. Motsvarande programvara kallas applikationsprogram eller applikationsprogram . Hanteringen av komponenterna i datorsystemet och bildandet av en miljö för applikationsprograms funktion utförs av systemprogramvaran , vars viktigaste komponent är operativsystemet.
Enligt art. 1261 i Ryska federationens civillagstiftning är ett datorprogram en uppsättning data och kommandon som presenteras i objektiv form, avsedda för drift av datorer och andra datorenheter för att erhålla ett visst resultat, inklusive förberedande material som erhållits under utveckling av ett datorprogram och de audiovisuella bildskärmar som genereras av det.
Program med allmänt tillgänglig källkod kallas öppen källkod .
Datorprogram i de flesta länder är föremål för upphovsrätt (inklusive Ukraina och Ryssland). I vissa länder kan datorprogram skyddas av patent . Patenteringen av datorprogram underlättades av avtalet om handelsrelaterade aspekter av immateriella rättigheter, som fastställde minimikrav [9] för det skyddade utbudet av immateriella rättigheter och faktiskt tillät att programvara patenterades. TRIPS-avtalet är obligatoriskt för genomförande på Ukrainas och Rysslands territorium som WTO-medlemsstater.
Därmed kan ett program skyddas både som ett "litterärt verk" och som en "uppfinning". För att bestämma ordningen för rättsskydd används i det första fallet "kodtexten", i det andra särdragen som används för uppfinningar som föreslås för patentering (det vill säga det är nödvändigt att bevisa "innovativitet", "originalitet" och ”icke självklarhet”, samt möjligheten att lösa ett befintligt tekniskt problem och kommersiell lämplighet) [10] . Samtidigt finns det ett problem med rättslig differentiering av datorprogram från proprietärt digitalt innehåll och proprietär programvara [11] .
Ensamrätten till datorprogram och databaser uppstår automatiskt från det ögonblick de skapades och gäller under hela upphovsmannens liv och sjuttio år, räknat från den 1 januari året efter det år då upphovsmannen (eller upphovsmannens död) avlider. den sista av medförfattarna).
Den nuvarande lagstiftningen i Ryska federationen föreskriver inte patentering av datorprogram som sådana. Dessa immateriella föremål är skyddade av upphovsrätt, som uppstår automatiskt från det ögonblick de skapas och kräver inte obligatorisk statlig registrering. Datorprogram och databaser kan dock registreras hos Rospatent på begäran av upphovsrättsinnehavaren [12] .
Copyright och några andra[ vad? ] immateriella rättigheter tillåter dig att begränsa åtkomsten till källkoden för program.
Ordböcker och uppslagsverk | |
---|---|
I bibliografiska kataloger |
|