22-09-20161 Fromelle sprog Per P. Madsen Afd. for proceskontrol.

Slides:



Advertisements
Lignende præsentationer
Programmeringsparadigmer.
Advertisements

Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Begreber og Redskaber 1 BRP.
1 Pentium IA-32 Maskinarkitekturen Kort resume – uge 5.
1 C-kursus 6. Lektion n Repetition af 5. Lektion n Vi mødes igen kl til gennemgang af 6. Lektion.
Symbolsk maskinsprog.
1 Parsing. 2 Mål: Et program til indlæsning og beregning af aritmetiske udtryk Eksempel: Beregn (3*5 + 4/2) - 1 Løs et lettere problem først: Læs en streng.
NetBeans Installation og brug.
Oversættelse af Java-programmer JavaBytecode javac Normalt oversættes Java-programmer til bytecode, som fortolkes af en JVM (Java Virtual Machine). Java.
Automater, sprog og compilere
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
Intro Variabler - datatyper. 2. forelæsning Hvad skete sidste gang Hvad er PHP? Kursussammensætning: læse – newsgroup – forelæsning – øvelsestime – aflevering.
Sproghistorie Syntaks (struktur) Semantik (Indhold)
1 Projektforslag på modul 2 ved Keld Helsgaun. 2 Fagligt indhold Projekt- og kursusarbejdet skal give de studerende indsigt i følgende emnekredse: Gå.
GP5, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 5 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
FEN IntroJava AAU1 Opsamling: afvikling af Java-programmer Input fra keyboard og fil Fra en prompt Fra BlueJ Fra NetBeans.
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
Endelige Automater Simple sprog (regulære sprog) kan beskrives vha. Regulære udtryk. Regulære sprog kan altid parses vha endelige automater. Nondeterministik.
Automater, sprog og compilere Per P. Madsen.
DComNet1 Computere og Netværk (dComNet) Jens Kargaard Madsen Jens Bennedsen
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
Den relationelle model
Begreber og Redskaber 2. Plan for idag Noget om bestanddelene i et programmeringssprog Syntaksbeskrivelse af java Næste gang: –Binære tal –Repræsentation.
Compiler/fortolker struktur Mellem- kode Mellemk.- optimering Kode- generering Kode- optimering Lexikalsk- analyse Syntax- analyse Semantik- analyse -
XML Rasmus D. Lehrmann DM Indhold Hvad er XML? XML standarder Hvor bruges XML? XML struktur Træ struktur Element & Attribute Syntaks i XML Stylesheets.
Buttom-up parsning: Hvor er vi Mellem- kode Kald til Runtimesys. Mellemk.- optimering Kode- generering Kode- optimering Leksikalsk- analyse Syntax- analyse.
VPG/Otto Knudsen1 VPR - Repetition Trådning Distribueret Programmering Sprogteori Grafer.
FEN Sprog1 Lidt om sprog Definition: Et sprog over et endeligt alfabet  (sigma) er en mængde af strenge dannet af tegn fra . Eksempel: Lad.
Delphi og C++ Builder C++ Builder. C++ Historie Sproget blev designet for AT&T af danskeren Bjarne Stoustrup En objektorienteret videreudvikling.
Begreber og Redskaber 1. Emner i kurset Om sprog og sprogbeskrivelse Repræsentation af tal i maskinen –Heltal, negative tal, kommatal, logiske værdier.
To måder at overføre objekt- referencer mellem processer (1) Via naming service - interface RMISolver (2) Som parametre til fjernprocedurekald - interface.
Sprog og grammatik Et sprog L(G) er mængden af sætninger afledt af grammatikken G. Grammatik er en 4-tupel: G={N, ,P,S}. Hvor: N er et sæt af non-terminale.
Sproghistorie Syntaks (struktur) Semantik (Indhold)
Compiler/fortolker struktur Mellem- kode Mellemk.- optimering Kode- generering Kode- optimering Lexikalsk- analyse Syntax- analyse Semantik- analyse -
Begreber og Redskaber 1. Rettelse til sidst Sidst vrøvlede jeg lidt om algoritmer: Ordet stammer fra Abu Ja’far Mohammed ibn Musa al- Khowarizm der i.
DComNet1 Computere og Netværk (dComNet) Jens Kargaard Madsen Jens Bennedsen
Procestræ under afvikling af cp init login shell cp cp src dest.
Paradigmer i Programmering 2. Sammensatte typer Tupler og lister Programmering med rekursion Programmering med pipe-lines Programmering med polymorfe.
Intro Siden sidst: evaluering på opgaver og virtuel kursus.
Paradigmer i Programmering 1. Program for idag : Funktioner og udtryk i SML : Øvelse : Frokost – 14.00: Deklarative.
Begreber og Redskaber 1. Programmeringssprog Sprog = mængde af sætninger ?
Begreber og Redskaber 1 BRP.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
Paradigmer i Programmering 1. Plan for kurset 4 x Mads R, 4 x Torben B, 2 x opgave MR: Funktionsprogrammering, SML TB: Logikprogrammering, Prolog Opgave:
Paradigmer i Programmering 4. Resten af ML -Læse fra/skrive til filer -Interaktive programmer -Separat oversættelse -Parsergeneratorer.
Begreber og Redskaber 1. Plan for kurset Formål –Give et begrebsmæssigt grundlag for programudvikling, samt overblik over udvalg af redskaber og metoder.
JavaCC Top-down (Recursive descent). Mest populære mht Java. Regulær grammatik og Context-free grammatik i en fil. Tillader EBNF: (..)*, (..)+ og (..)?
Intro Siden sidst: evaluering på opgaver og virtuel kursus.
Per Printz Madsen 1 Linux kernen Monolithic kernel Support for dynamiske moduler Få kerne tråde Preemptive.
Paradigmer i Programmering 3. Højere ordens funktioner Idag: Højere ordens funktioner Algebraiske datatyper Næste gang: I/O, Filer, interaktive programmer.
Den relationelle model
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Analyseværktøjer [CLRS, 1-3.1]
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DAIMIIntroducerende objektorienteret programmering2C.1 Syntaksbeskrivelse Syntaksdiagrammer og EBNF-notation.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
DMasArk1 Pentium IA-32 Maskinarkitekturen. dMasArk2 Historie (1).. starter i 1970 med udviklingen af Intel 4004:
 Bærbak & Caspersen, 2000Introducerende objektorienteret programmering2B.1 Syntaksbeskrivelse Syntaksdiagrammer og EBNF-notation.
