Forráskód - Source code

Egyszerű C-nyelvű forráskód-példa, eljárási programozási nyelv . A kapott program "hello, world" -t nyomtat a számítógép képernyőjén. Ez az első ismert " Hello world " részlet a C programozási nyelv című könyvből : Brian Kernighan , a Bell Laboratories -ból származik 1974 -ben.

A számítástechnika , a forráskód bármely gyűjteménye kódot, vagy anélkül megjegyzéseket írt egy ember által olvasható programozási nyelv , általában egyszerű szöveges . A forráskód a program kifejezetten, hogy megkönnyítse a munkáját számítógép programozók , akik meghatározzák a végrehajtandó műveletek számítógépes többnyire írásban forráskódot. A forráskódot gyakran egy összeszerelő vagy fordító bináris gépi kódgá alakítja át, amelyet a számítógép végrehajthat. A gépi kód ezután tárolható későbbi végrehajtásra . Alternatív megoldásként a forráskód értelmezhető és így azonnal végrehajtható.

A legtöbb szoftvert olyan formában terjesztik, amely csak végrehajtható fájlokat tartalmaz. Ha a forráskód szerepelne, hasznos lenne egy felhasználónak , programozónak vagy rendszergazdának , akik közül bármelyik tanulmányozni vagy módosítani szeretné a programot.

A forráskód a Code példánya . Hasonlítsa össze a genetikai kóddal , a törvénykönyvvel és a nyelvvel .

Definíciók

A Linux Information Project a következőképpen határozza meg a forráskódot:

A forráskód (más néven forrás vagy kód) a szoftver azon verziója, amelyet az ember eredetileg írt (azaz számítógépbe írt) egyszerű szövegben (azaz ember által olvasható alfanumerikus karakterekben).

A forráskód fogalmát tágabb értelemben is fel lehet venni, ideértve a gépi kódot és a grafikus nyelveken lévő jelöléseket, amelyek egyike sem szöveges jellegű. Példa az éves IEEE konferenciáról és a forráskód -elemzésről és -manipulációról bemutatott cikkből:

Az egyértelműség kedvéért a "forráskód" alatt a szoftverrendszer teljes mértékben végrehajtható leírását értjük. Ezért úgy van értelmezve, hogy tartalmazza a gépi kódot, a nagyon magas szintű nyelveket és a rendszerek végrehajtható grafikus ábrázolásait.

Gyakran előfordul, hogy a program fordításának vagy kicsinyítésének több lépése van az ember által gépelt eredeti forráskód és a végrehajtható program között. Míg egyesek, mint például az FSF , azzal érvelnek, hogy egy köztes fájl "nem valódi forráskód, és nem számít forráskódnak", mások kényelmesnek találják, ha az egyes köztes fájlokat forráskódként hivatkoznak a következő lépésekre.

Történelem

A tárolt programú számítógépek legkorábbi programjai a számítógép előlapi kapcsolóin keresztül binárisan kerültek bevitelre . Ez az első generációs programozási nyelv nem tett különbséget a forráskód és a gépi kód között .

Amikor az IBM először felajánlotta a szoftvert, hogy működjön együtt a gépével, a forráskódot további költségek nélkül adták meg. Abban az időben a szoftver fejlesztésének és támogatásának költségeit a hardver ára tartalmazza. Az IBM évtizedekig terjesztette a forráskódot a szoftver terméklicenceivel, egészen 1983 -ig.

A legtöbb korai számítógépes magazin közzétett forráskódot típusú programok .

Előfordul, hogy egy nagy program teljes forráskódját keménykötésű könyvként teszik közzé, például: Computers and Typesetting , vol. B: TeX, The Program by Donald Knuth , PGP Source Code and Internals by Philip Zimmermann , PC SpeedScript by Randy Thompson , and μC/OS, The Real-Time Kernel by Jean Labrosse.

Szervezet

A programot alkotó forráskódot rendszerint a számítógép merevlemezén tárolt egy vagy több szövegfájl tartalmazza ; általában ezeket a fájlokat gondosan egy könyvtárfába rendezik , amelyet forrásfának neveznek . A forráskód adatbázisban is tárolható (ahogy az a tárolt eljárásoknál gyakori ) vagy máshol.

