Cílem kapitoly je seznámit studenta se strukturou programu a jeho překladem.



Podobné dokumenty
Úvod Petr Kropík viz:

3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java

Algoritmizace a programování

Obsah. Obsah. Úvod Makra v Excelu Nahrávání maker První setkání s editorem jazyka Visual Basic... 31

Prostory jmen. #include<iostream.h> namespace RadimuvProstor { int secti(int a, int b); class Trida { private: int Atribut; public: void metoda();

Algoritmizace a programování

Obsah. Úvodem 9 Komu je kniha určena 9 Forma výkladu 9 Konkrétní postup výuky 10 Příklady ke knize 11

Rozhodněte se, co budete dál dělat

Programování - úvod. Programování. Proces programování. Vlastnosti dobrého programu: Kapitola seznamuje se základními pojmy programování.

6. HODNOCENÍ ŽÁKŮ A AUTOEVALUACE ŠKOLY

Charakteristika kurzu BE4

Úvod do jazyka C. Proč jazyk C

Algoritmus (nebo dřívějším pravopisem algorithmus)

Slovní úlohy vedoucí na lineární rovnice I

Tekla Structures Multi-user Mode

Kreativní malování. s dětmi. Dana Cejpková

Marketing. Modul 7 Internetový marketing

METODIKA DODRŽOVÁNÍ PRINCIPŮ ÚČELNOSTI, HOSPODÁRNOSTI A EFEKTIVNOSTI PŘI HOSPODAŘENÍ S VEŘEJNÝMI PROSTŘEDKY NÁVRH

které je třeba si položit před zakoupením levného CAD programu

1.2.5 Reálná čísla I. Předpoklady:

Marketing. Modul 5 Marketingový plán

Seznámení žáků s pojmem makra, možnosti využití, praktické vytvoření makra.

Zvyšování kvality výuky v přírodních a technických oblastech CZ.1.07/1.128/ Nástrahy virtuální reality (pracovní list)

STŘEDOŠKOLSKÁ ODBORNÁ ČINNOST. Chemické výpočty. Aleš Kajzar Martin Honka

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

KDirSign / KDirVerify, podrobny ná vod

Školní řád ZŠ a MŠ Chalabalova 2 pro školní rok

Zákon o elektronickém podpisu

Řízení kalibrací provozních měřicích přístrojů

Rozšířená nastavení. Kapitola 4

Vyhláška č. 294/2015 Sb., kterou se provádějí pravidla provozu na pozemních komunikacích

1.2.7 Druhá odmocnina

POPIS REALIZACE POSKYTOVÁNÍ SOCIÁLNÍCH SLUŽEB Sociální rehabilitace Třinec

téma: Formuláře v MS Access

Kdy (ne)testovat web oční kamerou

V této části manuálu bude popsán postup jak vytvářet a modifikovat stránky v publikačním systému Moris a jak plně využít všech možností systému.

STANDARD 3. JEDNÁNÍ SE ZÁJEMCEM (ŽADATELEM) O SOCIÁLNÍ SLUŽBU

ZÁKLADNÍ POVINNOSTI DOPRAVCE I PRÁCI S DATY Z DIGITÁLNÍHO TACHOGRAFU

Obsah 1. Grafický manuál firmy 2. Podklady grafického manuálu 3. Varianty loga 4. Logo a logotyp

Zaměstnání a podnikání, hrubá a čistá mzda.

S T A N D A R D S A M O S T A T N É

VZDĚLÁVACÍ MATERIÁL III/2 (DUM)

Etiketa v podnikání a písemném styku. Ing. Zlatko Tvrdoň

Outlook manuál. BeeOnline. Rychlý kontakt:

Příloha č. 54. Specifikace hromadné aktualizace SMS-KLAS

Organizační řád základní školy

Dříve než začnete kácet stromy na své zahradě nebo dvorku, přečtěte si pár vložených informací:

Co najdete v ASPI? (pro uživatele SVI FSE UJEP)

METODICKÝ POKYN - DEFINICE MALÝCH A STŘEDNÍCH PODNIKŮ

29 Evidence smluv. Popis modulu. Záložka Evidence smluv

Manuál Kentico CMSDesk pro KDU-ČSL

( x ) 2 ( ) Další úlohy s kvadratickými funkcemi. Předpoklady: 2501, 2502

M. Balíková, R. Záhořík, NK ČR 1

primární tlačítko (obvykle levé). Klepnutí se nejčastěji používá k výběru (označení) položky nebo k otevření nabídky.

Databáze invazivních vstupů jako zdroj dat pro účinnou kontrolu infekcí

Zdravotní nauka 2. díl

