Forráskód (programozás)
| Ez a szócikk nem tünteti fel a független forrásokat, amelyeket felhasználtak a készítése során. Emiatt nem tudjuk közvetlenül ellenőrizni, hogy a szócikkben szereplő állítások helytállóak-e. Segíts megbízható forrásokat találni az állításokhoz! Lásd még: A Wikipédia nem az első közlés helye. |

Az informatikában forráskódon (angolul: source code) egy olyan szöveg értendő, ami egy leíró nyelv jelöléseinek vagy egy programozási nyelv definícióinak és/vagy utasításainak sorozatát tartalmazza. Az elnevezés arra utal, hogy az ilyen szövegek létrehozásának a célja az, hogy forrásai legyenek egy fordítóprogramnak vagy interpreternek, és végül megjelenjen valamilyen dokumentum, vagy létrejöjjön egy szoftver.
Leíró nyelv például a HTML, CSS, TeX és SVG, programozási nyelvek például a JavaScript, C, C++, Pascal, Assembly, BASIC, Python, Haskell.
Programok forráskódja
[szerkesztés | forrásszöveg szerkesztése]Az ember által elkészített program − nyelvtől és környezettől függően − kétféleképpen válhat futó programmá: fordítás után vagy interpretálással.
Fordításnak nevezzük azt, amikor az ember által olvasható utasításokból másik program lesz. Ennek a folyamatnak egyik fontos lépését a fordítóprogram (compiler) végzi, aminek a bemenete (forrása) a fent említett utasítássorozat, kimenete lehet processzor illetve operációs rendszer által közvetlenül futtatható gépi kód (avagy natív bináris) vagy valamilyen köztes programozási vagy bináris nyelv (bájtkód). A köztes programozási nyelvet jellemzően tovább fordítják binárissá, hogy a program futtatható legyen, a bájtkódot pedig interpretálással futtatják.
Interpretált nyelveknél az interpreter (program) futtatókörnyezetként (esetleg virtuális gépként) viselkedik a forráskód számára, azaz saját maga hajtja végre a forrásállományból kiolvasott parancsoknak megfelelő műveleteket.
Tárolás
[szerkesztés | forrásszöveg szerkesztése]- A forráskódokat rendszerint fájlokban tárolják, melyeket könyvtárhierarchiába szerveznek.
- Az adatbázisokhoz tartozó tárolt eljárások az adatbázist tartalmazó adatbázis szerverben vannak eltárolva, ahonnan interpretálással közvetlenül futtathatóak. Ezeket rendszerint külön fájlban is el szokták tárolni.
- Verziókezelő rendszerekben, ahonnan fordítás előtt kikérik majd helyben fordítják.
- Ezen túlmenően a forráskód bárhol és bármilyen formában tárolható, ha végül a futtatókörnyezet vagy a fordítóprogram rendelkezésére bocsátható.
Csapatmunka, verziókövetés
[szerkesztés | forrásszöveg szerkesztése]Csapatmunka során több ember dolgozik ugyanazon a projekten vagy programon. Mindenki ismeri a forráskódot, de több résztvevője van a programozásnak. A forráskódot legtöbbször egy verziókezelő rendszerben tárolják, amelyhez a résztvevők hozzáférnek, szerepük szerint különféle jogokkal.
Létrehozás
[szerkesztés | forrásszöveg szerkesztése]A forráskódot általában emberek hozzák létre, egyszerűen begépelve az adott szöveget egy szövegfájlba. A programozók erre általában speciális szövegszerkesztőt használnak, amelyik például segíti navigálni a kódban.
Más esetekben egy kódgenerátor generálja valamilyen más információból, például UML-ben megadott szerkezet, vagy például valamilyen párbeszédpanel-szerkesztőben megadott elemek alapján, vagy éppen egy fordítóprogram hozza létre egy másik forráskódból. Néhány esetben lehetőség van arra is, hogy a lefordított tárgykódból valamilyen eljárással többé-kevésbé visszakapjuk a kiindulási forráskódot: ez a reverse engineering.
Minősége
[szerkesztés | forrásszöveg szerkesztése]Egy program forráskódjának minősége komoly befolyással van a karbantarthatóságára. Éppen ezért sok és sokféle programozói stíluskalauz (style guide) létezik, ami mind arra hivatott, hogy fenntartsa a forráskód jó minőségét.
Egy szoftver forrása
[szerkesztés | forrásszöveg szerkesztése]Egy szoftvert több lépésen keresztül építenek fel különféle automatikus eszközök (fordító, linker stb.), egy halmaz kiindulási (forrás) fájlból. Ennek a legfontosabb elemei azok a fájlok, amik a forráskódot tartalmazzák. Más elemek például a szükséges ikonok, párbeszédpanelek leírását tartalmazzák vagy éppen a szoftver felépítésének a menetét a forrásból (makefile).
Összefoglalóan ezeket a fájlokat szokás egy szoftver forrásának nevezni. Mivel ezek nem állíthatók elő más fájlokból automatikusan, belőlük viszont elkészíthető a szoftver, ezért nagy értéket képviselnek. Ezért minden szoftvercég egyik legféltettebb kincse a szoftvereinek a forrása.
Kapcsolódó szócikkek
[szerkesztés | forrásszöveg szerkesztése]Irodalom
[szerkesztés | forrásszöveg szerkesztése]- Ablon, Lillian; Bogart, Andy (2017). Zero Days, Thousands of Nights: The Life and Times of Zero-Day Vulnerabilities and Their Exploits (PDF) (angol nyelven). Rand Corporation. ISBN 978-0-8330-9761-3.
- Boyle, James (2003). "The Second Enclosure Movement and the Construction of the Public Domain". Law and Contemporary Problems. 66 (1): 33–74. ISSN 0023-9186.
- Campbell-Kelly, Martin; Garcia-Swartz, Daniel D. (2015). From Mainframes to Smartphones: A History of the International Computer Industry (angol nyelven). Harvard University Press. ISBN 978-0-674-28655-9.
- Daswani, Neil; Elbayadi, Moudy (2021). Big Breaches: Cybersecurity Lessons for Everyone. Apress. ISBN 978-1-4842-6654-0.
- Dooley, John F. (2017). Software Development, Design and Coding: With Patterns, Debugging, Unit Testing, and Refactoring (angol nyelven). Apress. ISBN 978-1-4842-3153-1.
- Foster, Elvis C. (2014). Software Engineering: A Methodical Approach (angol nyelven). Apress. ISBN 978-1-4842-0847-2.
- Gabbrielli, Maurizio; Martini, Simone (2023). Programming Languages: Principles and Paradigms (angol nyelven) (2nd ed.). Springer. ISBN 978-3-031-34144-1.
- Galin, Daniel (2018). Software Quality: Concepts and Practice (angol nyelven). John Wiley & Sons. ISBN 978-1-119-13449-7.
- Haber, Morey J.; Hibbert, Brad (2018). Asset Attack Vectors: Building Effective Vulnerability Management Strategies to Protect Organizations (angol nyelven). Apress. ISBN 978-1-4842-3627-7.
- Kaczmarek, Stefan; Lees, Brad; Bennett, Gary; Fisher, Mitch (2018). Objective-C for Absolute Beginners: iPhone, iPad and Mac Programming Made Easy (angol nyelven). Apress. ISBN 978-1-4842-3428-0.
- Katyal, Sonia K. (2019). "The Paradox of Source Code Secrecy". Cornell Law Review. 104: 1183.
- Kitchin, Rob; Dodge, Martin (2011). Code/space: Software and Everyday Life (angol nyelven). MIT Press. ISBN 978-0-262-04248-2.
- Lin, Daniel; Sag, Matthew; Laurie, Ronald S. (2001). "Source Code versus Object Code: Patent Implications for the Open Source Community". Santa Clara Computer and High Technology Law Journal. 18: 235.
- Morin, Andrew; Urban, Jennifer; Sliz, Piotr (2012). "A Quick Guide to Software Licensing for the Scientist-Programmer". PLOS Computational Biology (angol nyelven). 8 (7) e1002598. Bibcode:2012PLSCB...8E2598M. doi:10.1371/journal.pcbi.1002598. ISSN 1553-7358. PMC 3406002. PMID 22844236.
- O'Regan, Gerard (2022). Concise Guide to Software Engineering: From Fundamentals to Application Methods (angol nyelven). Springer Nature. ISBN 978-3-031-07816-3.
- Sen, Ravi; Subramaniam, Chandrasekar; Nelson, Matthew L. (2008). "Determinants of the Choice of Open Source Software License". Journal of Management Information Systems. 25 (3). Informa UK Limited: 207–240. doi:10.2753/mis0742-1222250306. ISSN 0742-1222.
- Sebesta, Robert W. (2012). Concepts of Programming Languages (angol nyelven) (10 ed.). Addison-Wesley. ISBN 978-0-13-139531-2.
- Tracy, Kim W. (2021). Software: A Technical History (angol nyelven). Morgan & Claypool Publishers. ISBN 978-1-4503-8724-8.
- Tripathy, Priyadarshi; Naik, Kshirasagar (2014). Software Evolution and Maintenance: A Practitioner's Approach (angol nyelven). John Wiley & Sons. ISBN 978-0-470-60341-3.
- Varga, Ervin (2018). Unraveling Software Maintenance and Evolution: Thinking Outside the Box (angol nyelven). Springer. ISBN 978-3-319-71303-8.