Egy összetettebb Java forráskód példa. Objektum-orientált programozási stílusban írva bemutatja a kazánlemez kódját . A prológus megjegyzéseket pirossal jelöltük, a soron belüli megjegyzéseket zölddel jelöltük, és a program nyilatkozatokat kékkel jelöltük.

Egy adott szoftver forráskódja egyetlen fájlban vagy sok fájlban lehet. Bár a gyakorlat nem gyakori, a program forráskódja különböző programozási nyelveken írható. Például egy olyan programban, amely elsősorban C programozási nyelven íródott, előfordulhat, hogy az optimalizálás érdekében a részek összeállítási nyelven íródnak . Az is lehetséges, hogy egy szoftver egyes összetevőit külön -külön, tetszőleges programozási nyelven írják meg és fordítják le, majd később integrálják a szoftverbe a könyvtár összekapcsolása nevű technikával . Bizonyos nyelveken, mint például a Java , ez futási időben is elvégezhető (minden osztály külön fájlba kerül összeállításra, amelyet a tolmács futtatás közben linkel).

Egy másik módszer az, hogy a főprogramot egy programozási nyelv tolmácsává kell tenni, akár kifejezetten a szóban forgó alkalmazáshoz, akár általános célra, majd a tényleges felhasználói funkciók nagy részét makróként vagy egyéb bővítményként írják be ebbe nyelv, ez a megközelítés például a GNU Emacs szövegszerkesztője.

Az alapkód egy számítógépes programozási projekt a nagyobb gyűjtemény valamennyi forráskód minden számítógépes programok , amelyek a projektet. Általános gyakorlattá vált a kódbázisok fenntartása a verziókezelő rendszerekben . A közepesen bonyolult szoftverek általában több, néha tucat, vagy akár több száz különböző forráskód fájl összeállítását vagy összeállítását igénylik. Ezekben az esetekben a fordítási utasításokat, például a Makefile -t , a forráskód tartalmazza. Ezek leírják a forráskód fájlok közötti programozási kapcsolatokat, és információkat tartalmaznak azok összeállításáról.

Célok

A forráskódot elsősorban a végrehajtható programot előállító folyamat bemeneteként használják (azaz lefordítják vagy értelmezik ). Emellett az emberek közötti algoritmusok kommunikációs módszereként is használható (pl. Kódrészletek a könyvekben).

A számítógépes programozók gyakran hasznosnak találják a meglévő forráskód áttekintését a programozási technikák megismerése érdekében. A forráskód megosztását a fejlesztők között gyakran emlegetik programozási ismereteik érésének hozzájáruló tényezőjeként. Vannak, akik a forráskódot kifejező művészi közegnek tartják .

A szoftver más számítógépes platformokra történő átvitele forráskód nélkül általában rendkívül nehéz. Egy adott szoftver forráskódja nélkül a hordozhatóság általában számításilag drága. A lehetséges hordozási lehetőségek közé tartozik az eredeti platform bináris fordítása és emulálása.

Visszafejtésre egy végrehajtható program létrehozásához használt forráskódot, akár assembly kódot , vagy egy magas szintű nyelv .

A programozók gyakran adaptálják az egyik szoftver forráskódját más projektekben való használatra, ezt a fogalmat szoftver újrafelhasználhatóságnak nevezik .

Jogi szempontok

A helyzet világszerte változó, de az Egyesült Államokban 1974 előtt a szoftver és annak forráskódja nem volt szerzői joggal védett , ezért mindig közkincs szoftver .

1974 -ben a szerzői joggal védett művek új technológiai felhasználásáról szóló amerikai bizottság (CONTU) úgy határozott, hogy "a számítógépes programok, amennyiben a szerző eredeti alkotását testesítik meg, a szerzői jog megfelelő tárgyát képezik".