The University of Plymouth

Tvorba webových stránek

Plánování a organizace práce podle Denig-Holmsové

Na následující stránce je poskytnuta informace o tom, komu je tento produkt určen. Pro vyplnění nového hlášení se klikněte na tlačítko Zadat nové

Jak jednat. se stavebním úřadem. Michal Lalík. e s. stavebnímu zákonu z praxe

Podmínky užití webového rozhraní

Obsah. Obsah. Úvod... 7

Seznamka. Adéla Hrubá Zš Bří Jandusů 8.A Prosinec 2015

Spolupráce škol a orgánu sociálně-právní ochrany dětí

obecně závazné vyhlášky o vedení technické mapy obce A. OBECNÁ ČÁST Vysvětlení navrhované právní úpravy a jejích hlavních principů

NÁVOD K OBSLUZE MODULU VIDEO 64 ===============================

TVORBA MULTIMEDIÁLNÍCH PREZENTACÍ. Mgr. Jan Straka

Maturitní otázka - optimalizace webových stránek

TIP: Pro vložení konce stránky můžete použít klávesovou zkratku CTRL + Enter.

EXPERTNÍ POSUDEK Doc. RNDr. Martin Ouředníček, Ph.D. Stručný výtah z posudku.

účetních informací státu při přenosu účetního záznamu,

Koučování PER Personální management

Miroslav Kunt. Srovnávací přehled terminologie archivních standardů ISAD(G), ISAAR(CPF) a české archivní legislativy

HPN. projekt. s.r.o. OBEC STARÉ MĚSTO PASPORT MÍSTNÍCH KOMUNIKACÍ. katastrální území: Staré Město, Petrušov, Radišov

-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy

OBEC HORNÍ MĚSTO Spisový řád

Všeobecné obchodní podmínky portálu iautodíly společnosti CZ-Eko s.r.o.

Zodpovědné podniky Dotazník pro zvýšení informovanosti

Programový komplet pro evidence provozu jídelny v modul Sklad Sviták Bechyně Ladislav Sviták hotline: 608/

Pokyny k vypracování absolventské práce ZŠ a MŠ Kladno, Vodárenská 2115

Příspěvky poskytované zaměstnavatelům na zaměstnávání osob se zdravotním postižením Dle zákona č. 435/2004 Sb., o zaměstnanosti, v platném znění.

VOLITELNÉ PŘEDMĚTY Pojetí vyučovacího předmětu Etika a etiketa

Zálohování a obnova Uživatelská příručka

Marketing. Modul 3 Zásady marketingu

S_5_Spisový a skartační řád

Záloha a obnovení Uživatelská příručka

Výzva k podání nabídek (zadávací dokumentace)

Jak na KOTLÍKOVÉ DOTACE? JEDNODUCHÝ RÁDCE PRO ZÁKAZNÍKY

Zapamatujte si: Žijeme ve vibračním Vesmíru, kde vládne Zákon Přitažlivosti.

Zabezpečení cloudové infrastruktury

AutoCAD Architecture 2008

Projekt Odyssea,

ODPOVĚDI KOMISE NA VÝROČNÍ ZPRÁVU ÚČETNÍHO DVORA ZA ROK 2011 KAPITOLA 6 ZAMĚSTNANOST A SOCIÁLNÍ VĚCI

PŘIJÍMACÍ ŘÍZENÍ. Strana

DATABÁZE DŮLEŽITÉ: Před načtením nové databáze do vaší databáze si prosím přečtěte následující informace, které vám umožní:

Pokyn D Sdělení Ministerstva financí k rozsahu dokumentace způsobu tvorby cen mezi spojenými osobami

Sdružení Petrov, z.s. Stanovy spolku

ČÁST PÁTÁ POZEMKY V KATASTRU NEMOVITOSTÍ

Transkript:

Nadpis kapitoly Cílem kapitoly je seznámit studenta se strukturou programu a jeho překladem. Klíčové pojmy: Překladač, editor, compiler, linker. Úvod Abychom mohly využívat našich napsaných programů, musíme je přeložit. Jazyky jsou proto aby byly blíže nám lidem a umožnili i napsat hodně abstraktní programové konstrukce. Také nám šetří spoustu času, to co by jsme psaly ve strojovém kódu, jde napsat ve vyšším jazyku ve zlomku tohoto času. Překlad jazyka C Způsob zpracování programu v jazyce C Jazyk C je univerzální programovací jazyk nízké úrovně, má velmi úsporné vyjadřování, je strukturovaný, má velká soubor operátorů a moderní datové struktury. Základní zpracování programu v C probíhá několika fázemi schematicky vyjádřenými níže..h.lib Editor Preprocesor Compiler Linker Debuger.C.OBJ.EXE.LIS spuštění Fáze zpracování programu v jazyce C Překladač, kompilátor (compiler) - je program, který vezme zdrojový text programu a přeloží jej do jazyka stroje, což jsou obvykle kódy instrukcí pro daný procesor. Výsledkem tohoto překladu obvykle není spustitelný program, protože v místech kde se volají podprogramů z jiných modulů a knihoven nejsou konkrétní adresy těchto podprogramů, ale pouze značky, které se zpracují později při linkování.

