Zdrojový kód: Porovnání verzí

Z WikiKnihovna
Řádek 12: Řádek 12:
 
Zdrojový kód (z angl. source code) je zápis textu určitého programu v programovacím jazyce. Dle použitého jazyka, který může mít vyšší úroveň (Ada, Basic, C, C#, Pascal, Java atd.), nebo nižší úroveň (assemblery). Zdrojový kód se vždy překládá kompilátorem, assemblerem či překladačem do strojového kódu. Tento program se nachází v binární soustavě a může být přečten procesorem. Různé typy procesorů používají různé typy strojových kódů. <ref> Howto.py: ''Učíme se programovat v jazyce Python'' [online]. [cit. 2013-05-11]. Dostupné z: http://howto.py.cz/cap01.htm </ref>
 
Zdrojový kód (z angl. source code) je zápis textu určitého programu v programovacím jazyce. Dle použitého jazyka, který může mít vyšší úroveň (Ada, Basic, C, C#, Pascal, Java atd.), nebo nižší úroveň (assemblery). Zdrojový kód se vždy překládá kompilátorem, assemblerem či překladačem do strojového kódu. Tento program se nachází v binární soustavě a může být přečten procesorem. Různé typy procesorů používají různé typy strojových kódů. <ref> Howto.py: ''Učíme se programovat v jazyce Python'' [online]. [cit. 2013-05-11]. Dostupné z: http://howto.py.cz/cap01.htm </ref>
  
 +
'''Ukázka zdrojového kodu programovacího jazyka C''' <br>
  
  
= Pojmy spjaté se zdrojovým kódem =
+
/*******************
 +
*  hello. cpp
 +
*  rychlý začátek
 +
*******************/
  
 +
#include <iostream>
 +
using namespace std; // prostor jmen
  
'''Strojový kód'''<br>
+
int main() {
 +
cout << "Ahoj světe! " << endl;
 +
return 0;
 +
} // int main()
  
Každý počítač dokáže zpracovávat jen určitý soubor instrukcí jemu vlastní. (V novější době sdílí často několik příbuzných typů počítačů tentýž strojový kód; mluvíme pak o rodině počítačů).
 
  
Program ve strojovém kódu se skládá z jednoduchých příkazů - instrukcí. Instrukce má většinou dvě základní části - kód operace, který udává, co se má udělat, a adresy (někdy i více adres), který říká, s jakými daty se má operace provést. Instrukce jsou zapsány čísly (navíc zapsanými ve dvojkové či šestnáctkové soustavě), strojový kód je proto pro člověka velmi nesrozumitelný. Z toho důvodu se v něm programuje jen zcela výjimečně.
 
  
'''Zdrojové kódy v nižších programovacích jazycích'''<br>
+
= Pojmy spjaté se zdrojovým kódem =
 
 
U těchto jazyků jsou adresy nahrazeny názvy, každému názvu odpovídá určitá konkrétní adresa, kterou obvykle přiřazuje překladač a ne programátor. Téměř vždy se pro zvýšení srozumitelnosti v symbolickém tvaru zapisují i kódy operací, například instrukce uložení do paměti (store) se zapíše zkratkou ST.
 
 
 
Assemblery jsou daleko nejrozšířenější (v současné době prakticky jediné používané) jazyky nižší úrovně.<br>
 
'''Příklad - fragment programu v assembleru pro PC:'''
 
  
ExcessOfMemory label near
 
    mov bx, di
 
    add bx, dx
 
    mov word ptr _heapbase@ + 2, bx
 
    mov word ptr _brklvl@ + 2, bx
 
    mov ax, _psp@
 
    sub bx, ax ; BX = Number of paragraphs to keep
 
    mov es, ax ; ES = Program Segment Prefix address
 
    mov ah, 04Ah
 
    push di ; preserve DI
 
    int 021h ; this call clobbers SI,DI,BP !!!!!!
 
    pop di ; restore DI <ref>Fi.muni: ''Od strojového kódu k programovacím jazykům''. [online]. [cit. 2013-05-11]. Dostupné z: http://www.fi.muni.cz/usr/jkucera/pv109/sl5.htm</ref>
 
   
 
'''Zdrojový kód jazyka vyssi urovne - jazyk C'''<br>
 
  
  1: /*------------------------------------------------*/
+
'''Assemblery''' - jazyky nižší úrovně, které jsou silně spjaty se strojovým jazykem. Místo fyzických adres se používají symbolické adresy. Strojové povely se zadávají skrz mnemoniksy (zkratky z písem). <br>
  2: /* hello.c                                        */
 
  
  4: #include <stdio.h>
+
'''Jazyky nižší úrovně''' - tyto jazyky se od sebe liší svou syntaxí a klíčovými slovy. <br>
  
  6: int main(void)
+
'''Překladač''' - překládá zdrojový kód programovacího jazyka do strojového kódu. V širším pojetí se zde překládá počítačový jazyk do dvojkové soustavy. Každý programovací jazyk má svůj překladač. <br>
  7: {
 
  8:    printf("Hello World\n");
 
  9:    return 0;
 
10: }
 
11: /*------------------------------------------------*/<ref>Sallyx: Jak vzniká program. [online]. [cit. 2013-05-11]. Dostupné z: http://www.sallyx.org/sally/c/c03.php</ref>
 
  
 +
'''Kompilátor''' - načítá text ze zdrojového souboru a překládá jej do formy lehce spustitelného programu. <br>
 +
Kompilace má tři fáze : <br>
 +
1, slovníkovou analýzu, která se zaměřuje na klíčová slova ve zdrojovém kódu <br>
 +
2, sémantickou analýzu, kde se kontroluje platnost instrukcí <br>
 +
3, generaci kódu, kde se hodnotí datové struktury z analýz do strojových instrukcí <br>
  
  
Řádek 62: Řádek 49:
 
= Otevřený zdrojový kód =
 
= Otevřený zdrojový kód =
  
Otevřený zdrojový kód znamená, že zdrojový kód softwaru je přístupný pro všechny, je legální, a je napsán tak, aby ho mohli používat a měnit ostatní uživatelé. Software s touto vlastností hraje významnou roli ve vyvíjení nových aplikací, ale i webových prohlížečů. Nejznámější prohlížeč s otevřeným zdrojovým kódem je Mozilla Firefox, který s ním přišel jako první, a tím vydláždil cestu pro inovace nových prohlížečů. Některé jeho prvky byly použity při vývoji Google Chrome, který má rovněž otevřený zdrojový kód. Mezi další známé aplikace s otevřeným zdrojovým kódem patří i server Apache HTTP <ref>20thingsilearned: ''Otevřený zdrojový kód a prohlížeče''. [online]. [cit. 2013-05-11]. Dostupné z: http://www.20thingsilearned.com/cs-CZ/open-source</ref>, operační systém Android, 3D grafický editor Blender, protokol Miranda, grafický editor Inkscape a Gimp, atd. <ref>Mashable: ''OPEN SOURCE GOD: 480+ Open Source Applications''. [online]. [cit. 2013-05-11]. Dostupné z: http://mashable.com/2007/09/23/open-source/</ref> Operační systém Linux má taktéž otevřený zdrojový kód. Mezi jeho výhody patří, že je moderní, není do něj potřeba instalovat antivirové programy, je zdarma a v češtině. Svůj základ má v dalším operačním systému - UNIX. <ref>Linux [online]. [cit. 2013-05-11]. Dostupné z: http://www.linux.cz/</ref>
+
Historie otevřeného zdrojového kódu začíná v 80. letech, kdy byl nadací Free Software Foundation (FSF) vytvořen projekt GNU, který měl sloužit jako alternativa k vývoji softwaru. Pojem GNU je akronym a znamená "GNU není Unix". GNU mělo poskytovat uživatelům svobodný software, který by je neomezoval v jeho používání. Každý uživatel tohoto softwaru může získat jeho zdrojový kód a pokud bude dodržovat jeho licenci, tak s ním může zacházet dle vlastního uvážení. Proti nadaci FSF vznikla iniciativa Open Source Initiative (OSI). Této iniciativě jde o to, aby byl zdrojový kód dostupný, aby byly přes tvořeny lepší aplikace, a hlavně aby bylo možné nalézt chyby v programech. Pro opravu chyb ve zdrojových kódech se používají  patche (záplaty), které se zasílají původním tvůrcům. Záplaty vznikají tím, že se vygeneruje soubor patche programem diff. Ten umožňuje používat různé formáty. <br>
  
  

Verze z 12. 6. 2013, 19:47

Autor: Renáta Šajnarová

Klíčová slova: zdrojový kód, otevřený zdrojový kód
Nadřazená slova: zdrojový kód, strojový kód, otevřený zdrojový kód
Podřazená slova: jazyky nižší úrovně, jazyky vyšší úrovně, překladač, kompilátor



Charakteristika

Zdrojový kód (z angl. source code) je zápis textu určitého programu v programovacím jazyce. Dle použitého jazyka, který může mít vyšší úroveň (Ada, Basic, C, C#, Pascal, Java atd.), nebo nižší úroveň (assemblery). Zdrojový kód se vždy překládá kompilátorem, assemblerem či překladačem do strojového kódu. Tento program se nachází v binární soustavě a může být přečten procesorem. Různé typy procesorů používají různé typy strojových kódů. [1]

Ukázka zdrojového kodu programovacího jazyka C


/*******************

  • hello. cpp
  • rychlý začátek
                                      • /
  1. include <iostream>

using namespace std; // prostor jmen

int main() {

cout << "Ahoj světe! " << endl;
return 0;

} // int main()


Pojmy spjaté se zdrojovým kódem

Assemblery - jazyky nižší úrovně, které jsou silně spjaty se strojovým jazykem. Místo fyzických adres se používají symbolické adresy. Strojové povely se zadávají skrz mnemoniksy (zkratky z písem).

Jazyky nižší úrovně - tyto jazyky se od sebe liší svou syntaxí a klíčovými slovy.

Překladač - překládá zdrojový kód programovacího jazyka do strojového kódu. V širším pojetí se zde překládá počítačový jazyk do dvojkové soustavy. Každý programovací jazyk má svůj překladač.

Kompilátor - načítá text ze zdrojového souboru a překládá jej do formy lehce spustitelného programu.
Kompilace má tři fáze :
1, slovníkovou analýzu, která se zaměřuje na klíčová slova ve zdrojovém kódu
2, sémantickou analýzu, kde se kontroluje platnost instrukcí
3, generaci kódu, kde se hodnotí datové struktury z analýz do strojových instrukcí


Otevřený zdrojový kód

Historie otevřeného zdrojového kódu začíná v 80. letech, kdy byl nadací Free Software Foundation (FSF) vytvořen projekt GNU, který měl sloužit jako alternativa k vývoji softwaru. Pojem GNU je akronym a znamená "GNU není Unix". GNU mělo poskytovat uživatelům svobodný software, který by je neomezoval v jeho používání. Každý uživatel tohoto softwaru může získat jeho zdrojový kód a pokud bude dodržovat jeho licenci, tak s ním může zacházet dle vlastního uvážení. Proti nadaci FSF vznikla iniciativa Open Source Initiative (OSI). Této iniciativě jde o to, aby byl zdrojový kód dostupný, aby byly přes tvořeny lepší aplikace, a hlavně aby bylo možné nalézt chyby v programech. Pro opravu chyb ve zdrojových kódech se používají patche (záplaty), které se zasílají původním tvůrcům. Záplaty vznikají tím, že se vygeneruje soubor patche programem diff. Ten umožňuje používat různé formáty.


Citace

  1. Howto.py: Učíme se programovat v jazyce Python [online]. [cit. 2013-05-11]. Dostupné z: http://howto.py.cz/cap01.htm