C2110 Operační systém UNIX a základy programování P02: Programy vs Skripty -1C2110 Operační systém UNIX a základy programování Petr Kulhánek kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta Masarykova univerzita, Kamenice 5, CZ-62500 Brno PS/2022 Prezenční forma výuky: Rev3 P02: Programy vs Skripty C2110 Operační systém UNIX a základy programování P02: Programy vs Skripty -2Programy vs skripty C2110 Operační systém UNIX a základy programování P02: Programy vs Skripty -3Programy vs Skripty zdrojový kód program vstup výstuppřeklad (kompilace) skript interpreter vstup výstup Program je soubor strojových instrukcí zpracovávaných přímo procesorem. Program vzniká překladem zdrojového kódu programovacího jazyka. Překládané jazyky: C/C++ Fortran Skript je textový soubor obsahující příkazy a řídící sekvence, které jsou vykonávány interpretem použitého skriptovacího jazyka. Skriptovací jazyky: bash gnuplot awk JavaScript PHP python C2110 Operační systém UNIX a základy programování P02: Programy vs Skripty -4A co JAVA? Existují i různé kombinace obou přístupů. Typickým příkladem je programovací jazyk Java. Java bytecode interpreter JVM vstup výstup zdrojový kód překlad (kompilace) Java Virtual Machine interpreter Java bytekódu (program sestavený pro danou platformu – OS a HW) Java bytecode (nezávislý na platformě – OS a HW) C2110 Operační systém UNIX a základy programování P02: Programy vs Skripty -5Programy vs Skripty, ... ➢ nevyžaduje rekompilaci ➢ vytváření samospustitelného kódu ➢ špatná optimalizovatelnost ➢ pomalejší vykonávání ➢ snadná optimalizace ➢ rychlé vykonávání ➢ nutnost rekompilace ➢ nelze vytvářet samospustitelný kód zdrojový kód program vstup výstuppřeklad (kompilace) skript interpreter vstup výstup C2110 Operační systém UNIX a základy programování P02: Programy vs Skripty -6Program v jazyce C #include int main(int argc,char* argv[]) { printf("Tohle je program v jazyce C!\n"); return(0); } Kompilace $ gcc program.c -o program Zdrojový kód Spuštění programu $ ./program kompiler jazyka C název souboru s vytvořeným programem soubor program musí mít práva pro spuštění C2110 Operační systém UNIX a základy programování P02: Programy vs Skripty -7Skript v Bashi #!/bin/bash echo 'Toto je skript v interpretu Bash!' Spuštění skriptu interpret Bash soubor skript.bash nemusí mít práva pro spuštění Skript $ bash skript.bash C2110 Operační systém UNIX a základy programování P02: Programy vs Skripty -8Cvičení 1 1. Vytvořte adresáře s názvy ukol01 a ukol02. 2. Do jednotlivých adresářů uložte postupně soubory program.c (ukol01) a skript.bash (ukol02) z adresáře ~kulhanek/Documents/C2110/02.PROGRAMOVANI/programs. 3. Zkompilujte zdrojové kódy programu napsaného v jazyce C. Ověřte, že vzniklý program lze spustit. 4. Jaká je velikost souboru obsahující výsledný program vzniklý kompilací zdrojového kódu v jazyce C. Otevřete vzniklý soubor v textovém editoru (gedit). Co soubor obsahuje? 5. Ověřte funkčnost skriptu skript.bash jeho spuštěním. 6. Vytvořte kopii souborů s názvy program2.c a skript2.bash. 7. Změňte soubory program2.c a skript2.bash, tak aby výsledný program či skript vypisovaly jiný text. Doporučuji Vám vypracovávané úkoly ukládat do adresářů podle probíraných lekcí: např. Documents/C2110/T05/P02, a podobně.