Syntaksbeskrivelse Syntaksdiagrammer og EBNF-notation.
Grammatikker, sprog og parsing Rasmus D. Lehrmann DM
Programmering I Java/C# Datatekniker Dit første projekt.
Undervisning på weekendindkald lørdag den Torben Sebro.
Embedded SW – C & picoBlaze
I det efterfølgende kommer nogle eksempler på C kode som adskiller sig fra det vi normalt anvender i C# Hvis du har behov for hurtigt at afprøve små stumper.
Sproghistorie Syntaks (struktur) Semantik (Indhold)
Programmering.
Tråde & Executors – uge 2.
Tråde & Executors – uge 2.
Præsentationens transcript:

Fromelle sprog Per P. Madsen Afd. for proceskontrol

Indhold. MM1: Programmeringssprog - compiler. MM2: Formelgramatik og syntaksbeskrivelsesformer. MM3: Endelige automater. MM4: LEX - et værktøj til genkendelse af regulære sprog. MM5: Top-down parsning (Predictive recursive decent ). MM6: Top-down parsning (JavaCC ). MM7: Bottom up parsing og YACC. MM8: Back-end. MM9: Sprog typer: Imperative sprog, logiske sprog mfl. MM10: Eksamems opgave.

Sprog Et sprog L(G) er mængden af sætninger afledt af grammatikken G. Grammatik er en 4-tupel: G={S,P,N,T}. Hvor: S er sætnings- eller startsymbolet. P er et sæt af produktioner N er et sæt af non-terminale symboler T er et sæt af terminale symboler

