• Kompilace je proces, který usnadňuje komunikaci mezi programátorem a počítačem. Kompilace programovacích jazyků

    Tvorba v konečné fázi určitý program, musí každý programátor využívat služeb kompilátoru. V technická dokumentace tento program má poměrně skromnou definici jako kompilační nástroj. Kompilace je proces přeměny programu napsaného v lidsky čitelném jazyce (vysokoúrovňový jazyk) na strojově čitelné instrukce (nízkoúrovňový jazyk). Výsledkem je program, který je blízký, může vypadat jako objektový modul, absolutní kód. Někdy je takový program podobný

    Kompilace tedy znamená, že vstupní informace (zdrojový kód) představující popis algoritmu nebo programu napsaného v doménově specifickém jazyce je přepsána do ekvivalentního seznamu instrukcí prezentovaných v objektovém kódu (strojově orientovaný jazyk).

    Abychom definici dále zjednodušili, kompilovat znamená přeložit strojový program z doménově specifického jazyka do strojově orientovaného.

    Přes transparentnost a jednoduchost definice je kompilace poměrně mnohostranný proces. Existuje několik druhů. Dávková kompilace se provádí na několika zdrojových modulech v jedné položce zakázky. Kompilace po řádcích je stejná jako interpretace (sestavení každého následujícího příkazu, krok za krokem, nezávisle). Existuje také podmíněná kompilace. V tomto případě přeložený text závisí na podmínkách, které jsou specifikovány ve zdrojovém programu direktivami kompilátoru.

    Změnou hodnoty určité konstanty můžete ovládat zahrnutí nebo deaktivaci překladu části textu programu.

    Pro pohodlí programátorů se při řešení různých problémů používají nejpohodlnější a přizpůsobené kompilátory. Pokud je klasifikujeme, můžeme rozlišit několik typů takových utilit.

    Překlad vytvoří vektorizační kompilátor zdrojový kód do strojového kódu, přizpůsobení vektorovým procesorům.

    Flexibilní kompilátor byl vyvinut na modulární bázi. Jeho řízení se provádí pomocí tabulek. Je naprogramován v jazyce na vysoké úrovni. Je také možné jej implementovat pomocí kompilátoru.

    Inkrementální kompilátor znovu překládá fragmenty programu a jeho dodatky, přičemž rekompilace celého programu je vyloučena.

    Interpretační nebo krokový kompilátor využívá principu postupného provádění nezávislé kompilace pro každý jednotlivý příkaz nebo instrukci ze zdrojového programu.

    Což vyžaduje formální popis programovacího jazyka. Je schopen samostatně generovat kompilátor pro konkrétní jazyk.

    Kompilátor ladění dokáže sám zpracovat některé druhy syntaktických chyb.

    Rezidentní kompilátor má trvalé umístění v paměti RAM a je k dispozici pro opakované použití širokou škálou úloh.

    Existují samokompilované kompilátory. Jsou psány ve stejném jazyce, ze kterého probíhá překlad.

    Univerzální překladač je založen na formálním popisu sémantiky a syntaxe vstupního jazyka. Skládá se z jádra, syntaktických a sémantických zavaděčů.

    Nejčastějším úkolem, kde kompilátory nacházejí uplatnění, je kompilace jádra pro platformu Linux. Tato operace umožňuje řešit širokou škálu problémů spojených s koordinací zařízení a nastavením nejpřijatelnější verze platformy.

    Kompilace Java je implementována pomocí kompilátorů, které běží na široké škále platforem. To umožňuje překompilovat zdrojové kódy pro potřeby operačních systémů od různých výrobců.

    Obecné poznámky pro tlumočníky

    Vývoj interpretů pro interpretaci programů v daném zdrojovém jazyce je jedním z hlavních úkolů informatiky. Stupeň obtížnosti problému implementace tlumočníka závisí na složitosti zdrojového jazyka a na míře, v jaké se liší od základního jazyka, ve kterém má být tlumočník samotný napsán.

    Abychom zajistili správnost tlumočníka, musíme při jeho navrhování vycházet ze sémantické definice tlumočeného jazyka, nebo alespoň ověřit, že tomu odpovídá. Věnujme pozornost tomu, že matematická definice sémantika PL je podobná interpretačním programům.

    Zaujímá zvláštní postavení interaktivní, inkrementální (krok za krokem) tlumočníci. Pro ně není nutné celý program nejprve připravit včetně vstupních dat a teprve poté interpretovat. Pomocí interaktivního výkladu můžete připravit program a vstupní data v samostatných částech a výslednou část interpretovat - v rámci možností - okamžitě (jazyk BASIC je speciálně zaměřen na inkrementální interpretaci).

    Nyní jsme stále blíž k vytváření tlumočníků pro jazyky, které vypadají odlišně od klasických počítačově orientovaných jazyků. Zejména v důsledku dlouhodobého výzkumu bylo možné interpretovat některé jazyky, které jsou více orientované na specifikace než na výpočetní (například jazyk PROLOG, který se používá k psaní programů ve strojově interpretované logice) . Pro takové jazyky však existují určité nepřekonatelné překážky kvůli limitům vyčíslitelnosti a složitosti, které pro mnoho nastavení problémů téměř znemožňují použití těchto jazyků.

    Kompilátor vezme program ve zdrojovém jazyce jako svůj vstup a vytvoří program v objektovém jazyce, kterému stroj rozumí.

    Pokud chceme spustit program napsaný v PL na vysoké úrovni mnohokrát, se všemi novými počátečními daty, pak se to často stává efektivnější program neinterpretovat, ale nejprve přeložit do již implementovaného jazyka, případně bližšího strojovému jazyku, a poté takto vygenerovaný program spustit. Tato metoda umožňuje lépe přizpůsobit program struktuře skutečně používaného stroje a dosáhnout tak dalekosáhlé optimalizace. V zásadě lze takový překlad provést ručně, ale je to časově náročné a může dojít k chybám. Proto se k tomuto účelu používají speciální překladatelské programy, tzv překladatelé nebo kompilátory(anglický počítač).



    Kompilátor a interpret jsou obvykle poměrně složité programy, které převezmou program ve zdrojovém jazyce ve formě textu, vytvoří vnitřní strukturu takto definovaného programu a zároveň ověří jeho syntaktickou správnost (parsování) a přeloží program do jiného (objektového) jazyka. nebo spusťte tento program příslušnou akcí.

    PL je definován svou syntaxí a sémantikou. V procesu kompilace nebo interpretace je program, chápaný jako syntaktický objekt, brán jako vstup a v souladu se svou sémantikou je transformován na program v jiném jazyce nebo na sled akcí (proces provádění).

    Programovací jazyky přicházejí na vysoké a nízké úrovni.

    Nazývají se jazyky zaměřené na konkrétní typ procesoru a zohledňující jeho vlastnosti jazyky nízké úrovně. Každá instrukce nízkoúrovňového jazyka přímo implementuje jednu instrukci mikroprocesoru a jsou vždy orientovány na instrukční sadu konkrétního mikroprocesoru. Jazyk nejnižší úrovně je jazyk symbolických instrukcí, který jednoduše představuje každou instrukci ve strojovém kódu, nikoli jako čísla, ale se symbolickými konvencemi nazývanými mnemotechnické pomůcky.

    Jazyky vysoká úroveň umožňují specifikovat požadované akce v programu pomocí specifické sady operátorů. Pro člověka jsou mnohem bližší a srozumitelnější než pro počítač. Každý příkaz takového jazyka se může skládat z tuctu nebo více mikroprocesorových příkazů. V PL VU je jednodušší psát programy.


    1 - závislý na stroji (Assembler). Nízkoúrovňové jazyky.

    2 – strojově orientovaný (C)

    3 - univerzální (Fortran, Pascal, Basic)

    4 - orientovaný na problém (GPSS, Logo, objektově orientovaný (Fort, Smalltalk))

    5,6,7 - (Prolog, Lisp, SNOBOL).

    C, C++ - celá strojově závislá část programu je poměrně snadno lokalizována a modifikována, když je program portován na jinou architekturu.

    Fortran - první vysokoúrovňový jazyk (1958, IBM), používá se dodnes, podporuje modulární programování, preferované zejména matematiky.

    Pascal - jeden z nejoblíbenějších pro vzdělávací účely (N. Wirth), implementuje většinu myšlenek strukturovaného programování.

    ZÁKLADNÍ - pro začínající programátory, blízké konverzaci anglický jazyk, podporuje modulární a strukturované programování.

    Logo , mezi doménově specifickými jazyky - se používá hlavně pro výukové účely. Je to konverzační procedurální jazyk (jednoduchá syntaxe).

    GPSS - zaměřeno na modelování systémů pomocí událostí. Používá se tam, kde jsou výsledky výzkumu vyjádřeny jako čekací doba, délka fronty, využití zdrojů.

    Pokec - jeden z raných OO PL, hlavním návrhem je objekt a akce s ním, určený pro nenumerické úlohy (při budování systémů umělá inteligence).

    Pevnost – používá se při řešení úloh simulačního modelování v grafických systémech.

    Jazyky funkčních skupin se používají především v systémech umělé inteligence. Mají výkonnou instrumentální podporu, rychlý kompilátor, vestavěnou organizaci více oken, grafiku vysoké rozlišení, pokročilá sada matematických funkcí.

    Prolog - jazyk AI, termíny a souvislosti jsou dány a s jeho pomocí se vytvářejí nové.

    Lisp - má výkonné grafické návrhy, umožňuje vytvářet designové programy (například pro detaily). Je orientován na design. Má knihovnu primitivů.

    SNOBOL - Jazyk AI.

    Generace programovacích jazyků

    Všechny programovací jazyky jsou obvykle rozděleny do 5 generací.

    1. Počátek 50. let. Objevily se první počítače a první jazyky symbolických instrukcí, ve kterých bylo programování prováděno podle principu „Jedna instrukce - jeden řádek“.

    2. Konec 50. let začátek 60. let. Byl vyvinut symbolický assembler, ve kterém se objevil koncept proměnné. Zvýšila se rychlost vývoje a spolehlivost programů.

    3. 60. léta. Zrození jazyků na vysoké úrovni. Jednoduchost programování, nezávislost na konkrétním počítači, nové výkonné jazykové konstrukce.

    4. Počátek 70. let do současnosti. Jazyky orientované na doménu, které pracují se specifickými koncepty úzké oblasti. Výkonné operátory, které vyžadovaly tisíce řádků zdrojového kódu v jazycích mladší generace.

    5. Polovina 90. let. Systémy automatické vytváření aplikační programy využívající vizuální vývojové nástroje bez znalosti programování. Pokyny se do počítače zadávají ve vizuální podobě metodami, které jsou pro člověka neznalého programování nejpohodlnější.

    U nás v institutu se v různých kurzech naučíte programovat různé jazyky programování.

    Typy překladačů

    • Vektorizace. Překládá zdrojový kód do strojového kódu pro počítače vybavené vektorovým procesorem.
    • Flexibilní. Navrženo modulárním způsobem, řízené tabulkami a naprogramované v jazyce vysoké úrovně nebo implementované pomocí kompilátoru.
    • Dialog. Viz: překladač dialogů.
    • přírůstkové. Znovu přeloží fragmenty programu a rozšíření bez opětovné kompilace celého programu.
    • Interpretační (krok za krokem). Postupně provádí nezávislou kompilaci každého jednotlivého příkazu (příkazu) zdrojového programu.
    • kompilátory kompilátory. Překladač, který vezme formální popis programovacího jazyka a vygeneruje kompilátor pro tento jazyk.
    • ladění. Eliminuje určité typy syntaktických chyb.
    • Obytný. Trvale je umístěn v paměti RAM a je k dispozici pro opakované použití mnoha úkoly.
    • Vlastní sestavení. Napsáno ve stejném jazyce, ze kterého se vysílá.
    • Univerzální. Na základě formálního popisu syntaxe a sémantiky vstupního jazyka. Komponenty takového kompilátoru jsou: jádro, syntaktické a sémantické zavaděče.

    Typy kompilací

    • Dávka. Kompilace více zdrojových modulů v jedné položce úlohy.
    • Řádek po řádku. Stejně jako výklad.
    • Podmiňovací způsob. Kompilace, ve které přeložený text závisí na podmínkách specifikovaných ve zdrojovém programu direktivami kompilátoru. Takže v závislosti na hodnotě nějaké konstanty můžete zapnout nebo vypnout překlad části textu programu.

    Struktura kompilátoru

    Proces kompilace se skládá z následujících kroků:

    1. Lexikální analýza. V této fázi je sekvence znaků ve zdrojovém souboru převedena na sekvenci tokenů.
    2. Syntaktická (gramatická) analýza. Posloupnost tokenů se převede do stromu analýzy.
    3. Sémantická analýza. Syntaktický strom je zpracováván za účelem stanovení jeho sémantiky (významu) - např. vazby identifikátorů na jejich deklarace, typy, kontroly kompatibility, určení typů výrazů atd. Výsledek se obvykle nazývá „mezilehlá reprezentace/kód“ a může být rozšířen o strom analýzy, nový strom, abstraktní sadu instrukcí nebo něco jiného vhodného pro další zpracování.
    4. Optimalizace. Jsou odstraněny nadbytečné konstrukce a kód je zjednodušen při zachování jeho významu. Optimalizace může být na různých úrovních a fázích – například přes mezikód nebo přes konečný strojový kód.
    5. Generování kódu. Z prostřední reprezentace je generován kód v cílovém jazyce.

    V konkrétních implementacích překladačů lze tyto stupně oddělit nebo naopak kombinovat v té či oné podobě.

    Generování kódu

    Generování strojového kódu

    Většina kompilátorů překládá program z nějakého vysokoúrovňového programovacího jazyka do strojového kódu, který může být přímo proveden procesorem. Tento kód je zpravidla také zaměřen na provádění v prostředí konkrétního operačního systému, protože využívá schopností, které poskytuje (systémová volání, knihovny funkcí). Zavolá se architektura (sada firmwaru), pro kterou se provádí kompilace cílový stroj.

    Výsledek kompilace – spustitelný modul – má maximální možný výkon, ale je vázán na konkrétní operační systém a procesor (a na jiných nebude fungovat).

    Některé kompilátory překládají program z vysokoúrovňového jazyka ne přímo do strojového kódu, ale do jazyka symbolických instrukcí. To se provádí za účelem zjednodušení části kompilátoru odpovědného za generování kódu a zvýšení jeho přenositelnosti (úkol konečného vygenerování kódu a jeho propojení s požadovanou cílovou platformou se přesouvá na assembler), nebo aby programátor mohl ovládat a opravovat výsledek kompilace.

    Generování bytekódu

    Výsledkem práce kompilátoru může být program ve speciálně vytvořeném nízkoúrovňovém jazyce, který má být interpretován virtuální stroj. Takový jazyk se nazývá pseudokód nebo bytecode. Zpravidla se nejedná o strojový kód žádného počítače a programy na něm lze spouštět na různých architekturách, kde existuje vhodná virtuální stroj, ale v některých případech jsou vytvořeny hardwarové platformy, které přímo podporují pseudokód libovolného jazyka. Například pseudokód jazyk Java s názvem Java bytecode a spouštěným v Java Virtual Machine, specifikace procesoru picoJava byla vytvořena pro jeho přímé provádění. Pro rozhraní .NET Framework se pseudokód nazývá Common Intermediate Language (CIL) a modul runtime se nazývá Common Language Runtime (CLR).

    Některé implementace interpretovaných jazyků na vysoké úrovni (jako je Perl) používají bajtový kód k optimalizaci provádění: nákladné kroky analýzy a převodu programového textu na bajtový kód se provádějí jednou při načtení, poté lze odpovídající kód znovu použít bez mezikroků.

    Dynamická kompilace

    Vzhledem k nutnosti interpretace běží bytekód mnohem pomaleji než strojový kód srovnatelné funkčnosti, ale je přenosnější (nezávisí na operačním systému a modelu procesoru). Chcete-li urychlit provádění bajtkódu, použijte dynamická kompilace, kdy virtuální stroj převede pseudokód do strojového kódu bezprostředně před jeho prvním spuštěním (a při opakovaných voláních kódu se provede již zkompilovaná verze).

    Kód CIL je také kompilován do cílového strojového kódu kompilátorem JIT, zatímco knihovny .NET Framework jsou předkompilovány.

    Dekompilace

    Existují programy, které řeší inverzní problém – překlad programu z jazyk nízké úrovně na vysokou úroveň. Tento proces se nazývá dekompilace a takové programy se nazývají dekompilátory. Ale protože kompilace je ztrátový proces, obecně není možné přesně obnovit zdrojový kód například v C++. Programy v bajtkódech se dekompilují efektivněji – například pro Flash existuje celkem spolehlivý dekompilátor. Variantou dekompilace je rozložení strojového kódu do kódu assembleru, které se téměř vždy podaří (v tomto případě může být složitost samo-modifikující se kód nebo kód, ve kterém skutečný kód a data nejsou odděleny). To je způsobeno skutečností, že mezi kódy strojových instrukcí a instrukcemi assembleru existuje téměř přímá shoda.

    Samostatná kompilace

    Samostatná kompilace(Angličtina) samostatná kompilace) - překlad částí programu samostatně s jejich následnou kombinací linkerem do jediného zaváděcího modulu.

    Historicky vlastnost kompilátoru, která se odráží v jeho názvu (eng. kompilovat- shromažďovat, skládat), bylo, že vytvořil jak překlad, tak propojení, zatímco kompilátor mohl okamžitě generovat absolutní kód. Avšak později, s rostoucí složitostí a velikostí programů (a rostoucím časem stráveným rekompilací), bylo nutné oddělit programy na části a izolovat knihovny, které lze kompilovat nezávisle na sobě. Při překladu každé části programu kompilátor vygeneruje objektový modul obsahující Dodatečné informace, který se pak používá k propojení a vyřešení vazeb mezi částmi při spojování částí do spustitelného modulu.

    Objevení samostatné kompilace a přiřazení linkování jako samostatné fáze nastalo mnohem později než vytvoření kompilátorů. V tomto ohledu se místo výrazu „překladač“ někdy používá jako jeho synonymum výraz „překladač“: buď ve staré literatuře, nebo když chtějí zdůraznit jeho schopnost přeložit program do strojového kódu (a naopak, používají termín "kompilátor", aby zdůraznili schopnost sestavit z mnoha souborů jeden).

    Na úsvitu rozvoje počítačů se první kompilátory (překladače) nazývaly „programovací programy“ (protože v té době byl za program považován pouze strojový kód a „programovací program“ byl schopen vytvořit strojový kód z lidského textu, tedy programování počítače).

    viz také

    Poznámky

    Literatura

    • Alfred W. Aho, Monica S. Lam, Ravi Seti, Jeffrey D. Ullman. Kompilátory: Principy, techniky a nástroje = Kompilátory: Principy, techniky a nástroje. - 2. vyd. - M.: Williams, 2010. - 1184 s. - ISBN 978-5-8459-1349-4
    • Robin Hunter. Základní koncepty kompilátorů = The Essence of Compilers. - M.: Williams, 2002. - 256 s. - ISBN 0-13-727835-7
    • Hunter R. Návrh a konstrukce překladačů / Per. z angličtiny. S. M. Krugovoj. - M .: Finance a statistika, 1984. - 232 s.
    • D. Crenshaw. Pojďme postavit kompilátor!
    • Serebryakov V.A., Galochkin M.P. Základy návrhu kompilátoru.

    Nadace Wikimedia. 2010 .

    Synonyma:

    Podívejte se, co je "Compiler" v jiných slovnících:

      - (nové lat., z lat. kompilare okrást, okrást, vybrat). Kompilátor článků nebo knih vypůjčováním pasáží ze spisů různých autorů. Slovník cizích slov obsažených v ruském jazyce. Chudinov A.N., 1910. KOMPILOVATEL ... ... Slovník cizích slov ruského jazyka

      Viz spisovatel ... Slovník ruských synonym a výrazů podobných významem. pod. vyd. N. Abramova, M.: Ruské slovníky, 1999. sestavovatel, autor, spisovatel; překladatel, hack, program Slovník ruských synonym ... Slovník synonym

      Program, který převádí text napsaný v algoritmickém jazyce na program sestávající ze strojových instrukcí. Kompilátor vytvoří kompletní verzi programu ve strojovém jazyce. Viz také: Finanční slovník překladatelů Finam ... Finanční slovní zásoba

      COMPILER, POČÍTAČOVÝ PROGRAM, který převádí znaky PROGRAMOVACÍHO JAZYKA na příkazy, kterým počítač přímo rozumí. Programy jsou většinou psány ve VYSOKÝCH JAZYCÍCH jako C, Pascal nebo BASIC... Vědeckotechnický encyklopedický slovník

      KOMPILER, kompilátor, samec. (rezervovat). Autor kompilátoru. || Spisovatel schopný psát pouze kompilace (negativní). Špatný kompilátor. Slovník Ušakov. D.N. Ušakov. 1935 1940 ... Vysvětlující slovník Ushakova

    Když programátoři mluví o programování, často říkají „program zkompilován bez chyb“, nebo když programátorovi říkají: „zkompiluj program, podívej se na výsledek práce“. Takové rozhovory se mohou později stát zdrojem zmatku. Kompilace a vytvoření spustitelného souboru nejsou synonyma! Vytváření spustitelných souborů je vícekrokový proces, jehož hlavními součástmi jsou kompilace a propojení. Ve skutečnosti, i když je program „zkompilován bez chyb“, nemusí fungovat kvůli možné chybě během fáze propojení. Celý proces překladu souborů zdrojového kódu do spustitelného souboru by bylo lépe nazvat budováním projektu.

    Sestavení!

    Kompilace se týká zpracování souborů zdrojového kódu (.c, .cc nebo .cpp) a vytváření souborů objektů projektu. Tento krok nevytvoří spustitelný soubor. Místo toho kompilátor jednoduše přeloží kód na vysoké úrovni do strojového jazyka. Pokud jste například vytvořili (ale nepropojili) tři jednotlivé soubory, budete mít tři objektové soubory vygenerované jako výstup během kompilace. Přípona takových souborů bude záviset na vašem kompilátoru, například *.obj nebo *.o. Každý z těchto souborů obsahuje strojové instrukce, které jsou ekvivalentní zdrojovému kódu. Ale tyto soubory nemůžete spustit! Před použitím je musíte převést na spustitelné soubory operačního systému. Zde vstupuje do hry linker.

    Rozložení!

    Z několika objektových souborů je vytvořen jeden spustitelný soubor. V tuto chvíli je výsledný soubor jediný, takže linker si bude stěžovat na nedefinované funkce, které najde. Pokud ve fázi kompilace kompilátor nemohl najít definici funkce, má se za to, že funkce byla definována v jiném souboru. Pokud tomu tak není, kompilátor o tom nebude vědět, protože se nedívá na obsah více než jednoho souboru najednou. Linker se na druhou stranu může podívat na více souborů a pokusit se najít odkazy na funkce, které nebyly zmíněny.

    Můžete se zeptat, proč jsou kroky kompilace a propojení oddělené. Za prvé, tímto způsobem je snazší implementovat proces vytváření programů. Kompilátor dělá svou práci a linker dělá svou práci - prostřednictvím oddělení funkcí, složitosti programu

    klesá. Další (zřejmější) výhodou je, že umožňuje tvořit velké programy aniž byste museli opakovat krok kompilace pokaždé, když se změní některé soubory. Místo toho se používá tzv. „podmíněná kompilace“. To znamená, že objekty jsou kompilovány pouze pro ty zdrojové soubory, které byly změněny, u ostatních se soubory objektů znovu nevytvářejí. Skutečnost, že každý soubor je sestaven odděleně od informací obsažených v jiných souborech

    existuje díky rozdělení procesu budování projektu na etapu kompilace a propojování.

    O tyto dva kroky je postaráno a vy se nemusíte starat o to, které soubory se změnily. IDE rozhoduje, kdy vytvořit souborové objekty a kdy ne.

    Znalost rozdílu mezi fází kompilace a propojení vám výrazně usnadní hledání chyb ve vašich projektech. Kompilátor zachytí zpravidla - absenci středníku nebo závorek. Pokud se zobrazí chybová zpráva o vícenásobné definici funkce nebo proměnné, uvědomte si, že vám o tom linker říká. Tato chyba může znamenat pouze to, že stejná funkce nebo proměnná je definována v několika souborech projektu.

    PŘEKLADY, SESTAVOVÁNÍ A VÝKLAD

    Překladatel je program resp technické prostředky, který převádí program prezentovaný v jednom z programovacích jazyků na program v jiném jazyce, v určitém smyslu ekvivalentní tomu prvnímu.

    Sestavení v programování transformace programu prezentovaného v jednom z programovacích jazyků na kódy ve strojově orientovaném jazyce, které jsou přijímány a prováděny přímo procesorem. Výsledkem kompilace je objektový soubor s nezbytným externí odkazy pro linker. Program již byl přeložen do strojových instrukcí, ale ještě není plně připraven k provedení.

    Kompilátor je program určený k překladu zdrojového kódu programu jazyk na vysoké úrovni do objektového kódu. Vstupní informací pro kompilátor je popis algoritmu nebo programu v programovacím jazyce. Výstupem kompilátoru je ekvivalentní popis algoritmu ve strojově orientovaném jazyce (objektový kód).

    Rozložení je jedním z kroků při vytváření spustitelného souboru.
    Kompilovat - přeložit strojový program z jazyka specifického pro doménu do strojově orientovaného jazyka (vytvořit objektový kód) pro jeho spuštění. Výsledkem kompilace je objektový soubor s nezbytnými externími referencemi pro linker. Program již byl přeložen do strojových instrukcí, ale ještě není plně připraven k provedení. Objektový soubor obsahuje odkazy na různé systémové funkce. I když není v programu výslovně zmíněna žádná funkce, je vyžadováno alespoň jedno volání systémové funkce – ukončení programu a uvolnění všech zdrojů, které k němu patří.

    linker- modul programovacího systému nebo samostatný program, který sestaví výsledný program z objektových modulů a standardních knihovních modulů. Tento proces se nazývá linkování a jeho výsledkem bude spustitelný soubor. Uspořádání nesouvisí s postupem výkladu.

    Při práci s programy existují fáze:
    a) kompilace
    b) rozložení
    c) výklady
    d) provádění programu.
    Vytvoření spustitelného souboru ze zdrojového kódu programu zahrnuje provedení kroků aab (kompilace a propojení).

    Spustitelný je soubor, který může být zpracován nebo spuštěn počítačem bez předchozího překladu. Obvykle je spustitelný soubor výsledkem kompilace a propojení objektových modulů a obsahuje instrukce pro stroj a/nebo operační systém.

    Tlumočník analyzuje a okamžitě spustí program příkaz po příkazu, jakmile jeho zdrojový kód dorazí na vstup interpretu.
    Algoritmus jednoduchého tlumočníka: 1) přečtěte si instrukce;
    2) analyzovat pokyn a určit vhodná opatření;
    3) přijmout vhodná opatření;
    4) pokud není dosaženo podmínky ukončení programu, přečtěte si následující instrukce a přejděte ke kroku 2.

    Výrok „jazykový procesor, který analyzuje zdrojový program řádek po řádku a současně provádí předepsané akce a nevytváří kompilovaný program ve strojovém jazyce, který je následně spouštěn“ platí pro interpret.

    Režim tlumočení lze použít při ladění jazykových programů na vysoké úrovni.

    Interpretace ve vývoji softwaru- proces přímého provádění programu příkaz-by-command bez předchozí kompilace, "za běhu". Ve většině případů je interpretovaný program mnohem pomalejší než zkompilovaný program, ale nevyžaduje režii kompilace, což může zlepšit celkový výkon v případě malých programů. Interpretace souvisí se získáváním hodnot proměnnými v průběhu činnosti programu.

    Interpretace a kompilace neumožňují měnit sémantiku (význam) programovacího jazyka. Obvykle při popisu sémantiky v rámci operačního přístupu je provádění konstruktů programovacího jazyka interpretováno pomocí nějakého imaginárního (abstraktního) počítače.

    Interpretace a kompilace neumožňují změnu syntaxe jazyka- soubor pravidel pro vytváření frází v algoritmickém jazyce, který vám umožňuje určit smysluplné věty v tomto jazyce.

    rozebrat je proces porovnávání lineární sekvence lexémů (slov) jazyka s jeho formální gramatikou, obvykle programem nebo částí programu, který provádí analýzu. Výsledkem je obvykle strom analýzy.

    Zobrazit soubor– sada instrukcí zobrazovacího procesoru (reprezentace interaktivní grafika). Příkazy zobrazovacího procesoru mohou zahrnovat nejen příkazy pro grafické zobrazování a přechody, ale také příkazy pro organizování cyklů a volání podprogramů.

    dávkové soubory se používají, když je v průběhu práce nutné často provádět stejné úkony. Operační systém vám k tomu umožňuje zapsat požadovanou sekvenci příkazů do speciálního souboru zvaného dávkový soubor.

    Fáze řešení problému na počítači.

    Pro správné řešení problému pomocí automatizovaného přístupu na PC je nutné projít určitými fázemi jeho řešení.
    1. Formalizace dat

    2. Tvorba matematický model
    3. Podrobný popis algoritmu (vývojový diagram, text)
    4. Implementace v programovacím jazyce
    5. Ladění programu
    6. Testování programu
    7. Analýza výsledků práce

    Tento řetězec bude správný z hlediska řešení problému na PC, protože v počátečních fázích („Formalizace dat“ a „Vytvoření matematického modelu“) jsou určena výchozí data a model řešení. Dále ve fázích "Podrobný popis algoritmu (vývojový diagram, text)" a "Implementace v programovacím jazyce" je krok za krokem sestavován cílový algoritmus a implementován v daném programovacím jazyce. Ve fázi „Ladění programu“ jsou eliminovány zjevné nesprávné situace při implementaci algoritmu a fáze „Testování programu“ umožňuje odstranit skryté a zjevné nedostatky při implementaci původního problému. V závěrečné fázi „Analýza výsledků práce“ se provádí studie získaných výsledků.

    KONCEPCE ALGORITU A JEHO VLASTNOSTI. BLOKOVÉ SCHÉMA ALGORITMU

    Neexistuje jediná definice pojmu „algoritmus“. Uvádíme jednu z možných definic.

    Algoritmus- jedná se o určitý konečný soubor operací určený pro konkrétního interpreta, v jehož důsledku lze po určitém počtu kroků dosáhnout stanoveného cíle nebo vyřešit určitý úkol.

    Pět důležitých vlastností algoritmu- diskrétnost, konečnost, determinismus, účinnost, masový charakter.

    diskrétnost– při spuštění je algoritmus rozdělen do konečné sekvence akcí nebo kroků.

    Konečnost (terminalita)– se správně zadanými počátečními daty musí algoritmus dokončit svou práci v konečném počtu kroků.

    determinismus- to je jistota (tj. obecná srozumitelnost a přesnost). V každém okamžiku je další krok práce jednoznačně určen stavem systému. Algoritmus tedy produkuje stejný výsledek (odpověď) pro stejná vstupní data, tj. když se algoritmus opakuje pro stejná vstupní data, vždy se získá stejný výsledek.

    Na druhou stranu existují pravděpodobnostní algoritmy, ve kterých další postup práce závisí na aktuálním stavu systému a vygenerovaném náhodném čísle. Když je však metoda generování náhodných čísel zařazena do seznamu „vstupních dat“, pravděpodobnostní algoritmus se stává poddruhem obvyklého.

    Účinnost(zaměřte se na dosažení požadovaného výsledku) - algoritmus musí skončit s určitými výsledky.

    masový charakter(možnost použití různých dat při řešení úloh stejného typu) - algoritmus musí být použitelný pro různé sady výchozích dat. Například algoritmus pro řešení kvadratické rovnice by měl být použitelný pro kvadratické rovnice s různými hodnotami koeficientů.

    Lineární algoritmus- algoritmus, ve kterém jsou všechny akce (operace) prováděny jednou za sebou

    Způsoby zápisu (reprezentace) algoritmu:

    - formulační

    - slovní

    - tabulkový

    - pomocí blokových diagramů

    - pomocí programu

    Nejviditelnější způsob Zadání algoritmu je obrázek ve formě sekvenčních bloků, z nichž každý předepisuje provedení určitých akcí, to znamená pomocí vývojového diagramu.

    Způsoby prezentace algoritmů (opět):

    – Verbální (popis v přirozeném lidském jazyce)

    – Grafické (v jazyce vývojových diagramů)

    - S pomocí symbolů speciální jazyk navrhování pseudokódových programů

    – Použití HIPO grafů

    – Použití rozhodovacích tabulek

    – Použití Nassi-Schneidermanova schématu

    – Použití jednoho z algoritmických programovacích jazyků

    Pravidla pro konstrukci algoritmů v jazyce vývojových diagramů:

    1. Blokové schéma je sestaveno shora dolů.

    2. V každém blokovém diagramu existuje pouze jeden prvek odpovídající začátku algoritmu a jeden prvek odpovídající konci algoritmu.

    3. Od začátku blokového diagramu k libovolnému prvku musí existovat alespoň jedna cesta.

    4. Od každého prvku blokového diagramu ke konci blokového diagramu musí být alespoň jedna cesta.

    Základní metody moderních technologií pro návrh algoritmů.

    1. Metoda navrhování konstrukcí. Jakýkoli algoritmus lze sestavit z kombinací tří základních struktur: lineární algoritmus(následující), větvený algoritmus (fork) a cyklický algoritmus (opakování).

    2. Metoda návrhu shora dolů. Zpočátku jsou určeny hlavní funkce, poté vedlejší.

    3. Metoda detailování krok za krokem.

    4. Metoda modularity. Modul je logicky propojený fragment programu, který vykonává jednu funkci a skládá se z předvídatelného počtu kroků.

    Než začnete sestavovat blokové schéma, musíte:

    1. Určete názvy vstupních dat, mezivýsledků a výstupních výsledků.

    2. Pojmenujte hlavní program a pomocné algoritmy.

    Cykly. operátor smyčky. Hlavička cyklu určuje počet opakování. Tělo smyčky– blok opakovaných příkazů (akcí). Existují dva typy smyček: s pevným počtem opakování (smyčka typu pro= typ smyčky Pro = smyčka s parametrem = aritmetický cyklus) a podmíněné příkazy cyklu ( smyčka s předpokladem= typ smyčky zatímco= typ smyčky sbohem; smyčka s postpodmínkou).

    smyčkování- je provedeno tělo smyčky nekonečné číslo jednou.

    Implementace smyček v algoritmech snižuje množství paměti využívané programem provádějícím algoritmus a snižuje počet vstupů identických sekvencí instrukcí.

    EVOLUCE A KLASIFIKACE PROGRAMOVACÍCH JAZYKŮ. ZÁKLADNÍ POJMY JAZYKŮ...

    Výraz v programovacím jazyce určuje pravidlo pro výpočet nějaké hodnoty. Výraz skládá se z konstanty, proměnné, ukazatele funkcí, znaménka operátorů a závorky. Každý výraz má typ v závislosti na typech jeho operandů.

    Výraz volal aritmetický pokud je jeho hodnota číslo. Aritmetický výraz je zapsán do řetězce. Nemůžete dát dva znaky aritmetických operací za sebou. Nelze vynechat znaménko násobení.

    Při výpočtu hodnot výrazů je to důležité pořadí operací. Byla přijata následující pravidla. Akce se provádějí zleva doprava v následujícím pořadí priority ( v sestupném pořadí priority):

    1) akce v závorkách;
    2) výpočet funkcí;
    3) NE;
    4) *, /, DIV, MOD, AND;
    5) +, -, OR;
    6) =, <>, <, >, <=, >=.

    Pokud je priorita operací stejná, provede se nejprve operace vlevo.. Pořadí operací lze předefinovat pomocí závorek.

    Programovací jazyk je umělý jazyk, který má

    - omezený počet slov, jejichž význam je překladateli jasný

    (klíčová slova)

    – velmi přísná pravidla pro psaní příkazů

    Syntaxe jazyka– soubor pravidel pro záznam příkazů

    Sémantika jazyka– význam každého příkazu a dalších jazykových konstrukcí

    Programovací jazyk- formální znakový systém určený k záznamu počítačových programů. Programovací jazyk definuje množinu lexikální, syntaktická a sémantická pravidla, upřesňující vzhled programy a akce, které bude performer (počítač) provádět pod svou kontrolou.

    Každý programovací jazyk podporuje jeden nebo více vestavěné datové typy (základní typy). Pokročilé programovací jazyky navíc umožňují programátorovi popsat své vlastní datové typy kombinací nebo rozšířením stávajících.

    Datový typ je charakteristika datové sady, která určuje:
    - rozsah možných datových hodnot ze sady;
    - povolené operace, které lze s těmito hodnotami provádět;
    - způsob, jakým jsou tyto hodnoty uloženy v paměti.
    Rozlišovat:
    - jednoduché datové typy: celá čísla, reálná čísla atd.;
    - složené datové typy: pole, soubory atd.

    Variabilní- pojmenovaná oblast paměti, která uchovává nějakou hodnotu.

    Pole se používají ve všech moderní jazyky programování.

    pole- pojmenovaná sada dat stejného typu umístěná v paměti přímo za sebou (na rozdíl od seznam), ke kterým se přistupuje pomocí indexu prvku pole (číslo podle pořadí, seřazené vzestupně v indexových polích). Index pole ukazující na prvek pole je celé číslo.

    Program- logicky uspořádaná posloupnost příkazů nezbytných k řešení konkrétního problému.

    Program– Algoritmus napsaný v programovacím jazyce.

    Text programu- úplný, úplný a podrobný popis algoritmu v programovacím jazyce. Poté je tento programový text zpracován speciálními servisními aplikacemi, které se nazývají překladače.

    Příkazy, které vstupují do procesoru přes jeho sběrnice, jsou ve skutečnosti elektrické signály. Tyto signály lze interpretovat jako nuly a jedničky, tedy jako čísla. Ve skutečnosti je tedy program, se kterým procesor pracuje, posloupnost volaných čísel strojový kód.

    testování softwaru- výzkumný proces software(software) za účelem získání informací o kvalitě produktu (včetně vyhledávání chyb v programu).

    Alfa testování– testování hotového výrobku na speciálně vytvořených úkolech.

    Beta testování– testování bezplatné testovací verze softwarového produktu na skutečných úkolech.

    Li „alfa“ a „beta testování“ označují fáze před uvedením produktu na trh(stejně jako implicitně velikost testovací komunity a omezení testovacích metod), white-box a black-box testování souvisí se způsoby, kterými tester dosáhne cíle.

    Na testování bílé krabice(Angličtina) bílý-boxtestování také říct - průhledná krabička), vývojář testu má přístup ke zdrojovému kódu programů a může psát kód, který je propojen s knihovnami testovaného softwaru. To je typické pro testování jednotek. jednotkatestování), ve kterém se testují pouze určité části systému. Zajišťuje, že součásti konstrukce jsou do určité míry funkční a stabilní. Testování bílého pole používá metriky pokrytí kódem.

    Na testování černé skříňky, tester má přístup k softwaru pouze prostřednictvím stejných rozhraní jako zákazník nebo uživatel, nebo prostřednictvím externí rozhraní, což umožní jinému počítači nebo jinému procesu připojit se k systému za účelem testování. Testovací modul může například virtuálně mačkat klávesy nebo tlačítka myši v testovaném programu pomocí mechanismu procesní komunikace s jistotou, že vše jde dobře, že tyto události způsobují stejnou odezvu jako skutečné stisknutí kláves a tlačítek myši. Testování černé skříňky se zpravidla provádí pomocí specifikací nebo jiných dokumentů, které popisují požadavky na systém. U tohoto typu testování se kritérium pokrytí zpravidla skládá z pokrytí struktury vstupních dat, pokrytí požadavků a pokrytí modelu (v modelovém testování).

    Regresní testování. Po provedení změn v další verzi programu regresní testy potvrdí, že provedené změny neovlivnily výkon zbývajících funkcí aplikace. Regresní testování lze provádět jak ručně, tak pomocí nástrojů pro automatizaci testování.

    Ladění- vývojová fáze počítačový program, na kterém se chyby zjišťují, lokalizují a odstraňují. Abyste pochopili, kde k chybě došlo, musíte:

      zjistit aktuální hodnoty proměnných; a zjistit, jakou cestu program běžel.

    Existovat dvě doplňkové technologie ladění.

      Použití debuggerů- programy, které obsahují uživatelské rozhraní pro provedení krok za krokem programy: příkaz po příkazu, funkce po funkci, zastavení na určitých řádcích zdrojového kódu nebo při dosažení určité podmínky. Zobrazení aktuálního stavu programu pomocí výstupních operátorů umístěných v kritických bodech programu – na obrazovku, tiskárnu, reproduktor nebo do souboru. Volá se výstup ladicích informací do souboru žurnálování.

    Debugger- program, který vám umožní prozkoumat vnitřní strukturu programu. Ladicí program poskytuje postupné spouštění programu, prohlížení aktuálních hodnot proměnných, výpočet hodnoty libovolného výrazu programu atd. Debugger.

    Refaktoring- proces změny vnitřní struktury programu bez ovlivnění jeho vnějšího chování a zaměřený na snazší pochopení jeho práce

    podprogram je sada operátorů, které provádějí požadovanou akci a nezávislé na ostatních částech zdrojového kódu.

    podprogramy existují dva druhypostupy a funkce. Liší se tím, že procedura jednoduše provede skupinu příkazů a funkce také předá nějakou vypočítanou hodnotu hlavnímu programu. Odeslat = vrátit. Funkce má stejný typ jako návratový typ.

    Externí program volá podprogram. Data jsou do podprogramu předávána ve formě parametrů nebo argumentů, které jsou popsány v hlavičce podprogramu.

    Podprogramy lze vnořovat, tj. podprogram lze volat nejen z hlavní program, ale také z jiného podprogramu. Podprogram se může volat sám. Tento přístup se nazývá rekurze.

    Důležitou vlastností podprogramů je jejich znovupoužitelnost. Integrované programovací systémy přicházejí s velkými knihovnami standardních rutin.

    Modul- procedura, funkce, jednotka, program jako celek - logicky kompletní komponent programy.

    Procedurální programovací jazyky- ty, kde je možné použití podprogramů.

    Strukturované programování- struktura programu by měla odrážet strukturu řešeného problému tak, aby byl algoritmus řešení jasně viditelný ze zdrojového textu. Za tímto účelem byl zaveden koncept podprogramu.

    Strukturované programování- metodika vývoje softwaru, která je založena na reprezentaci programu ve formě hierarchické struktury bloků. Navrhl v 70. letech XX. století E. Dijkstroy, rozvinul a doplnil N. Wirth.

    Podle této metodiky

    Jakýkoli program je struktura postavená z tři typy základní struktury:
      sekvenční provádění- jediné provedení operací v pořadí, v jakém jsou zapsány v textu programu; větvení- jednorázové provedení jedné ze dvou nebo více operací v závislosti na splnění určité dané podmínky; cyklus- opakované provádění stejné operace, dokud není splněna některá daná podmínka (podmínka pokračování cyklu).

    V programu lze základní struktury do sebe libovolně vnořovat, nejsou však poskytovány žádné jiné prostředky pro řízení sledu operací.

    Opakující se úryvky programu(nebo neopakující se, ale představující logicky koherentní výpočetní bloky) lze provést formou tzv. podprogramy(postupy nebo funkce). V tomto případě je v textu hlavního programu místo fragmentu umístěného v podprogramu vložena instrukce volání podprogramu. Když se taková instrukce provede, provede se volaný podprogram, načež provádění programu pokračuje instrukcí následující za instrukcí k vyvolání podprogramu. Vývoj programu se provádí krok za krokem metodou „shora dolů“.

    Nejprve se zapíše text hlavního programu, do kterého se místo každého připojeného logického fragmentu textu vloží volání podprogramu, který tento fragment provede. Místo skutečných fungujících podprogramů jsou do programu vkládány „stubs“, které nic nedělají. Výsledný program je zkontrolován a odladěn. Poté, co se programátor přesvědčí, že podprogramy jsou volány ve správném pořadí (to znamená, že obecná struktura programu je správná), jsou stub rutiny postupně nahrazeny skutečnými a vývoj každého podprogramu se provádí ve stejném pořadí. způsobem jako hlavní program. Vývoj končí, když nezůstane jediný „roubík“, který by nebyl odstraněn. Taková sekvence zajišťuje, že v každé fázi vývoje se programátor současně zabývá viditelnou a srozumitelnou sadou fragmentů a může si být jistý, že obecná struktura všech vyšších úrovní programu je správná. Při údržbě a provádění změn programu je zřejmé, které postupy je třeba změnit, a jsou prováděny bez ovlivnění částí programu, které s nimi přímo nesouvisejí. To vám umožní zajistit, že když provedete změny a opravíte chyby, některá část programu, která je v tento moment mimo zorné pole programátora.

    Design shora dolů– vývoj aplikace (programu) shora dolů. Nejprve je vybráno několik podprogramů (modulů), které řeší nejglobálnější úkoly (například inicializace dat), poté je každý z těchto modulů podrobně popsán na nižší úrovni, rozčleněn na malý počet dalších podprogramů atd.

    Programování řízené událostmi- hlavní část programu je jedna nekonečný koloběh, který se dotazuje systému Windows, aby zjistil, zda existuje nová zpráva o události. Když je detekována událost, zavolá se podprogram zodpovědný za zpracování události. Smyčka pokračuje, dokud není přijata zpráva „vypnutí“.

    Události mohou být

    Zvyk(vznikají v důsledku akcí uživatele)

    systémové(vznikají v OS, například zpráva od časovače)

    programový(vygenerováno programem, například potřebujete ošetřit chybu)

    Výjimka- situace v programu nebo OS, která vyžaduje okamžitou reakci, například dělení 0.

    Typy programování

      Strukturované funkcionální programování Logické programování Automatové programování Procedurální programování Objektově orientované programování Prototypové programování Aspektově orientované programování Komponentově orientované programování

    Logické programování- paradigma programování založené na automatickém dokazování teorémů, stejně jako část diskrétní matematiky, která studuje principy logického vyvozování informací na základě daných faktů a odvozovacích pravidel. Logické programování je založeno na teorii a aparátu matematické logiky využívající matematické principy rozlišení. (Jazyk Prolog).

    Procedurální (imperativní) programování je odrazem architektury tradičních počítačů, kterou navrhl von Neumann ve 40. letech 20. století. Teoretickým modelem procedurálního programování je algoritmický systém zvaný Turingův stroj.

    Program v procedurálním programovacím jazyce se skládá ze sekvence operátorů (instrukcí), které definují postup řešení problému. Tím hlavním je operátor přiřazení, který slouží ke změně obsahu paměťových oblastí. Koncept paměti jako úložiště hodnot, jehož obsah lze aktualizovat příkazy programu, je zásadní pro imperativní programování.

    Provádění programu je redukováno na sekvenční provádění operátorů za účelem transformace výchozí stav paměti, tedy hodnot počátečních dat, až po konečnou, tedy k výsledkům. Z pohledu programátora tedy existuje program a paměť, přičemž první postupně aktualizuje obsah druhé paměti.

    Procedurální programovací jazyk umožňuje programátorovi definovat každý krok v procesu řešení problému. Zvláštností takových programovacích jazyků je, že úkoly jsou rozděleny do kroků a řešeny krok za krokem. Pomocí procedurálního jazyka programátor definuje jazykové konstrukce pro provádění sekvence algoritmických kroků.

    Procedurální programovací jazyky

    Ada (jazyk obecný účel)

    Basic (verze od Quick Basic po Visual Basic)

    Fortran

    Modul-2

    Funkcionální programování kombinuje různé přístupy k definici výpočetních procesů založené na poměrně rigorózních abstraktních konceptech a metodách zpracování symbolických dat. Programování pomocí matematického konceptu funkce způsobuje určité potíže, proto funkcionální jazyky v té či oné míře poskytují i ​​imperativní vlastnosti, které zhoršují návrh programu (například možnost bezbolestných dalších změn). Dalším rozdílem od imperativních programovacích jazyků je deklarativní povaha popisů funkcí. Programové texty ve funkcionálních programovacích jazycích popsat"jak problém vyřešit", ale ne předepsat sled kroků k řešení. První navržený funkční jazyk byl Lisp.

    Strojový jazyk je programovací jazyk pro reprezentaci programů ve formě, která umožňuje jejich přímou implementaci hardwarem konkrétního počítače.

    Nízkoúrovňové jazyky- Assembler a Macro Assembler.

    Značkovací jazyk dat v počítačové terminologii soubor znaků nebo sekvencí vkládaných do textu za účelem předávání informací o jeho výstupu nebo struktuře. Patří do třídy počítačových jazyků. Textový dokument, psaný pomocí značkovacího jazyka, obsahuje nejen samotný text (jako posloupnost slov a interpunkčních znamének), ale také další informace o jeho různých částech, například označení nadpisů, zvýraznění, seznamů atd. těžké případy Značkovací jazyk umožňuje vkládat do dokumentu interaktivní prvky a obsah z jiných dokumentů.

    Značkovací jazyky Jsou používány všude tam, kde je vyžadován formátovaný textový výstup: v typografii (SGML, TeX, PostScript, PDF), uživatelská rozhraní počítače (Microsoft Word, OpenOffice, troff), World Wide Web (HTML, XHTML, XML, WML, VML, PGML, SVG).

    XML (Hypertext Markup Language) je standardní značkovací jazyk pro dokumenty na World Wide Web.

    Jáva je objektově orientovaný programovací jazyk vyvinutý společností Sun Microsystems Corporation jako multiplatformní, interpretovaný, objektově orientovaný programovací jazyk používaný k vytváření aplikací založených na webovém prohlížeči s vysokou úrovní interaktivity.

    Jáva. Objektově orientovaný jazyk programování. hlavní rys tohoto jazyka je kompilace nikoli do strojového kódu, ale do bajtkódu, kde každý příkaz zabírá 1 bajt a kterou lze spustit na libovolném počítači s libovolným operačním systémem, pokud je k dispozici interpret. Tento tlumočník volal " virtuální strojJáva". Java programy lze přenášet ze stroje na stroj jako zdrojový kód nebo jako bytecode. Co se týče oblíbenosti, Java je na druhém místě na světě po Basicu.

    Jávaskript- programovací jazyk, který je vyvíjen na základě jazyka Java a je používán jako součást html stránek za účelem zvýšení funkčnosti stránek.

    Hlavní rozdíl Jazyk Jávaskript z jakéhokoli jiného programovacího jazyka v tomto java skripty umístěn uvnitř html stránky a nemohou existovat jako samostatné programy, ale fungují pouze při spuštění v prohlížečích.

    SQL(Structured Query Language) - jazyk strukturované dotazy. Structured Query Language je založen na relační algebra. Jedná se o jazyk pro manipulaci s daty, který vám umožňuje popsat podmínky pro vyhledávání informací, aniž byste pro to specifikovali posloupnost akcí potřebných k získání odpovědi. SQL je standardním prostředkem pro přístup k databázovému serveru. Standard SQL obsahuje komponenty pro definování, úpravu, ověřování a ochranu dat.

    Prolog(Angličtina) Prolog) je logický programovací jazyk a systém založený na predikátovém jazyce matematické logiky Hornových klauzulí, který je podmnožinou predikátové logiky prvního řádu. Hlavními pojmy v jazyce Prolog jsou fakta, pravidla pro odvození a dotazy, které umožňují popisovat báze znalostí, postupy pro odvození a rozhodování.

    INZERÁT je programovací jazyk pro vestavěné systémy. Je to univerzální programovací jazyk pro tvorbu komplexní systémy, který se vyznačuje vysokou mírou nezávislosti na operačních systémech a poskytuje podporu pro paralelní zpracování dat v reálném čase.

    Integrované programovací systémy zahrnují

    · textový editor

    kompilátor

    editor odkazů

    knihovny funkcí

    debugger (krok za krokem)

    Vizuální prostředí pro rychlý návrh:

    Základní; Microsoft Visual Basic

    Pascal; Borland Delphi

    C++; Microsoft Visual C++

    Jáva Borland JBuilder

    C#; Microsoft Visual? Borland C# Builder

    Architektura softwarové systémy : samostatná aplikace(funguje na jednom počítači ); souborový server architektura, klient-server architektura, multilink architektura (distribuce funkcí mezi servery zapojené v sérii = odkazy), distribuovaná (program ve formě sady komponent, který lze spustit na libovolných serverech připojených k síti).

    Paralelní počítání– současné provádění nezávislých částí jednoho programu na různých procesorech.

    Pokud jde o ISO 9126, kvalita ( softwarových nástrojů) lze definovat jako kumulativní charakteristiku studovaného softwaru s přihlédnutím k následujícím komponentám:

      Spolehlivost Údržba Praktičnost Efektivita Mobilita Funkčnost

    Objektově orientované programování

    Objektově orientovaný jazyk- programovací jazyk, který podporuje koncepci objektů, jejich vlastnosti a metody zpracování, stejně jako podporující dědičnost a polymorfismus.

    Třída je speciální datový typ, který obsahuje pole, metody a vlastnosti.

    pole- data zapouzdřená ve třídě

    Vlastnosti– speciální mechanismus, který reguluje přístup k polím.

    Metody– procedury a funkce zapouzdřené ve třídě.

    Třídy jsou založeny na 3 základních principech nazývané zapouzdření, dědičnost a polymorfismus.

    Zapouzdření- spojení tří entit (polí, metod a vlastností) do jednoho celku (tedy do třídy), což umožňuje do značné míry izolovat třídu od zbytku programu, učinit ji soběstačná pro řešení konkrétního problému. Například třída Tform obsahuje (zapouzdřuje) vše potřebné k vytvoření okna Windows.

    Dědictví– schopnost vytvářet nové třídy založené na existující třídě s dědičností všech jejích polí, metod a vlastností a přidáním nových. Třída, která nemá předchůdce, se nazývá základní třída.

    Objekt je instancí implementace třídy.

    Objekt(podle simulátoru) je soubor vlastností (datových struktur specifických pro tento objekt), metod pro jejich zpracování (podprogramy pro změnu vlastností) a událostí, pro které daný objekt mohou reagovat a vedou zpravidla ke změně vlastností objektu.

    Třída ze kterého se dědí, se nazývá základna ( na simulátoru ) nebo rodič.

    Třídy, které vycházejí ze základny, se nazývají potomci, dědici nebo odvozené třídy. Odvozené třídy dědí vlastnosti a metody ze základní třídy.

    Pokud má základní třída řadu vlastností a metod pro zpracování seznamů dat, pak všichni potomci základní třídy dědí tyto vlastnosti a metody, ale zároveň mohou mít nové vlastnosti a metody pro zpracování.

    Abstraktní třída v objektově orientovaném programování třída, která není instanciována. Abstraktní třída nemůže mít objekty, protože nedefinuje operace s objekty; objekty musí patřit do konkrétních podtříd abstraktní třídy. Abstraktní třídy se používají ke specifikaci operačních rozhraní.

    Hlavní - Koncept hlavní třídy neexistuje.

    Objektově orientovaný přístup je založen na konceptu třídní hierarchie.

    V objektově orientovaném programování pojem objektu odpovídá schématu A.

    · Při vytváření programu byly použity tři vizuálně odlišné objekty založené na různých třídách. Všechny objekty umožňují zpracovávat seznamy dat (ovšem v různém grafickém znázornění) a mají různé vlastnosti. Obrázek také ukazuje hierarchickou strukturu tříd pro tyto objekty. Třída zvýrazněná červeně pro tři použité třídy bude základní

    Byl vyvinut model programu ve vizuálním programovacím jazyce Visual Basic, který generuje náhodná čísla v souladu se zvoleným zákonem a určitými parametry. V rozvinutém GUI aplikace používané _____ 9 _____ vizuálních objektů.

    Celkem je použito 9 objektů:
    2 objekty "Vstupní pole",
    3 objekty "Nápis",
    1 objekt rozevíracího seznamu,
    1 Vyberte objekt,
    1 objekt "tlačítko",
    · 1 objekt "Formulář".

    Byl vyvinut program pro zpracování grafických obrázků pomocí objektově orientovaného přístupu. Seznam dostupných procedur zpracování je znázorněn na obrázku a je implementována obsluha události, která zpracovává pouze ty události, které určí uživatel. Kolik vlastností objektu obrázku se změní, pokud se zpracování provede s touto volbou? 3

    Ze všech vybraných událostí pouze procedury "Změnit velikost obrázku", "Změnit kontrast", "Změnit jas" mění vlastnosti objektu obrázku.

    Program byl vytvořen pomocí objektově orientovaného přístupu. Na formuláři jsou dva objekty: "Tlačítko" a "Pole výběru". Ovladač události kliknutí na tlačítko je naprogramován tak, aby měnil vizuální vlastnosti těchto objektů. Obrázek ukazuje objekty a jejich umístění před a po provedení deklarované události. Pokud předpokládáme, že prostorové souřadnice objektů jsou také vizuálními vlastnostmi, pak ___ 7 ____ vizuální vlastnosti.

    Objekt Select Box změnil vlastnosti: Horizontal Position a Vertical Position, stejně jako Label a Selection State. Objekt Button má změněnou horizontální polohu a vertikální polohu a také svůj popisek.