Principy překladačů Běhová podpora Jakub Yaghob. Běhová podpora Statická podpora jazyka Překladač Interface na knihovny Hlavičkové soubory Dynamická podpora.

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

CIT Paměti Díl X.
Počítače a programování 1 Přednáška 13 Jiří Šebesta.
Programovací jazyk C++
Programování 2 Cvičení 5.
10. Dynamické datové struktury
Pole, ukazatele a odkazy
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Programování v Pascalu Přednáška 4
Programování v Pascalu Přednáška 10 RNDr. Hana Havelková.
Programování v Pascalu Přednáška 5 RNDr. Hana Havelková.
Algoritmizace a programování Podprogramy v Delphi - 10
Středoevropské centrum pro vytváření a realizaci inovovaných technicko-ekonomických studijních programů Registrační číslo CZ.1.07/2.2.00/ Tento.
Databázové systémy II Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Principy překladačů Mezikód Jakub Yaghob.
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
Programování v Pascalu Přednáška 7
Materiály k přednášce Úvod do programování Ondřej Čepek.
Principy překladačů Interpretované jazyky Jakub Yaghob.
Generování mezikódu Jakub Yaghob
Principy překladačů Architektury procesorů Jakub Yaghob.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
MATLAB® ( Funkce v Matlabu ).
Procedury a funkce Základní charakteristika a použití v programu.
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
13AMP 6. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Synchronizace procesů Synchronizace procesů Producent-Konzument Producent-Konzument.
Deklarace Radim Štefan. 2 Použité zkratky BP – Borland Pascal De – Delphi.
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
Algoritmy a programovací techniky
PHP – Základy programování
Sémantická analýza Jakub Yaghob
Syntaxí řízený překlad
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Počítače a programování 1
5. Procedury a funkce Procedura je samostatně odladěný algoritmus, v programu může být volána vícekrát. Dvojí terminologie - rozlišujeme procedury a funkce.
Informatika I 7. přednáška RNDr. Jiří Dvořák, CSc.
Informatika I 8. přednáška RNDr. Jiří Dvořák, CSc.
VISUAL BASIC PRALG.
10. Dynamické proměnné Dynamická proměnná se nezavádí deklarací proměnných, ale vzniká za běhu programu provedením speciálního příkazu. Nemá přidělen žádný.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
OSNOVA: a)Funkce – úvod b) Hlavičky funkcí c) Rekurze funkcí d)Knihovny funkcí e)Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
Vnitřní (operační paměť)
GYMNÁZIUM, VLAŠIM, TYLOVA
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
FEL Komunikátor. Memory Leak program konsumuje operační paměť, kterou neumožňuje uvolnit o uvolnění paměti stará Garbage Collector ▫plně v režii Java.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Funkce, intuitivní chápání složitosti
Pokročilé datové typy (struktury, unie, dynamické proměnné)
IB111 Práce se soubory Správa paměti. Práce se soubory v Pythonu Soubor musíme „otevřít“ Poté s ním pracujeme –Čteme a/nebo zapisujeme Nakonec musíme.
C-Sim verze 5.0. Charakteristika Softwarový nástroj pro simulaci v diskrétním čase Použitá metodou paralelních procesů Navržen podle vzoru jazyka SIMULA.
Algoritmy Úkol: Vytvořte algoritmus pro zadání PIN do mobilu.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Překladače Operační paměť © Milan Keršláger
Překladače 6. Sémantická analýza
Alokace paměti v C++ Funkce v C++ a parametry typu reference, implicitní parametry funkcí.
Počítače a programování 2
Y36PJC Programování v jazyce C/C++
Překladače Syntaktická analýza
Vzorové řešení zápočtového testu
Programování v jazyce C++
Překladače 3. Zápis programu
Databázové systémy a SQL
Správa paměti.
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
Překladače 6. Sémantická analýza
MU002 – Informační technologie Základy algoritmizace 5/13
C# přehled vlastností.
Paměť.
Transkript prezentace:

Principy překladačů Běhová podpora Jakub Yaghob

Běhová podpora Statická podpora jazyka Překladač Interface na knihovny Hlavičkové soubory Dynamická podpora jazyka Prostředí běhu programu Rozdělení paměti Stav paměti před spuštěním Konstruktory, destruktory globálních objektů Knihovny Volací konvence

Rozdělení paměti Rozdělení paměti za běhu v procedurálních programech Heap Kód Statická data Zásobník Heap Kód Neinicializovaná statická data Zásobník vlákna n Zásobník vlákna 1 Konstanty Inicializovaná statická data

Aktivační záznam Odkaz na AZ AZ volající funkce Přístupový odkaz Odkaz na data sémanticky nadřazených funkcí Uložený stav stroje Návratová adresa do kódu Registry Návratová hodnota Aktuální parametry Odkaz na AZ Přístupový odkaz Uložený stav stroje Lokální data Přechodné hodnoty

Volací konvence Mandlování veřejných jmen Mechanismus volání funkcí a procedur Zodpovědnost za úklid Způsob předávání parametrů Registry, zásobník Pořadí ukládání parametrů na zásobník Způsob předávání návratové hodnoty funkcí Registry, zásobník Požadavky na uchování stavu registrů Registry pro registrové proměnné

Mechanismus volání funkcí Parametry, návratová hodnota Odkazy, stav stroje Lokální a přechodná data Parametry, návratová hodnota Odkazy, stav stroje Lokální a přechodná data Aktivační záznam volajícího Aktivační záznam volaného FP Odpovědnost volajícího Odpovědnost volaného CPascal Odpovědnost volajícího Odpovědnost volaného

Přístup k sémanticky nadřazeným proměnným Pascal Vnořené funkce procedure A; var I:integer; procedure B; var J:integer; procedure C; begin …I+J… end; begin if I>0 B else C; end; begin B end; Parametry - nic Předchozí AZ RA I Parametry - nic Předchozí AZ RA J Odkaz na A Parametry - nic Předchozí AZ RA J Odkaz na A Parametry - nic Předchozí AZ RA Proměnné - nic Odkaz na A Odkaz na B

Předávání parametrů Předávání hodnotou Aktuální hodnota parametru vypočtena a okopírována Vstupní parametry, chová se jako lokální proměnná C, „nevařené“ parametry v Pascalu Předávání referencí Volající předá adresu na místo v paměti Vstupně/výstupní parametry & v C++, „vařené“ parametry v Pascalu Předávání jménem Chová se jako makro – aktuální výraz se „inlinuje“ na místech použití

Dynamická paměť Alokační algoritmy Spojité bloky volné velikosti Garbage collector Implicitní dealokace Čítače odkazů Značkování V jistém okamžiku se zastaví běh programu Všechny ukazatele musí být známy včetně typů Všechny bloky se označí jako nepoužité Prochází se rekurzivně ukazatele a značkují se použité bloky Nepoužité se odstraní Lze i setřepat