|
|
- Pia Dieter
- vor 8 Jahren
- Abrufe
Transkript
1 CACAO-EineezienteJavaVM Implementierung InstitutfurComputersprachen TechnischeUniversitatWien Argentinierstrae8 AndreasKrall ZusammenfassungCACAOisteineezienteImplementierungeiner A-1040Wien JavaVM,dieaufJust-In-TimeUbersetzungberuht.CACAOubersetzt wahrendderlaufzeitdieaufgerufenenmethodenaufmaschinencodefur ZwischencodeindenregisterbasiertenMaschinencodevonRISC-Prozessorenum.DabeiwerdenBefehlekombiniert,Kopierbefehleentfernt unddenvariablenmaschinenregisterzugewiesen.beiderentwicklung Speicherverbrauchgeachtet.CACAOistzurZeitdieschnellsteJavaVM ZyklenfurdieUbersetzungeinesZwischencodebefehls. denalphaprozessor.derubersetzerformtdabeidenstackbasierten desubersetzerswurdeaufextremkurzeubersetzungszeitundgeringen ImplementierungfurdenAlpha-Prozessorundbenotigtwenigerals1000 auchfuranderezielarchitekturenzuubersetzen. Moglichkeitengeschaen,denerzeugtenMaschinencodeabzuspeichern, undnichtnurjust-in-time,sonderndasganzeprogrammaufeinmal, PowerPC-undSparc-Prozessorerweitert.Gleichzeitigdazuwerdendie ZurZeitwirdCACAOumMaschinencodegeneratorenfurdenMIPS-, 1Einleitung Java's[AG96]ErfolgalsProgrammiersprachekommtvonseinerRollealsInter- einembrowserausgefuhrtwerden,istaberbeigroenprogrammenoderzeitkritischenanwendungeninakzeptabel.zweilosungenfurdiesesproblembieten DieStandardimplementierungderJavaVMalsInterpretermachtdieAusfuhrung unabhangigedarstellungvonprogrammenimzwischencodederjavavm[ly96]. vonprogrammenlangsam.dasspieltkeinerolle,wennkleineanwendungenin net-programmiersprache.diegrundlagefurdiesenerfolgistdiemaschinen- sichan: alsauchubersetzer.mitcacaohabenwirunsfurubersetzerentschieden,da {spezialisiertejava-prozessoren dieseransatzportableristundmehrmoglichkeitenfuroptimierungenbietet {UbersetzungdesZwischencodesaufMaschinencode SUNhatbeideWegeeingeschlagenundentwickeltsowohlJava-Prozessoren
2 deraufgerufenenmethodenwahrendderlaufzeit(just-in-timeubersetzer). werden:ubersetzungdesgesamtenprogrammsaufeinmaloderubersetzung [KEG98].DieUbersetzungaufMaschinencodekannaufzweiArtendurchgefuhrt CACAOunterstutztbeideMethoden.CACAOundseineImplementierungsind inmehrerenartikelnbeschrieben[kg97][kp98]undistuberdasinternetfrei erhaltlich. 2VerwandteArbeiten miersprachenaufunterschiedlichearchitekturenzulosen. salcomputerorientedlanguage)wurdefureineverwendunginubersetzern DieIdeemaschinenunabhangigerZwischendarstellungenistschonsehraltund vorgeschlagen,umdasproblemderubersetzungvielerverschiedenerprogram- gehtbisindasjahr1960zuruck[ste61].diezwischenspracheuncol(universchinevonpascal[pd82],beeinut.p-codeerlangtegroenbekanntheitsgrad durchseineverwendungimucsd-pascal-system.genausowiebeiderjavavm dieseprozessorenabernichterfolgreich. gabesmikroprozessoren,diep-codedirektausfuhrenkonnten.ammarktwaren DasDesignderJavaVMwurdesehrstarkvonP-Code,dervirtuellenMadarstellungdesGardensPointUbersetzersberuhtauchaufeinerStackmaschine, diedcodegenanntwurde[gou97].dcodewurdestarkvonp-codebeeinut. siertezwischendarstellung.diesedarstellungwurdeentworfen,umtrotzkurzer UbersetzungszeitenschnellenMaschinencodeerzeugenzukonnen.DieZwischen- DasAmsterdam-Compiler-Kit[TvSKS83][TKLJ89]verwendeteinestackba- FurDcodewurdensowohlInterpreteralsauchUbersetzerfurverschiedeneArchitekturenentwickelt. auftreten,sindauchvonderprogrammierspracheforthbekannt.inseinerdoktorarbeit[ert96]undin[ep97]beschreibtantonertlrafts,einforthsystem, dasmaschinencodewahrendderlaufzeiterzeugt.dieubersetzunginmaschi- DieProbleme,diebeiderUbersetzungvonStackcodenachMaschinencode nencodeerfolgtubereinenzwischenschritt,inwelchemdiestackbefehlewieder inarithmetischeausdruckezuruckubersetztwerden,dieineinemazyklischen gerichtetengraphendargestelltwerden.in[em95]ubersetztertldieprogrammierspracheforthunterverwendungvoncaufmaschinencode.dabeiwerden StackzellendurchlokaleVariableneinerC-Funktiondargestellt.Optimierung lungsumgebungvonsymantec.sunbrachteauchjitubersetzerfursparc- undpowerpc-prozessorenheraus,sgifurmips-prozessorenundvorkurzem DieerstenJITUbersetzerkamenvorzweiJahrenvonSUNundfurdie BrowservonNetscapeundMicrosoftheraus.DarauffolgtebalddieEntwick- undmaschinencodeerzeugungwerdendannvomc-ubersetzerdurchgefuhrt. DigitalfurdenAlpha-Prozessor.KaeisteinfreiverfugbarerJITUbersetzer dervontimwilkinsonentwickeltwurde( dieseerwahntensystemegibteskeinebeschreibungderverwendetenubersetzungstechniken. 2
3 denstackdurchregister.caeineistkeinjitubersetzer,esubersetzteinkomplettesprogrammimvorhinein.daisy(dynamicallyarchitectedinstruction Kollegenbeschrieben[HGH96].EswerdendabeizweiUbersetzungmethodenverwendet.DieeinfacheMethodeemuliertdenStack,diebessereMethodeersetzt DasUbersetzungsschemavonCaeinewirdimArtikelvonHsiehundseinen dezuermoglichen.diekompatibiliatmitaltenarchitekturenwirddabeidurch SetfromYorktown)isteineVLIWArchitekturdiebeiIBMentwickeltwurde, JITUbersetzungermoglicht.DerUbersetzerfurdieJavaVMistin[EAH97] umeineezienteausfuhrungvonpowerpc,s/390undjavavmmaschinenco- beschrieben. thodedermaschinencodeerzeugungfureinenjitubersetzer.dieserubersetzer machtoptimierungenwieeliminationvonbereichsuberprufungen,auswertung vongemeinsamenteilausdruckenundzweiverschiedeneartenvonregisterzuteilung,eineeinfacheundeineglobaleaufprioritatenbasierte.dieergebnisse Adl-TabatabaiundseineKollegen[ATCL+98]beschreibeneineezienteMe- zeigen,dafurvielebenchmarkprogrammediekomplexeregisterzuteilungmehr 3UbersetzungszeitverbrauchtalsdurchkurzereLaufzeitwiedereingebrachtwird. DieJavaVMisteinegetypteStackmaschine[LY96]mitunterschiedlichenBefehlenfurganzeZahlen,FliekommazahlenundZeiger.DerBefehlsatzbesteht Ubersetzungsgrundlagen ausarithmetisch/logischenbefehlen,vergleichs-undsprungbefehlen,befehlen furvariablen-undspeicherzugri,methodenaufruf,typuberprufungundsyn- chronisation.dasfolgendebeispielzeigtdiezwischendarstellungfurdiejava- Zuweisunga=b-c*d. iloadb iloadc iloadd imul isub ;pushcontentsofvariablec ;pushcontentsofvariableb ;pushcontentsofvariabled ;computec*d StackarchitekturderJavaVM.RISC-ProzessorenhabeneinengroenRegistersatz(derAlpha-Prozessorbesitzt32Ganzzahl-und32Fliekommazahlregister, zwischenspeicherundregister.dielokalenvariableneinermethodebenden sichnormalerweiseinregisternundwerdennurindenspeicherausgelagert, wennzuwenigregistervorhandensindoderaufrufvorschriftenesverlangen. welchealle64bitbreitsind).arithmetisch/logischebefehlewerdennuraufdatenausgefuhrt,diesichinregisternbenden.speicherbefehlebewegendiedaten istorea;popstacktopintovariablea DieArchitekturvonRISC-Prozessorenunterscheidetsichwesentlichvonder ;computeb-(c*d) werden(dievariablena,b,cunddbendensichinregistern): mierendenubersetzerindiefolgendenzweialpha-maschinenbefehleubersetzt DievorhergehendeJavazuweisunga=b-c*dwurdevoneinemopti- 3
4 StackvollstandigeliminiertunddieeinzelnenStackzellenwerdendurchtemporareVariablenersetzt,diesichnormalerweiseinRegisternbenden.Einenaivgen:MOVEb,t0 UbersetzungdesvorhergehendenBeispielswurdefolgendeAlpha-Befehleerzeu- WennJavaVMZwischencodeaufMaschinencodeubersetztwird,wirdder SUBLb,tmp0,a MULLc,d,tmp0 ;a=b-tmp0 ;tmp0=c*d MULLt1,t2,t1 SUBLt0,t1,t0 MOVEd,t2 MOVEc,t1 ;imul ;isub ;iloadd ;iloadc ;iloadb MethodezumEntfernenoderVermeidenderKopierbefehlenotig.Weitersmu einschnelleralgorithmsfurdieregisterzuteilungangewendetwerden. UmJavaVM-BefehleaufMaschinencodeabzubilden,istdahereineeziente MOVEt0,a ;istorea Befehleaufgebaut,dieeinfacherzuDekodierenist.ImzweitenDurchgangwird 4DerCACAOUbersetzer derstackanalysiert,wobeieinedatenstrukturerzeugtwird,dieeinerstatischen Stackdarstellungentspricht.GleichzeitigwerdendabeiBefehlekombiniert,VariablenabhangigkeitenuberpruftundderRegisterbedarfbestimmt.ImletzteporarenRegisterzugeteilt. 4.1Grundblockschnittstellendenition DurchgangwerdengleichzeitigmitderMaschinencodeerzeugungauchdietem- DieUbersetzungerfolgtindreiDurchgangen.ImerstenDurchgangwerden diegrundblockebestimmtundeswirdeinezwischendarstellungderjavavmwirddabeidertypdesregistersbestimmtundobderinhaltdesregistersubeblockgrenzewirdeinemxenregisterzugewiesen.wahrendderstackanalysdertaufwendigeverfahren.wirhabendahereinexeschnittstellendenition andengrenzenvongrundblockenfestgesetzt.jedestackzelleaneinergrund- EineoptimaleRegisterzuteilungbeiderVereinigungvonKontrollussenerforwirkungendieserxenRegisterschnittstellezuuntersuchen,habenwireineAnalyseaneinergroenJava-Anwendung,demjavacUbersetzerundallenseinen Bibliotheksmethoden,durchgefuhrt.Tabelle1zeigt,dainmehrals93%aller erhohen,unterbrechenmethodenaufrufenichteinengrundblock.umdieaus- Methodenaufrufeerhaltenbleibenmu.UmdieGroevonGrundblockenzu diequalitatdeserzeugtenmaschinencodeshat. Damitwirdklar,dadiesexeRegisterzuteilungkeinennegativenEinuauf FallederStackanGrundblockgrenzenleeristunddiemaximaleStacktiefe6ist. 4
5 Tabelle1.VerteilungderStacktiefeanGrundblockgrenzen Schnittstellen >6 4.2EntfernenvonKopierbefehlen wahrendderabarbeitungdesprogrammesauftretenwurde. UmunnotigeKopierbefehlezuentfernen,wirddasLadenvonDatensolange verzogert,bisdieinstruktionerreichtwird,diediesedatenbenotigt.abbildung derlaufzeitstacksonderneinestatischedarstellungdesstackzustandes,wieer 1zeigtdieBefehls-undStackdarstellungdesUbersetzers.DieserStackistnicht b?c?d imul c*d? EinBefehlhatZugriaufdenStackvorundnachderAusfuhrungdesBefehls.DerStackwirddabeidurcheinelineareListedargestellt.DiebeidenStacks Abbildung1.Befehls-undStackdarstellung sondernauchinformationendarubervonwelcherlokalenvariablendiesezelle werden.diesedarstellungkannnuneinfachfurdievermeidungvonkopierbefehlenverwendetwerden.jedestackzelleenthaltnichtnurdentypdieserzelle, konnendabeialsdiequelloperandenundderzieloperanddesbefehlsgesehen Variable. DerBefehl,derdieseZellealsQuelloperandbenotigt,verwendetdirektdielokale einekopieist.kopierbefehlevonvariablenanstackzellenwerdennichterzeugt. lokalevariableaufeinestackzelle(register)kopiertwerdenunddiesekopie spatereverwendungdieservariablenungultig.umdaszuvermeidenmudie istoreaschreibteinenneuenwertindievariableaundmachtdamiteine spielvonabb.2enthaltderstackeinkopiederlokalenvariablena.derbefehl ProblememitdieserMethodekonnenbeistore-Befehlenauftreten.ImBei- verwendetwerden. DaderStackalslineareListedargestelltist,mubeistore-Befehlendie- 5
6 iloada? dup iconst1iaddistorea a? a? 1??+ Abbildung2.Abhangigkeiten selistenachkopienvonlokalenvariablendurchsuchtwerden.tabelle2gibt dieverteilungderstacktiefebeistore-befehlenan.diestacktiefeisthierfast immer0. Tabelle2.VerteilungderStacktiefebeistore-Befehlen stackdepth0123>3 occurrences nenvonstore-befehlenanbefehlezuruckzubringen,dieeinergebnisberechnen undesineinerstackzelleablegenwurden.dabeigibtesahnlicheproblememit Abhangigkeitenzulosen. DiesestatischeStackdarstellungwirdauchdazuverwendet,umInformatio- 4.3Registerzuteilung nummerzu,wennsichdielebensbereichedieservariablennichtuberlappen. DerjavacUbersetzerteiltverschiedenenlokalenVariablendieselbeVariablen- StackzellenhabenihrenLebensbereichimplizitdurchihreStackpositiongekennzeichnet.WahrendderStackanalysewerdenStackzellengekennzeichnet,deren InhaltubereinenMethodenaufrufhinwegerhaltenbleibenmussen.DiesenStack- DaherwerdenArgumentregisterunddasRuckgaberegistervonMethodenahnzellenundlokalenVariablenwerdendanngesicherteRegisterzugeteiltlichbehandeltwiestore-Befehle. EinschnellerMethodenaufrufistfurdieGeschwindigkeitvonJavawichtig. AufwendigeRegisterzuteilungsalgorithmensindwederangebrachtnochnotig. 6
7 4.4KombinationvonBefehlen ZusammenmitderStackanalysewerdenBefehle,dieKonstantenladen,mitauslenBefehlewieiadd,isub,imul,idiv,logischeundVerschiebebefehleunpruft,obderWertderKonstantenimgultigenBereichfurMaschinenbefehleliegt Vergleichs-undSprungbefehle.WahrendderMaschinencodeerzeugungwirdubergewahltenBefehlenkombiniert,diedirektdarauffolgen.IndieseKlassefal- 4.5Beispiel undentsprechendermaschinencodeerzeugt. sterzuteilungvonlokalenvariablenan.derjava-ubersetzerverwendetdieselbe VariablennummerfurunterschiedlichelokaleVariablen,wennsichdieGultigkeitsbereichenichtuberlappen.IndiesemBeispielwirddieVariablennummer DasBeispielinAbbildung3zeigtdieZwischendarstellungdesUbersetzerswie siefurfehlersucheverwendetwird.localtablegibtdietypenunddieregi- 3sogarfurVariablenunterschiedlichenTypsgenutzt(ganzeZahlundAdresse).DerJIT-UbersetzerhatdasgesicherteRegistermitderNummer12dieser Variablenzugeteilt. wendigereralgorithmuszumentfernenderkopierbefehleeinargumentregister faceregisterbenotigt.ambeginndesgrundblockswirddasinterfaceregisterin dasargumentregistera00kopiert.diesisteinerderseltenenfalle,woeinauf- furdasinterfaceverwendenhattekonnen. FurdenGrundblockmitdemNamenL004wirdindiesemBeispieleinInter- hatbereitsdielokalevariablel02alsziel,eineinformationdievomnachfolgendenbefehlistorekommt.inahnlicherweisehatderbefehlinvokestatic freiezellemiteinemleerbefehluberschriebenwerden.derbefehliaddconst miteinemrechenbefehl.dadiebefehleineinemfeldgespeichertsind,mudie BeidenBefehlen2und3erkenntmandieKombinationeinerKonstanten mitdernummer31alleseineoperandenalsargumentregistermarkiert.indiesembeispielwerdenallekopierbefehle(mitausnahmedesinterfaceregisters) entfernt. 4.6Just-In-TimeUbersetzer ZuBeginnwerdenalleZeigerinderMethodentabellemitZeigernaufdenUber- Modus,indemderUbersetzerMaschinencodefuralleMethodenerzeugtund setzerinitialisiert.wirddannderubersetzeraufgerufen,wirddererzeugtema- schinencodeindenspeichergeschriebenunddanachdieneuerzeugtemethode aufgerufen. gen.gegenwartigarbeitenwirdaran,diemaschinencodegeneratorenfurmips-, istauchgeeignet,ummaschinencodefureineanderezielarchitekturzuerzeu- dieseaufeinedateiausgibt,ohnediemethodenaufzurufen.diesermodus UmdieFehlersucheimCACAO-Ubersetzerzuerleichtern,gibteseinen gebettetesystemezuverbessern. PowerPC-undSparc-ProzessorenzuentwickelnunddieUnterstutzungfurein- 7
8 DieDarstellungvonObjektenundKlassenwurdesoentworfen,daeinschneller ZugriaufObjekteundMethodenbeigeringemSpeicherverbrauchmoglichist. 4.7DarstellungvonObjekten Klasse.FurdieKlassendarstellunggibteszweiVarianten.Inderkompakteren VarianteenthalteineKlassedieZeigertabelledervirtuellenFunktionenundmit InCACAOenthaltenObjektedieInstanzvariablenundeinenZeigeraufdie negativemosetdieinterfacetabelle(abbildung4).furjedesimplementierte InterfaceexistierteinZeigeraufdievirtuelleFunktionstabellederInterfaces. den,dieininterfacesverwendetwerden,mitnegativemosetzumklassenzeiger gespeichert(abbildung5).durchdieunterscheidungininterfacemethodenund virtuellemethodenbleibtdienormalezeigertabelleunverandertundauchdie Interfacemethodentabellewirdkleiner.TrotzdemistderSpeicherverbrauchfur InderschnellerenVariantewerdenInterfacemethoden,dassindalleMetho- starkreduziertwerden.werdenklassendynamischgeladen,dannhatdiesemethodeallerdingsdennachteil,dasichdieosetsunterumstandenandern dieinterfacemethodentabellequadratisch(anzahlderklassenmitinterfaces* AnzahlderInterfacemethoden).MittelsselectorcoloringkanndieAnzahlderunterschiedlichenOsetsfurInterfacemethodenunddamitderSpeicherverbrauch konnenunddaheranderungenimbereitserzeugtenmaschinencodenotwendig PortierungvonSun'sJDKInterpreter,demJIT-UbersetzerkaeunddemJIT- 5Ergebnisse UmdieGeschwindigkeitvonCACAOzutesten,habenwirCACAOmiteiner langsameralsbeisun'sinterpreter. mitdersynchronisation(sieheauch[kp98]),dahersindhierdiezeitendreimal UbersetzervonDigitalverglichen(sieheTabelle3.DigitalsSystemhatProbleme prufungendurchfuhrt,istdieservergleichfair. CACAOschaltetdieBereichsuberprufungaus.DaCauchkeineBereichsuber- Tabelle4vergleichtCACAOmiteinemCUbersetzer.DieOption-cbvon 6Zusamenfassung WirhabenCACAOundseinenUbersetzerbeschrieben.CACAOistdiezurZeit schnellstejavavm-implementierungfurdenalpha-prozessor.cacaowirdum CodegeneratorenfurandereProzessorenerweitertundhatUnterstutzungfur 7Danksagung eingebettetesysteme.cacaokannviawwwbezogenwerden: IchdankeReinhardGraundMarkProbstfurKorrekturendiesesArtikels. 8
9 runtimeon21064a300mhz(inseconds) JDKJavaLexjavacespressoTobajavacup DigitalInterpr. kae numberofcompiledjavavminstructions DigitalJIT CACAO speedupwithrespecttointerpreter speedupjdk/dec-jit speedupjdk/kae Tabelle3.VergleichvonJDK,kae,DigitalsJITundCACAO speedupjdk/cacao [ATCL+98]Ali-RezaAdl-Tabatabai,MichalCiernak,Guei-YuanLueh,VisheshM. References [AG96] Parikh,andJamesM.Stichnoth.Fast,eectivecodegenerationinajustin-timeJavacompiler.InConferenceonProgrammingLanguageDesign KenArnoldandJamesGosling.TheJavaProgrammingLanguage. Addison-Wesley,1996. [EAH97]KemalEbcioglu,ErikAltman,andErdemHokenek.AJavaILPmachinebasedonfastdynamiccompilation.InMASCOTS'97-International EuroForth'95,1995. andimplementation,volume33(6)ofsigplan,pagetoappear,montreal, [EM95] 1998.ACM. [EP97] WorkshoponSecurityandEciencyAspectsofJava,1997. M.AntonErtlandMartinMaierhofer.TranslatingForthtonativeC.In [Gou97] [Ert96] chines.phdthesis,technischeuniversitatwien,april1996. K.JohnGough.Multi-language,multi-targetcompilerdevelopment:EvolutionoftheGardensPointcompilerproject.InHanspeterMossenbock, M.AntonErtl.ImplementationofStack-BasedLanguagesonRegisterMa- compiler.ineuroforth'97conferenceproceedings,pages107{116,1997. M.AntonErtlandChristianPirker.ThestructureofaForthnativecode [HGH96]Cheng-HsuehA.Hsieh,JohnC.Gyllenhaal,andWen-meiW.Hwu.Java bytecodetonativecodetranslation:thecaeineprototypeandpreliminaryresults.in29thannualieee/acminternationalsymposiumon editor,jmlc'97{jointmodularlanguagesconference,linz,1997.lncs [KEG98]AndreasKrall,AntonErtl,andMichaelGschwind.JavaVMimplementations:Compilersversushardware.InJohnMorris,editor,Australian Microarchitecture(MICRO'29),
10 runtimeon21064a300mhz(inseconds) Digitalinterpr.70.3 JDK sieveadditionlinpack DigitalJIT6.27 kae GCC-O relationofruntime CACAO-cbruntimeonly3.31 CACAOtotal speedupjdk/cacao-cb24.1 speedupjdk/dec-jit13.3 speedupjdk/cacao18.2 speedupjdk/kae speedupjdk/gcc Tabelle4.VergleichvonJDK,kae,DigitalsJITundCACAO CACAO-cbnfrun/GCC [KG97] ComputerScienceCommunications,pages101{110,Perth,1998.Springer. ComputerArchitectureConference(ACAC'98),volume20(4)ofAustralian [KP98] mentjavaeciently.insiamakhassanzadehandklausschauser,editors, timecompiler.concurrency:practiceandexperience,9(11):1017{1030, AndreasKrallandMarkProbst.Monitorsandexceptions:Howtoimple- AndreasKrallandReinhardGra.CACAO{a64bitJavaVMjust-in- [LY96] [PD82] 15{24,PaloAlto,March1998.ACM. TimLindholmandFrankYellin.TheJavaVirtualMachineSpecication. Addison-Wesley,1996. StevenPembertonandMartinC.Daniels.PascalImplementation,TheP4 ACM1998WorkshoponJavaforHigh-PerformanceComputing,pages [Ste61] [TKLJ89]A.S.Tanenbaum,M.F.Kaashoek,K.G.Langendoen,andC.J.H.Jacobs.Thedesignofveryfastportablecompilers.ACMSIGPLANNotices, 24(11):125{131,November1989. Compiler.EllisHorwood,1982. T.B.Steel.ArstversionofUNCOL.InProceedingsoftheWestern [TvSKS83]AndrewS.Tanenbaum,HansvanStaveren,E.G.Keizer,andJohanW. JointIRE-AIEE-ACMComputerConference,pages371{377,1961. cationsoftheacm,16(9):654{660,september1983. Stevenson.Apracticaltoolkitformakingportablecompilers.Communi- ThisarticlewasprocessedusingtheLATEXmacropackagewithLLNCSstyle 10
11 java.io.bytearrayoutputstream.write(int)void LocalTable: 1: 2: 3: 0: (int)s14 (int)s13 (int)s12(adr)s12 (adr)s15 InterfaceTable: L00] 0: (int)t24 T23] 0ALOAD 1GETFIELD 2IADDCONST 3NOP 4ISTORE 16 5ILOAD 1 L00L02] 6ALOAD T23L02] 7GETFIELD 8ARRAYLENGTH 9IF_ICMPLE 208 ]L002:... 18IF_ICMPLT L003 L005 A00]L004: I00] ]L003: 21ILOAD 20GOTO 19ILOAD 2L004 L03] ] 22BUILTIN1 23ASTORE newarray_byte A02A01A00] A01A00] A00] L00] 27ALOAD 26ICONST 25GETFIELD 24ALOAD 8 [L00A03A02A01A00] [A04A03A02A01A00] 28ICONST 29ALOAD 30GETFIELD L03L00] L00] 33ALOAD 31INVOKESTATICjava.lang.System.arraycopy 32ALOAD 16 ]L005:... 34PUTFIELD 380 [ Abbildung3.Beispiel:Befehls-undStackdarstellung ] 45RETURN 11
12 objectpointerobject class -instancedata classpointer -interfacepointer methodpointer classinfo methodpointer interfaces - - Abbildung4.kompakteObjekt-undKlassendarstellung methodcode objectpointerobject class -instancedata classpointer - ifmethodpointer methodpointer classinfo -methodcode Abbildung5.schnelleObjekt-undKlassendarstellung methodcode 12
Praktikum Compilerbau Sitzung 9 Java Bytecode
Praktikum Compilerbau Sitzung 9 Java Bytecode Prof. Dr.-Ing. Gregor Snelting Matthias Braun und Sebastian Buchwald IPD Snelting, Lehrstuhl für Programmierparadigmen KIT Universität des Landes Baden-Württemberg
MehrCompilerbau. Martin Plümicke WS 2018/19
Compilerbau Martin Plümicke WS 2018/19 Agenda I. Überblick Vorlesung Literatur II. Compiler Überblick III. Überblick Funktionale Programmierung Einleitung Haskell-Grundlagen IV. Compiler Scanner Semantische
MehrInformatik II Übung 5. Pascal Schärli
Informatik II Übung 5 pascscha@student.ethz.ch Warm - Up Warm - Up public static int power(int base, int exp) { int out=1; for(int i = 0; i
MehrJava Bytecode Eike Robert Freie Universität Berlin. Softwareprojekt Übersetzerbau, 2013
Java Bytecode Eike Robert Freie Universität Berlin Softwareprojekt Übersetzerbau, 2013 Inhalt Bytecode Allgemein Architektur Aufbau Instruktionsgruppen Beispiel FU Berlin, Bytecode, Übersetzerbau 2013
MehrInformatik II Übung 4. Pascal Schärli
Informatik II Übung 4 pascscha@student.ethz.ch Nachbesprechung Serie 3 - Aufgabe 1 Schleifeninvariante: z+u j=i j Nach der while-scheife: u=0 z= i j Was passiert wenn man das Programm so abändert? Schleifeninvariante
MehrJava-Bytecode: Der Blick unter die Haube
Projektgruppe Verteilung von parallelen Java-Anwendungen Java-Bytecode: Der Blick unter die Haube Struktur von Klassendateien Befehlssatz der Übersetzung grundlegender Java-Konstrukte Wichtige Java-Konstrukte
MehrJava Virtual Machine (JVM) Übersicht
Java Virtual Machine (JVM) Alan Dingwall dingwall@gmx.net Übersicht Was ist die Java Virtual Machine DasClass File Format Aufbau der JVM Kompilation.java.class Fazit Quellennachweise Was ist die JVM Abstrakter
MehrJava Virtual Machine
Seite 1 von 9 1 Was ist die JavaVM Java Virtual Machine Die JavaVM könnte man als einen virtuellen Computer betrachten, der speziell dafür kompilierten Java-Code ausführen kann. Der Begriff "virtuell"
MehrRekursion. L. Piepmeyer: Funktionale Programmierung - Rekursion
Rekursion 1 Iterative und rekursive Methoden Summe von 1 bis n berechnen: iterativ rekursiv public int sum(int n){ int result = 0; for(int i=1; i
MehrInformatik II - Tutorium 5
Informatik II - Tutorium 5 Vincent Becker vincent.becker@inf.ethz.ch 28.03.2018 Vincent Becker 28.03.2018 1 Neue Webseite Vincent Becker 28.03.2018 3 Allgemeines Java-Konvention: Alle Variablen- und Methodennamen
MehrBeuth Hochschule Die virtuelle Java Maschine (JVM) WS13/14
Inhaltsverzeichnis Die virtuelle Java Maschine (JVM)...1 1. Harte und weiche Maschinen...1 2. Ein Bytecode-Programm...2 3. Java-Assembler-Dateien...5 4. Die Maschinenbefehle der JVM...6 5. Alle Maschinenbefehle,
MehrInformatik II Übung 5 Gruppe 4
Informatik II Übung 5 Gruppe 4 (Folien teils von Christian B. und Christelle G.) Lukas Burkhalter lubu@inf.ethz.ch Informatik II Übung 5 Lukas Burkhalter 27. März 2018 1 Nachbesprechung Letzte Übung (4)
MehrJava-Prozessoren. Die Java Virtual Machine spezifiziert... Java Instruktions-Satz. Datentypen. Operanden-Stack. Konstanten-Pool.
Die Java Virtual Machine spezifiziert... Java Instruktions-Satz Datentypen Operanden-Stack Konstanten-Pool Methoden-Area Heap für Laufzeit-Daten Class File Format 26 Die Java Virtual Machine Java Instruktions-Satz
MehrOverview of Stuttgart s Suburbs
Ovv V V Cy C V V T + ( ) X* ( F) Z (),X*,, +,, +,X*,X* () vv L Fä F O T IC,C F V v V öv öv, +,X* F/ T / T L () L T O + T VVT * VVT F F/ T F X* / O C ö I O ö O ä I F I L I I F L F V I ä L L L ö C O L L
MehrInhaltsverzeichnis 1
Inhaltsverzeichnis 1 Kapitel 1 Bytecode, JVM, Dynamische Compilierung Am Beispiel des IBM Jalapeno-Compilers (besser als SUN!) 1 1 Abbildungen aus: IBM Systems Journal, Vol 39 Nr 1 2 1.1. LAUFZEITORGANISATION
MehrStatische Analyse. Holger Hans Peter Freyther 1. Seminar zu Ursachen und Vermeidung von Fehlern in der Softwareentwicklung, 2006
Übersicht Holger Hans Peter Freyther 1 1 Freie Universität Berlin Seminar zu Ursachen und Vermeidung von Fehlern in der Softwareentwicklung, 2006 Übersicht Übersicht 1 Was ist es? Analysewerkzeuge 2 Find
MehrInformatik II (D-ITET) Übungsstunde 5,
Informatik II (D-ITET) Übungsstunde 5, 30.04.2017 Hossein Shafagh, shafagh@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung von Übung 4 More Java insights (Call by Value und Call by
MehrHTTP://WWW.WIKIPAINTINGS.ORG/EN/FRIEDENSREICH-HUNDERTWASSER/YOU-ARE-A-GUEST-OF-NATURE-BEHAVE Abstrakte Datentypen.
HTTP://WWW.WIKIPAINTINGS.ORG/EN/FRIEDENSREICH-HUNDERTWASSER/YOU-ARE-A-GUEST-OF-NATURE-BEHAVE Abstrakte Datentypen OOPM, Ralf Lämmel (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 562 Motivation abstrakter
MehrInterpreter für Zwischencode und abstrakte Interpretation
Interpreter für Zwischencode und abstrakte Interpretation Drei-Address Code Übersicht Zwischencode: Drei-Adress, Bytecode,... Zielprogram: RISC, CISC, Stackbasiert Codegenerator: Befehlsauswahl Registervergabe
MehrInformatik II - Übung 04. Christian Beckel Besprechung Übungsblatt 3
Informatik II - Übung 04 Christian Beckel beckel@inf.ethz.ch 20.03.2014 Besprechung Übungsblatt 3 Christian Beckel 20/03/14 2 U3.A1! Unterschied zwischen! String! StringBuffer! Aufgabenstellung: "KEIN
MehrKapitel 1. Bytecode, JVM, Dynamische Compilierung. Am Beispiel des IBM Jalapeno-Compilers (besser als SUN!) 1
Kapitel 1 Bytecode, JVM, Dynamische Compilierung Am Beispiel des IBM Jalapeno-Compilers (besser als SUN!) 1 1 Abbildungen aus: IBM Systems Journal, Vol 39 Nr 1 1 1.1. LAUFZEITORGANISATION 1. Bytecode,
MehrÜbung zur Vorlesung Einführung in Software Engineering
Übung zur Vorlesung Einführung in Software Engineering Wintersemester 2012/13, Richard Bubel und Martin Hentschel Übungsblatt 5: Testen Abgabeformat: Reichen Sie Ihre Lösung per SVN als eine PDF-Datei
MehrObjektorientierte. Programmierung und Modellierung. Einführung. Ralf Lämmel.
Objektorientierte Einführung Ralf Lämmel Programmierung und Modellierung http://twitter.com/oopm Do you really need to print these slides? Please help saving trees! Mechanik dieser Lehrveranstaltung 4
MehrVirtual Machines unter der Haube
Virtual Machines unter der Haube Alexander Lais unfug.org 21.06.2007 Agenda Aufbau der Laufzeitumgebungen Binärformate und Befehlssatz Compilierung Garbage Collection Nativer Code
MehrException Handling in Java
Seminarbericht zum Vortrag Exception Handling in Java im Rahmen der Lehrveranstaltung: Seminar aus Softwareentwicklung Wintersemester 2003/04 Autor: Wiener Norbert MatrNr.: 9956158 SKZ: 880 Inhaltsverzeichnis:
MehrJAVA als erste Programmiersprache Semesterkurs
JAVA als erste Programmiersprache Semesterkurs 0 - Einstieg WS 2012 / 2013 Prof. Dr. Bodo Kraft Prof. Dr. Bodo Kraft FH Aachen University of Applied Sciences Fachbereich Medizintechnik und Technomathematik
MehrVon Geysiren und Kaffeebohnen
Von Geysiren und Kaffeebohnen Eine kleine Tour durch die Android-Laufzeitumgebung Jörg Pleumann Noser Engineering AG Android Experience Day 2008 Agenda Überblick Virtuelle Maschine Core Libraries Zusammenfassung
MehrJava Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff
Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.
MehrPersonalbuslinie CCS Fahrtrichtung Geb Haltestelle Terminal 1 Ost Abfahrtzeiten
00:02 00:04 3 00:08 00:09 00:10 2 00:11 00:11 00:12 Geb. 587 00:13 Geb. 556 00:14 Geb. 555 00:15 1 - intern 00:17 Geb. 520 00:19 Geb. 527 00:20 Geb. 532 00:21 Geb. 534 00:22 Geb. 536 00:23 Geb. 543 00:24
MehrDie Erzeugung von Testfällen mit einer symbolischen virtuellen Maschine und Constraint Solvern
Die Erzeugung von Testfällen mit einer symbolischen virtuellen Maschine und Constraint Solvern Christoph Lembeck Roger Müller chle4@wi.uni-muenster.de romu@wi.uni-muenster.de Herbert Kuchen kuchen@uni-muenster.de
MehrZwischencode-Erzeugung. 2. Juni 2009
Zwischencode-Erzeugung im Rahmen des Seminars "Übersetzung von künstlichen Sprachen" Sebastian Hanneken 2. Juni 2009 1 / 32 1 Einleitung Einordnung Funktion von Zwischencode 3-Adresscode (3AC) 2 Erzeugung
MehrJava Thread Synchronisierung
Java Thread Synchronisierung wait notify und Semaphor Synchronisierung Prof. Dr. Nikolaus Wulff Das Philosophen Problem Das essende Philosophen Problem wurden 1968 von Dijkstra formuliert und illustriert
MehrDeklaration einer Klasse Innere innerhalb Klassen einer in Ja anderen v a Klasse
Innere Klassen in Java Java 1.0: nur top-level Klassen Seit Java Version 1.1: Innere Klassen Deklaration einer Klasse innerhalb einer anderen Klasse Illustration Eigenschaften Vorteile Anwendungsmöglichkeiten
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrJava und Dalvik Bytecode - Ein Vergleich
Java und Dalvik Bytecode - Ein Vergleich WPF Compiler und Interpreter WS 2014/2015 Studiengang Medieninformatik Autoren Bryan Riddle, Matrikelnummer 11100449 bryan.riddle@smail.fh koeln.de Sydney Manalo
MehrFunktionale Programmierung
Funktionale Programmierung Definition Historie Motivation Die Programmiersprache Scala Einfache funktionale Programme Auswertung von Ausdrücken match.. case Prof. Dr. E. Ehses, Paradigmen der Programmierung.
Mehrim Rahmen des Seminars - Programmiersprachen Markus Nestvogel
C# im Rahmen des Seminars - Programmiersprachen Markus Nestvogel 2 Gliederung 1. Einführung 2. Microsoft.NET 3. C# 3 1 Einführung objektorientierte Programmiersprache für Microsoft.NET entwickelt Konkurrenz
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
MehrJava Bytecode. Vorlesung Modellierung, Analyse, Verifikation Wintersemester 2018/19. Register und Stack. Klassenhierarchie und Typen
Vorlesung Modellierung, Analyse, Verifikation Wintersemester 2018/19 Prof. Barbara König Zwischensprache zwischen Hochsprache (Java) und Maschinensprache Vorteil: Maschinenunabhängigkeit, Geschwindigkeitsvorteil
MehrVorlesung Modellierung, Analyse, Verifikation Wintersemester 2018/19
Vorlesung Modellierung, Analyse, Verifikation Wintersemester 2018/19 Prof. Barbara König Barbara König Modellierung, Analyse, Verifikation 1 Zwischensprache zwischen Hochsprache (Java) und Maschinensprache
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
MehrPolymorphie. 15. Java Objektorientierung II
432 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 433 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen
MehrVererbung und Polymorphie
Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter
MehrProf. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen
Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Anonyme Klassen
MehrPolymorphie. 15. Java Objektorientierung II
446 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 447 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen
MehrVergleich unterschiedlicher virtueller Maschinen
Vergleich unterschiedlicher virtueller Maschinen Seminar: Compiler-Konstruktion Fachbereich Programmiersprachen und Übersetzer Philipp Bähre Gliederung: Einführung Operandenstack und virtuelle Register
MehrVorgartenstraße. Praterstern 5,5B,80A,82A,O,U2. Donauinsel 11A,11B. Montag-Freitag (Schule) Montag-Freitag (Ferien) Samstag Sonn- und Feiertage
U A A,8,69A,O,A,A,59A,6,U,U,WLB A,A,A,U,,A,U 5,5B,8A,8A,O,U A,B B,9A,9B B A,5,6A,7A,9A,9A A,A,6,A,7A 8A,9A 9A,A 6 8 9 5 5 7 7 7 5 57 6 - - Intervall - 5 - - - - - - - - - - 5 57 5 7 5 5 57 5 7 5 5 57 5
Mehr25 Floridsdorf U Oberdorfstraße
25 U U 22A,,27A,,9A,U1 9A,86A,87A,95A,96A 86A,87A,95A Donauspital U 95A,U2,97A,98A 0 07 09 11 13 15 16 18 19 58 5 08 18 28 38 6 53 6 01 08 16 23 31 38 - - - - 8 - - - - - - - - - 56 9 08 16 23 25 31 38
MehrProgrammieren 1 09 Vererbung und Polymorphie
Programmieren 1 09 Vererbung und Polymorphie Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 I. VERERBUNG 2 2 Vererbung Von Interfaces übernehmen
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White
MehrProgrammierung Nachklausurtutorium
Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel
MehrChapter 1 : þÿ b w i n O n l i n e - W e t t e n c h a p t e r
Chapter 1 : þÿ b w i n O n l i n e - W e t t e n c h a p t e r þÿ w e t t e n, s p o r t w e t t e n, b w i n, w e t t a n b i e t e r, b u c h m a c h e r w a s i s t b w i n? s e t z e n. b w i n c a
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrJ.5 Die Java Virtual Machine
Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class
MehrBeuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1
Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1 Parameter-Übergabe-Mechanismen in Java und in anderen Sprachen. 1. Methoden vereinbaren mit Parametern Wenn man (z.b. in Java) eine Methode
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrJava Generics. Ein kleines Tutorium zur Verwendung von Generics. Prof. Dr. Nikolaus Wulff
Java Generics Ein kleines Tutorium zur Verwendung von Generics. Prof. Dr. Nikolaus Wulff Java Generics Seit 2004 stehen mit der Auslieferung von J2SE 5.0 (dem JDK 1.5) Generics zur Verfügung. Es lassen
Mehr3AA. Prozeduren und Rekursion Prof. Dr. Wolfgang P. Kowalk Universität Oldenburg WS 2005/2006
3AA Prozeduren und Rekursion 29.11.05 Prof. Dr. Wolfgang P. Kowalk Universität Oldenburg WS 2005/2006 3AA Prozeduren Berechnete Sprungadresse Ausführung bestimmter Anweisungen durch Schleifen Stattdessen:
MehrSinger Singer Seriennummern - Produktionsdatum (c) 2019 Nähzentrum Braunschweig :00
Seriennummern - Produktionsdatum 611.000 to 913.999 1871 914.000 to 963.999 1872 964.000 to 1.349.999 1873 1.350.000 to 1.914.999 1874 1.915.000 to 2.034.999 1875 2.350.000 to 2.154.999 1876 2.155.000
Mehr1. Welche Programmzeilen definieren die main-methode richtig?
Prof. Dr. Detlef Krömker Ashraf Abu Baker Robert-Mayer-Str. 10 60054 Frankfurt am Main Tel.: +49 (0)69798-24600 Fax: +49 (0)69798-24603 EMail: baker@gdv.cs.uni-frankfurt.de 1. Welche Programmzeilen definieren
MehrVererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 14.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 1 / 11 Übersicht 1
Mehr3. Konzepte der objektorientierten Programmierung
3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung
MehrAbschlußtest Programmieren 30. Juni 2017 Name: Punkte von 32: Gruppe: Haase-Di Haase-Do Stanek-Di Stanek-Do
Abschlußtest Programmieren 30. Juni 2017 Name: Punkte von 32: Gruppe: Haase-Di Haase-Do Stanek-Di Stanek-Do 1. (6 P) Schreiben Sie die folgenden mathematischen Ausdrücke als korrekte C++- Anweisungen (Variablendeklarationen,
MehrEinstieg in die Informatik mit Java
1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung
MehrPrinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
MehrExkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm
Exkurs: ANONYME KLASSEN Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Anonyme Klassen Eigenschaften 1 Häufigste Anwendung lokaler Klassen: anonyme Definition. Klasse erhält keinen eigenen
MehrChapter 1 : þÿ b w i n a p p i n s t a l l i e r e n c h a p t e r
Chapter 1 : þÿ b w i n a p p i n s t a l l i e r e n c h a p t e r þÿ b u k m a c h e r z y, i n f o r m a c j e : e x p e k t, b e t c l i c, b w i n, b e t - a t - h o m e, b e t 3 6 5, u n i b e t,.
MehrÜbersetzer I. Vorlesung WS 1999/2000 Uwe Kastens
U-0 Übersetzer I Vorlesung WS 1999/2000 Uwe Kastens grundlegende Verfahren der Sprachimplementierung erlernen, den Einsatz von generierenden Werkzeugen und von Standardverfahren kennen und schätzen lernen,
MehrProgrammierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
MehrU1 Reumannplatz Leopoldau
U A A,8,69A,O,A,A,59A,6,U,U,WLB A,A,A,U,,A,U 5,5B,8A,8A,O,U A,B B,9A,9B B A,5,6A,7A,9A,9A er Platz A,A,6,A,7A 8A,9A 9A,A 6 8 9 5 5 7 7 7 5 57 6 - - - Intervall - 5 - - - - - - - - - - - - - 5 57 5 7 5
MehrVererbung Advanced. Ziele. Überschreiben von Methoden der Eltern Einführung Interface & Abstrakte Klasse Sichtbarkeit von Methoden bei Vererbung
Vererbung Advanced Ziele Überschreiben von Methoden der Eltern Einführung Interface & Abstrakte Klasse Sichtbarkeit von Methoden bei Vererbung Vererbung (Wiederholung) public class Mutter { public int
MehrExceptions - Klausuraufgaben
Exceptions - Klausuraufgaben (1.) Exception ist.! (a.) eine Klasse (b.) eine Schnittstelle (c.) abstrakte Klasse (d.) Keines davon (2.) Exception is in dem Java Package! (a.) java.lang (b.) java.util (c.)
MehrAnleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)
Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite
MehrÜbung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
MehrInfo2 Übungsstunde 5. Agenda. Lösungen U4. Java... more insights. Tipps zur Übung 5
Ifo2 Übugsstude 5 Ageda Lösuge U4 Java... more isights Tipps zur Übug 5 1 L4.A1 Stack Neeswertes Zwei Members: buffer ud size capacity := buffer.legth empty := size == 0 elemet idex := size void push(it
MehrKapitel 12: Übersetzung objektorienter Konzepte
Kapitel 12: Übersetzung objektorienter Konzepte Themen Klassendarstellung und Methodenaufruf Typüberprüfung Klassenhierarchieanalyse Escape Analyse 12.1 Klassendarstellung bei Einfachvererbung class Punkt
MehrF.1 Überblick. 1 RPC-System in Aufgabe 3. Kommunikationsschicht: tauscht Daten zwischen zwei Rechnern aus
F 5. Übung F 5. Übung F.1 Überblick Aufgabe 3 RPC-System im Überblick Marshalling primitiver Datentypen Byteorder Fließkommawerte s und s F.1 Kommunikationsschicht: tauscht Daten zwischen zwei Rechnern
MehrIrren ist menschlich. Nur wer uns lobt, ist unfehlbar. (Oliver Hassencamp)
27 Errata Irren ist menschlich. Nur wer uns lobt, ist unfehlbar. (Oliver Hassencamp) 27.1 Einleitung Auf den folgenden Seiten finden Sie alle mir derzeit (Stand: 19.04.2004) bekannten Fehler in meinem
MehrBeispielprüfung CuP WS 2015/2016
Beispielprüfung CuP WS 2015/2016 Univ.-Prof. Dr. Peter Auer 23. Dezember 2015 Informationen zur Prüfung Die Prüfung wird als Multiple-Choice-Test mit 10 Fragen am Computer abgehalten. (Bei manchen Fragen
MehrTutorium 5 - Programmieren
Tutorium 5 - Programmieren Grischa Liebel Uni Karlsruhe (TH) Tutorium 11 1 Einleitung 2 Abschlussaufgaben 3 Vorlesungsstoff 4 Ergänzungen zum Vorlesungsstoff Grischa Liebel (Uni Karlsruhe (TH)) c 2008
MehrInformatik II Übung 04
Informatik II Übung 04 Michael Baumann mbauman@student.ethz.ch n.ethz.ch/~mbauman 23.03.2016 Ablauf 1) Nachbesprechung Serie 3 2) Stacks 3) Vorbesprechung Serie 4 4) Bytecode und Assembler 2 Ablauf 1)
MehrDie Halde. Verwendung in der Speicherbelegung Visualisierung der Halde Call by Value & Call by Reference
Die Halde Verwendung in der Speicherbelegung Visualisierung der Halde Call by Value & Call by Reference Die Halde Grafische Darstellung des Speichers enthält Name des Datentypes alle Membervariablen mit
MehrSoftwaretechnik 1 Übung 2
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Softwaretechnik 1 Übung 2 25.5.2009 Aufgabe 1 Klassendiagram // do X firexoccurred(); XListener + xoccurred(e:xevent) * listeners
MehrWiederholung. Klassenhierarchie:
Wiederholung Klassenhierarchie: class Unter extends Ober {... Die Unterklasse Unter erweitert die Funktionalität ihrer Oberklasse Ober. Objekte der Klasse Unter können anstelle von Objekten der Klasse
MehrEffiziente Java Programmierung
Effiziente Java Programmierung Seminar Implementierung moderner virtueller Maschinen am Beispiel von Java SS 2009 von Reinhard Klaus Losse 20. Mai 2009 Gliederung Definition Effizienz Werkzeuge zum Messen
MehrC++ Parent-Shared-Ptr. Detlef Wilkening
http://www.wilkening-online.de Seite 1 / 19 C++ Parent-Shared-Ptr Detlef Wilkening 14.01.2016 http://www.wilkening-online.de Seite 2 / 19 Shared-Ptr Kennt jeder Nutzt jeder Und das ist gut so Aber es gibt
MehrProgrammieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik
Programmieren I Dokumentation mit javadoc Heusch 10.4 Ratz 4.1.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Automatische Dokumentation Java bietet standardmäßig das Dokumentationssystem
MehrE i n f ü h r u n g i n d i e D a t e n b a n k s p r a c h e SQL
E i n f ü h r u n g i n d i e D a t e n b a n k s p r a c h e SQL E i n e S c h u l u n g s u n t e r l a g e v o n V o l k e r K ö n i g S t a n d : 2 2. 0 4. 0 4 1 9 9 4-2 0 0 4 b y V o l k e r K ö n
MehrClient-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
MehrMapra: C++ Teil 6. Felix Gruber, Michael Rom. 07. Juni 2016 IGPM. Felix Gruber, Michael Rom (IGPM) Mapra: C++ Teil 6 07.
Mapra: C++ Teil 6 Felix Gruber, Michael Rom IGPM 07. Juni 2016 Felix Gruber, Michael Rom (IGPM) Mapra: C++ Teil 6 07. Juni 2016 1 / 14 Themen vom letzten Mal Klassen Vererbung Zeiger auf Objekte Initialisierungsliste
MehrInformatik II Übung, Woche 14
Giuseppe Accaputo 7. April, 2016 Plan für heute 1. Java Klassen Beispiel: Implementation eines Vorlesungsverzeichnis (VVZ) 2. Informatik II (D-BAUG) Giuseppe Accaputo 2 Java Klassen Beispiel: Implementation
MehrProblemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.
Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden
MehrRückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren
Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren class Vektor public: double k1, k2; // Deklaration der Klasse Vektor // Elementvariablen
MehrFreudenauer Hafenstraße. Grünhaufenbrücke. Holen Sie sich die aktuellen Abfahrtszeiten auf Ihr Handy! <weißer Text> m.qando.
79A,71A,73A 7A 7A U Marathonweg 0 0 Montag-Freitag (Schule) Montag-Freitag (Ferien) Samstag 33 33 48 7 33 48 8 18 48 9 18 10 18 11 18 12 33 13 33 14 33 1 48 1 18 48 17 18 33 18 18 19 18 20 18 18 33 33
MehrKapitel 6. Vererbung
Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen
MehrObjektorientierte. Programmierung und Modellierung. Einführung. Ralf Lämmel AG Softwaresprachen
Objektorientierte Einführung Ralf Lämmel AG Softwaresprachen Programmierung und Modellierung Mechanik dieser Lehrveranstaltung 3 Was ist OOPM? Einführungsveranstaltung Informatik Besucher aus den Curricula
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
Mehr