1983 -ban az Egyesült Államokban az Apple kontra Franklin bírósági ügyben úgy ítélték meg, hogy ugyanez vonatkozik az objektumkódra is ; és hogy a szerzői jogi törvény a számítógépes programok számára az irodalmi művek szerzői jogi státuszát biztosította.

1999 -ben az Egyesült Államokban a Bernstein kontra Egyesült Államok bírósági ügyben úgy ítélték meg, hogy a forráskód a szólásszabadság alkotmányosan védett formájának tekinthető . A szólásszabadság hívei azzal érveltek, hogy mivel a forráskód információt közvetít a programozóknak, nyelven íródott, és humorral és más művészeti elfoglaltságokkal is megosztható, ez a kommunikáció védett formája.

Engedélyezés

Példa a szerzői jogi megjegyzésre:

Szerzői jog [éééé] [a szerzői jog tulajdonosának neve]

Licenc az Apache License 2.0 verziója (a továbbiakban: „Licenc”); ezt a fájlt csak a Licencnek megfelelően használhatja. A Licenc másolatát a következő címen szerezheti be

http://www.apache.org/licenses/LICENSE-2.0

Hacsak a vonatkozó jogszabályok nem írják elő, vagy írásban nem állapodnak meg, a Licenc alapján terjesztett szoftvereket "AHOGYAN" ALAPJÁN terjesztik, GARANCIÁK VAGY BÁRMILYEN FELTÉTEL nélkül, akár kifejezetten, akár hallgatólagosan. Tekintse meg a Licencben a Licenc szerinti engedélyekre és korlátozásokra vonatkozó konkrét nyelvet.

Egy nem triviális mű, például a szoftver szerzőjének számos kizárólagos joga van , köztük a forráskód és az objektumkód szerzői joga . A szerző joga és lehetősége, hogy megadja az ügyfelek és a felhasználók saját szoftver néhány saját kizárólagos jogok formájában szoftverlicencek . A szoftver és a hozzá tartozó forráskód számos licencparadigmához társítható; a legfontosabb különbség a szabad szoftver és a szabadalmazott szoftver között van . Ez úgy történik, hogy szerzői jogi megjegyzést tartalmaz, amely a licencfeltételeket deklarálja. Ha nem talál értesítést, akkor a Minden jog fenntartva alapértelmezésre vonatkozik.

Általánosságban elmondható, hogy a szoftver akkor ingyenes szoftver, ha a felhasználók szabadon használhatják azt bármilyen célra, tanulmányozhatják és megváltoztathatják a forráskódját, megadhatják vagy eladhatják a pontos másolatait, és megadhatják vagy eladhatják a módosított példányokat. A szoftver akkor védett, ha a forráskód titokban tartása alatt terjesztik, vagy magántulajdonban van és korlátozva van. Az egyik első szoftverlicenc, amelyet közzétettek és kifejezetten megadták ezeket a szabadságokat, a GNU General Public License volt 1989 -ben; a BSD licenc egy másik korai példa 1990 -ből.

A szabadalmazott szoftverek esetében a különböző szerzői jogi törvények, üzleti titok és szabadalmak rendelkezései szolgálnak a forráskód zárva tartására. Továbbá, sok darab kiskereskedelmi szoftver jön egy EULA (EULA), amely jellemzően tiltja dekompilálása , reverse engineering , elemzése, átalakítása, vagy megkerülésével a másolásvédelem . A forráskód -védelem típusai - a hagyományos fordításon túl az objektumkódig - magukban foglalják a kód titkosítását, a kód elhomályosítását vagy a kód morfizálását .

Minőség

A program megírásának módja fontos következményekkel járhat a fenntartói számára. A kódolási konvenciók , amelyek hangsúlyozzák az olvashatóságot, és néhány nyelvspecifikus konvenció, a szoftver forráskódjának karbantartására irányulnak, amely magában foglalja a hibakeresést és a frissítést . Más prioritások, mint például a program végrehajtásának sebessége, vagy a program összeállításának képessége több architektúrára, gyakran kevésbé fontos szempontnak tartják a kód olvashatóságát, mivel a kód minősége általában a céljától függ .

Lásd még

Hivatkozások

Források

Külső linkek