Grammatik program -> ’program’ ’(’ idT ’)’ varlist ’begin’ stlist ’end’ varlist -> type idlist ’;’ type -> ’float’ | ’int’ idlist -> idT idelmlist idelmlist -> ’,’ idT idelmlist |  stlist -> statement stlist |  statement -> idT ’=’ exp ’;’ exp -> idT bexp | ’(’ exp ’)’ bexp bexp-> ’+’ exp bexp | ’-’ exp bexp | 

Syntaks Syntaks: Læren om hvordan de enkelte ord sammensættes. Et syntaktisk korrekt program/sprog er et sprog bestående af sætminger afledt af den grammatik der definere sproget.

Source/Target sprog Compiler Source sprogTarget sprog Fortolker Source sprog Kald til runtime-/ operativ-systemet Assembler, mellemkode fx Java.class, andet sprog fx C.

Source sprog Generelle sprog: Java, C++, Dedikerede sprog: Latex, XML, HTML, VRML, Matlab,,,,, Formålet med dedikeret sprog: ’’Easy to Use’’ lag oven på div. Software for nemt at kunne løse dedikerede opgaver. Fx: LaTeX: Skrive tekst oven på TEX typesætter. Matlab: Beregne og behandle data oven på matrix og grafik bib. VRML: Opbygge 3D vernden oven på 3D grafik bib.

Target sprog Target sprog: Skal kunne vidrebearbejdes af målsystemet. –Assembler til målsystemet. –Mellem kode hvis det kan vidrebearbejdes af målsystemet –Fx: C hvis der til målsystemet findes en C compiler. –Kode til en virtuelmaskine.

Target sprog Tre adr.instruktioner fx: Mellemkode. Res= opr1 Operation opr2 Alm CPU. MOVE src,dist Simple risc CPU. MOVWF dist SUBWF adr Stak maskine. Fx JVM Load opr1 Load opr2 Sub Out Res

#include float a,b,c; float e[5]; int *ptr; void viggo() { a= b+c; } int main() { b=2; c=3; viggo(); printf("a= %f\n",a); } 1.file"tmp.c" 2.section.text 3.globl _viggo 4 _viggo: pushl%ebp E5 movl%esp, %ebp D flds_b D fadds_c f D91D1000 fstps_a D popl%ebp C3 ret 12 LC3: D2025.ascii "a= %f\12\0" A00

#include float a,b,c; float e[5]; int *ptr; void viggo() { a= b+c; } int main() { b=2; c=3; viggo(); printf("a= %f\n”,a); } 14.globl _main 15 _main: e 55 pushl%ebp f 89E5 movl%esp, %ebp EC08 subl$8, %esp E4F0 andl$-16, %esp B movl$0, %eax c 29C4 subl%eax, %esp e B movl$0x , %eax A movl%eax, _b B movl$0x , %eax d A movl%eax, _c E8B9FFFF call_viggo 26 FF EC04 subl$4, %esp a D flds_a D6424F8 leal-8(%esp), %esp DD1C24 fstpl(%esp) pushl$LC c E89FFFFF call_printf 32 FF C410 addl$16, %esp C9 leave C3 ret

#include float a,b,c; float e[5]; int *ptr; void viggo() { a= b+c; } int main() { b=2; c=3; viggo(); printf("a= %f\n",a); } 36.comm _a,16 37.comm _b,16 38.comm _c,16 39.comm _e,32 40.comm _ptr, ident"GCC: (GNU) 3.3.1" GAS LISTING tmp.s page 2 DEFINED SYMBOLS *ABS*: tmp.c tmp.s:4.text: _viggo *COM*: _b *COM*: _c *COM*: _a tmp.s:15.text: e _main *COM*: _e *COM*: _ptr UNDEFINED SYMBOLS _printf

Compiler/fortolker struktur Mellem- kode Kald til Runtimesy s. Mellemk. - optimerin g Kode- genererin g Kode- optimerin g Lexikalsk - analyse Syntax- analyse Semantik- analyse if viggo == 3 then.... If token Ident token IdentX(type=Int) Gen(Comp, *Viggo,3) Gen(jump if not, adress) Compiler Fortolker Front end Back end