Souborům, které produkuje překladač se říká objektové soubory (nemá to nic společného s objektově orientovaným programováním). Důležitou funkcí překladače je syntaktická kontrola. Sestavovací program, linker - slouží k sestavení samostatně přeložených modulů a knihoven do funkčního celku. Linker do kódu doplní konkrétní adresy podprogramů (statický překlad) nebo kód pro jejich zavolání (při použití dynamických knihoven). Pokud vytváříme spustitelný program (u knihoven to je trochu jinak), linker nakonec doplní do programu kód, který se používá při spuštění programu. Tato část, stejně jako formát použitých statických nebo dynamických knihoven se liší v závislosti na použitém operačním systému a hardwarové platformě. Pokud proto chceme vyrobit spustitelný program pro jinou platformu, musíme u jazyků typu C, C++ provést překlad na zvolené platformě znovu. Debugger - je program pro ladění a hledání chyb v programu. Aby mělo ladění s debuggerem smysl, je obvykle nutné říci překladači, aby do výsledného kódu přidal speciální značky, díky nimž si debugger bude umět spojit konkrétní část binárního kódu programu s konkrétními řádky zdrojového textu. Preprocesor - je speciální program používaný v jazycích C a C++ pro zpracovávání maker a symbolických konstant. Tento program v podstatě provádí pouze textové náhrady definovaných symbolů v textu a umožnuje podmíněný překlad. Příkazy pro preprocessor začínají vždy znakem mřížky (#), například #define nebo #ifndef. Příkazy preprocessoru byste měli používat co nejméně. Další důležité výrazy S těmito výrazy se můžeme setkat při programování, nebo při samotném překladu. Překladač nám usnadňuje práci a zpětnou vazbou nás informuje o nalezených chybách. Assembler - je program pro překlad jazyka symbolických instrukcí do binárního kódu. Někdy bývá nesprávně zaměňován se samotným jazykem symbolických instrukcí, což je vemi nízkoúrovňový jazyk, kde zdrojový kód tvoří posloupnost zkratek instrukcí procesoru. Při velmi speciálních příležitostech lze jazyk symbolických instrukcí kombinovat s kódem v jazyce C. Velmi speciální situace zahrnují přístup k nejnižsím úrovním hardwaru a brutální optimalizace. Při běžném programování se s tím nesetkáte (a ani by to většinou nebylo prospěšné). Syntaktická chyba - je prohřešek proti gramatice programovacího jazyka. Počítač je matematický stroj a vyžaduje naprosto jednoznačný předpis své činnosti. Ve zdrojovém kódu nesmí být žádné syntaktické chyby, aby bylo jednoznačné, co má překladač dělat. Překladač neví, co chcete naprogramovat, proto se nemůže ani pokoušet o opravu vašich chyb, to musíte udělat sami. Mezi syntaktické chyby patří především překlepy, ale může to být také použití nekompatibilních datových typů nebo třeba chybné použití operátorů (např. nemůžete zkoušet násobit textové řetězce). Sémantická chyba - je chyba v logice vašeho programu. Váš program může být syntakticky správný, překladač jej přeloží, linker slinkuje, ale program přesto může

fungovat chybně. Za tyto chyby je vždy zodpovědný programátor a je na něm, aby se jich zbavil. Tyto chyby překladač ani linker neodhalí. Pokud máte štěstí, může na ně překladač nepřímo upozornit pomocí varovných hlášení při překladu. Chybové hlášení - je zpráva, kterou vám překladač nebo linker sdělují, proč nelze z vašeho kódu vytvořit spustitelný program. Tato zpráva obvykle obsahuje jméno souboru a číslo řádku, kde se chyba nachází. Pozor! V jazyce C může někdy překladač odhalit chybu na jiném řádku, než je skutečná příčina. Pokud se vám označené číslo řádku nezdá, zkuste hledat chybu i několik řádků okolo. Abyste mohli co nejlépe lokalizovat své chyby, pište na každý řádek zdrojového textu maximálně jeden příkaz. Usnadníte si tím nejen lokalizaci chyb, ale i ladění. Chybové hlášení obsahuje také vysvětlení, co je podle překladače špatně. Varovné hlášení - je upozornění, kterým vám překladač nebo linker dávají najevo, že váš program sice možná jde přeložit, ale že obsahuje podezřelé konstrukce, které mohou naznačovat závažnější problém. Moudrý programátor věnuje varovným hlášením překladače náležitou pozornost. Vaší ambicí by měl být překlad bez varovných hlášení. Dobré porozumění chybovým hlášením vyžaduje znalost angličtiny a především dobrou znalost fungování počítače a logiky programovacího jazyka. Pokud zatím tyto znalosti nemáte, nezoufejte. Není tak těžké se to naučit. Čím více budete programovat, tím to pro vás bude snazší. Struktura programu Příklad struktury programu C /* * struktura programu /* soukromé informace o programu * Autor PEPE * verze v.1.0 */ #include <stdio.h> /* vložení hlavičkového souboru*/ #define PI 3.141593 /* direktiva */ float polomer = 1.8; /* definice proměnné */ int printf(char*, ); /* deklarace funkce */ main() /* začátek definice fce main*/ float obvod, obsah; /* definice proměnné */... obsah = PI * polomer * polomer; /* příkazy */... obvod = 2 * PI * polomer; printf( Obsah = %f\nobvod = %f\n, obsah, obvod);

} /* konec fce main */ Aby byl program lépe čitelný je potřeba dodržovat Štábní kulturu. Doporučené postupy jsou například tyto: Jméno zdrojového programu by mělo být jednoznačné Program začíná hlavičkou s informacemi o programu, autorovi, verzi Jména proměnných, funkcí psát malými písmeny Snažit se nepsat dlouhé identifikátory (do 8 znaků) Nepoužívat podobné identifikátory Nepožívat k rozlišení velkých a malých písmen Psát časté komentáře Neprogramovat dlouhé sekvence příkazů nudle [1] Překladač GCC GCC znamená GNU Compiler Collection. Jak název napovídá, jde o kolekci programů určených pro překlad programů napsaných v různých jazycích. V současné verzi (4.5.0) je podporováno několik programovacích jazyků (C, C++, Objective C, assembler, Ada, Java, Fortran77). Primárně je však tento překladač určen pro překlad jazyků C, C++ a Assembleru. Tento překladač funguje v současné době na většině hlavních platforem (Unix, Windows, MacOS; Intel, PPC, Sparc, různé jednočipy, a jiné). Nejdůležitějšími programy jsou překladač, preprocesor, assembler a sestavovací program (linker). Člověk však naštěstí nemusí znát konkrétní jména těchto programů. Stačí volat pouze překladač (gcc pro jazyk C, g++ pro jazyk C++) a ten potom podle použitých parametrů zavolá ty správné programy ve správném pořadí.[3] Překlad jazyka Java Způsob zpracování jazyka Java Java se zpracovává podobně jako v případě jazyka C. A to pěti fázemi editováním, překladem(kompilací), zavedením(load), ověřováním(verifikací) a prováděním. Další rozdíl je v překladu. Překlad neprobíhá do přímo spustitelného souboru, ale do pseudojazyka nazývaného bye-code. Tento jazyk je nezávislý na cílovém počítači. Spuštění probíhá pomocí interpreteru, tudíž je jazyk interpretovaný.[2] JRE běhové prostředí JDK vývojové prostředí

Takto vypadá první příklad programu v Javě: public class Hello public static void main(string args[]) System.out.println("Hello SSITSP Sokolska"); } } Zdrojový soubor lze napsat v libovolném textovém editoru a uložit pod jménem třídy, uvedeným v řádku class, s příponou.java, v tomto případě Hello.java. Po napsání a uložení programu se zdrojový program přeloží příkazem javac jménosouboru.java, tedy zde javac Hello.java. Překladem se vytvořil soubor stejného jména s příponou.class tedy zde Hello.class, který již obsahuje přeložený bytecode programu a lze ho spouštět z příkazového řádku: Java jmeno souboru (bez přípony), tedy java Hello Výstupem programu je obligátní pozdrav Hello SSITSP Sokolska. Shrnutí: Programování je složitý proces. Správný programátor by měl mít alespoň základní informace i dějích při překladu programu. Také je potřeba psát programy tak, aby byly čitelné a to jak pro programátora co programoval, tak i pro jiné programátory. Literatura: [1] Herout Pavel; Učebnice jazyka C; str.269; Kopp 2001 [2] Herout Pavel; Učebnice jazyka Java; str. 381; Kopp 2008 [3] wikipedia.org; http://cs.wikipedia.org/wiki/gcc; 6.11.2010