ࡱ; r  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqtuvwxyz{|}~Root Entry  !r\V)䰱 PresentationStarImpress 5.0=~RSfxDocumentInfo  T1_U T1lۭ uK Info 0 Info 1 Info 2 Info 3 T1_U\47<44Standard LIBIMBEDDED LIBIMBEDDED,0/0/1024/715,,1SBX sb Z Standard StarBASICSBX ARSBX AR SBX AR2c%bqqOh+'0 h t x=kF+L-$gRLN{Hj3d?e{N$@ 13Ih>>zm9s=.j903m_o^lh #aQϻ\A+)ZԖ2ᥛgfS̘6)4V 7x_;$hdze҇-?IA=`OokG;˫ FoeMf1*j3k3n;ĝ1w;ԧg~Y&w>C9yBHcJ*{n!1"Z/ sK}~(esF]pvu| wϩ0\& 0o-6mYӆzovϪ:ve3u3 2'y9iJ@a&L°w+k}Zǎi֤Krs1a1wIdCmXV6z@[CnYtfbfݾD0AI] #RϨ7 a jɿsXe P_S7_Al0 jH&* 51-Cb#09h)-ͰuM+{-mMH9l|S;Q~tlʍF1_;^A 13e7`fQ@v}a͡5SҷUȾJ$4^.""[cEqrBMlU~wȓd$EZנYi ^wr ui^o_>p =pDQEȅ"!{4( ؜{|)ǖC%QΓX0V-*x`W='3Ehx/2 ?* FY츏* hzrx\wRNOkVskҜڼU@<IPt<6))w7S\crJ֔Qϳ Mk`88 <! D^`}c3.;QW˽oCoth yz2d*~ j&Z?Кn._.~4,"Ϡ3#5|ZK |~^f84}xǬ9A &)\CM|^Sh̀dCԟncYhCYNkaC}-Ϡ4K::?w_eGELSZ`cֺNۋJYv( V=JWviPڧu`wbyt7`z{`1_ qchXur$u]9wX?6w$gSˁv,,@ev+9 %^N|Ϣ4C$L@^'(.L9d>`4wD-=]!jwXN9d;Nv;]?߇ڶ_<|%f^SX e x)F|!B~UmSؠ]|oGBXk0׾ rH[#[⻌]kbt 0Ut}^aH~5Y#ecF;4mHÔ9!|[cБ}#q v_@P}ԙw:KmE JAbJv:pqj'0!;憄8w"Δ㡍b+w̵ \5k?Kɘ2AhϾ#?Ej w{$4ցK-¾. ebb_ajo-LCG am)S̀ǃ|-F"Wlh NA]W:0U:NB<$w+*cW(W:dV'n%ᢓk ;ya9>,&u#gigPOjse`elFqAuHp[dVDq8aF˯: ^ H6FX~m60[iwѱH]Mw,Ndwi"G[x YtRls{<}]VG< " ct4 P,YY LK!wԃz^/]]*mU-aox'9 ?%K@/'UubhTB}QcS\eVWX*ryTٕ*J}92Sw8xxT 9Y{O`ކ/'Lp0eX]nxнڭ/b|>*f}_s&Хq + bҐli*pM\@GM2Z_or38jw 6KbM/` hh >^[c4$SdKsE3Y쨜ʑ6sV{Ec3;~&&o,pU 5r!]ՇӺӪ?촾y!=FUNf8= a*<,f9~Fn;8&tDX>wf̰P .=l[e[/Om\-aԏ¡fsq2e/<\_d{`]95gSMf*IM8j8syʟu7cP{G|A@,>Ax HvH\=zX]xR0/ `uC_O"=R{f1TfUpn :֓-%ܑ-}&I1-!x>.|9se1TpTvd*iӌ' j^`M/Opnƌ2!\{` Cʋ-.rN!Du'0hh7k$6x*#a pr]~l1B~ =."IMvfJ-rI! җk''ʠX|,Gpn_rG3,IIU:$7|DTc<+~ǧ޿=ONO!1#y;zV*&CV[PdJPyJIᖆl lº. V+ٗx|k!xϛVߴ/{epg i3S0/86)SglߴȈr&b! \c".* x㞬ghdid sk%/hOX*-ӕ@O@LLI>LIwkr,O[qMU+Azx*+7U*55PzWi͏*qh]gB |OuùO%/8-豺ͺ7t%U˙K@EyS'˰~mq8"0FXTAPP6*WhrSwܢ8'?V@RmUk&jM.v}NⶲZpP 2f 'gQ3a^~@ܚ{{jY,NiE"*Cl8E/SU{dѶ>G֢h[3=)ȃWvWU=K/5*Dhy}f1A޳Kə. ϕDjz7ȓn^TҚ,Y[jR3Qz+ G8+Bq6̾ǡt`@Mz ;@5 ;\qpX&'f?O\r\Q)h|@j㚘*Ѧ˷yBrPi| ! "x eچ#ou8da:oa__U:cнYVXckW]^Kxؔ؀|%ZsYt1N2P WLrh<=TjuV/:"0W\ڇ 05^Z]FO;3ؕd0JPB  YY)TvqfOfuV"p$Y5tb$3]+3Jۭ4סfSљ"9XtMy%O/D;9!S(r}cM#E pY배P{@TыQ\SRvވ-b5Dr=aݘ2sDJ=Pr%>irBcPŴ>|rCluódat"aD{ qoAWęVyZ'}œ4ĩaSa߷z x`~PvGK;$)f.sl9A XG돘 Xc:J!w,-*y}4\bA>]y/@cʢx34]g>*EjX*+z՜%5{{OeVJ`kLjyxSM6uMVU&[/v3ڟQ:ggoft]^3>`jY(Ia!7M/k2ҘbFS))2>j)jJ>ٓ*(E p,z`\ yA꿑CƌTX}!ڹQdsj`zfb1]q5wXRlVVkf\K){29$3: jm2oyk -1'dFBk^89 E[$Mw/Ftǝ`5"@a^b=P=z X~&[KIɣ` Iq&mGj*͖lwU&adѧM(Ͷ3dj_>wXU;lQ3ꞍR*Mx_mX'ZO;`xa6R|z-z<x1(.c'YSZX|$SilC0QI_|.Y*GicihGLf&nVytmPU[ID5;ݮGh]Q!zPʅiDF٭̃ (Lę컱dJC$lfaNPT+[c&A^Sڄ zjà?$q&y!* >QPhoX7U>`3b pg&cxZY0"KF!;ULE]U.>s)c4[7|{ ղG*AٮOI|w0<_9vqdL_Fh>̯Ee9kGLtαeqӹ)KM&X1 B6 8t_wAs^cn YhtrF,\.PzU>hpYS.z̆O7?@ɱ37C(bΚo,pܰt-1,EJ잢IE(~+N|pk Gl 9ޮ"d +u%LCe $)UmK }Aݽr(02PnG%P3oRܑFC+XS}xbhg]r'x ;ҳQm XAz/VkXA')"|%bn{YB6&3\TC8<)3r5[]Itk8xh]Xǣ 0iepa;cI]x\ bS:MLŊ9Y@S`m􃃉è~w|J0K#7>ǟ dϬa0D:;6[X0lYO/lJnP"8)>PD-gh"SV {Azshjz[RɲZU p2U=HeSV)02ttDC ЗJԛ-bQ b4NI ˪+P]s'Ŧy9BP $U5(1!va\l.f1yMސ' eW`f([V3AL/x,"@ ZiA]׌F-7ċy<%y/+ qϖk~¡Kx1`bч Q9}6-m)+J6ti B?NpxmF%?7&zZѝȱc =rX n#ǐ'*c5wx)o '<A4VulP1Dl߄I|NMu&qYbe3&wځMiMb/iˏO.oKmf׏[-: tkm";t{pki6:~OWwk^ݺH#Y߲v24: f#v2T>+Bhg߫8 4We2 {J9)vk-x,+f6^-r;-3A8UvM̡V+ޭ(вNThgvI :0ba^[;ñOq4K챛a>dN,\3iQS* 揚S}TVBi U&|^#%rQѿᕽۛ ^3s[ v1ecC\9· %[3##5rh:g >rݡ鸁eRE7vXZYT*ERo?`˾V%e&ĖE\B)*vs*YBE,G@i5'*u,T4k8sd~~Ao؊?S9@$//jsN+Á{ѐ@$I u!Tjp@{PB o.L=lvʶcV~E|d{UcۤUJЖ }NWvj%}81%,Y.(`N~OOQT5&"`;iU(^DFr幄R1!XF H+s;HI_DkYKb p)nJWu]e\p{zD YD&$@J)o"RzՆ@"  ^V4u͑FxjDԟ޸3J=2cl7orVO _z xn5*4ad-~D, 9Os^q7t21 r;?a9@IP rXOutdevItemPool 1   )     &'()*+,-./06789:;UVWXYZ[\]c !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstt      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefdn0o'@qXX'6@ Standard 1X'.@2XXX' @X'@ Standard 2Arrow ArrowddXX&X]'W@( Standard 1ArrowddArrow}} Arrow concave k,4,re/TaiXX&XiX'.@f,XXX':@,dXXXX&'@XX'@X @ @+ @A @W @m @ @'(@XXX'@p̙Sun 4Sun 13333ffSun 2ffffXX X2XDXVXmX'@@ Standard 122ddX'2@  Standard 1X'@T@Z] Standard 1BMvv(@@SD  @x^SI 0 s\ z 46ZBn8x)1̔.<觔B+̄ ޢ40:prf |q]~+H~|WFMbP@aoCē[ȡz6~U{߃?G a-z+g/ @Կ.  @(ǀ @3) @3@ @`{k @ @ =wJ @@  @{;%@ { @ο8Xk5fS~ @v ~чw{ޮ~s;ǟ=?tPJamo~rxp&X%C @S$OU*ndz?9*{Gwp_?TÞ8;?8Z$@ hvi|~ O5:._WO*`h" 7\yx'GfL< @^@IYSVOJKϺiʓW?- @(+y'#5? V?ytx) &R4@G)V?/|CV5ޱg)o @ 0'P/k~J/%@H9Ӳ,Z, UC]5̇~=x @O?W^% [zO'|tp;W+yN[%@?m^^)'Oo~vt?oxmx @ ?%~{~˫߾x$+l 'Oo|r(G @(|_ٗG'?/%@0W*n||z:l:ʗO|ؿy| ( @m˫SJ20SWyjI/ϛ逫䰼&+f] f}$@ T?`8oL(S_>o^s|V]_ @7(\Uك:Vov7EltJM T9/w6Z@-PV ڈF? @`J/7NL&֘)ۄˑGF @)09=˻?6 `` ^TJkFnnv:H'ֻ&@%k/~xQ) J PfBKpwRc$}ȸkK Ֆ޲_ۋE`t3U@=p1Ae`I5M`OwM (a[)P 䇏o,z-P||R}e.pޓ/{|2"H @)P]zOOK8j }XV>=>-UϤwM 6O`_/v\cށ[U]%P rG2շ  @.WGw9㓫O^>/n֙.^rя?YLJ_Q߯>/׿û&@xE_|v.Wt&<>__Uom}_\?rקgO=ݕ_VOW< @[l(W<>,xy3|ӪxoK @ ):4֣j'e~YS.ʇߜW/d:v'e"`x @uσL pS5=W/0Z0ɻX|žg_Ucr?u @(SޫN}T-/r'׵oKoO_?_{?{tO(7<>NOɧeӣ @~.Ϧu=:DUںYٽ{qYsR ~vI}fߑYO? @`/2Py|x_d |rTJ/B`\ώNYO~ @ T?*U7'y*i|^.- V kkqf @Uڟ5??Ӳ#l*L(l\߬F  (b  >뎋'@ U@?իy^S=7'~ @ TGY r+8tLhB @`_7~ϏOM}! @ٷ: xӳWJ @o@uM>ګ^(hue5epuDxft @ @;n) yGV  @, 4v۽w?f%/H @XK~s߸Z~V[jQRՍr =C V/5*ef*baَf%æs @D+W/_ُTgkeqh{Bm40ހp;w5Z7)cN;k~ʄe B״`Z`!_qJ o _:;hOxz@(B}'}ow,1j/Ah2jj}s]jޏX&D)*ťG9G3 =BdXjP8x[vsAg009A& ||oT#7~=:٧|ܛ\#TS ]\ -J,EhU k)oR,zaxaa~shh^T;Z}i Z@_}ø@9Դ.Fۓ&ګkG9-W'eBsQs82Y&4+fkFs 3$t^\fꅙ㏪zai40P2T PmH?(vX|Xվ+Rݥ @|~#=D&FnTLP݆P eQ=pl[Vk\Pʆ|ݚP3fN@%),@ٙɅJ2мRKR5\pkkHU̲"b:"PML] zC&[ _V+}ʭ{f*jN>5YzT5j&v,L.8W2n^h&'.:khõ:Z˖z#{FKXoӚK\9zB[" _:e‹x^~OբϾ;+M.VlO0Z-=\67P/@6ڧ0;[/̭Dj/J%I3;DC¤\Cgᰬv.g ֫#f#wVbҦIy%qK6P,a +@jnu~{( Τֺpדbar&jS/ݦX>zw\nVU+ F qhwû=΋'T }s ;)-/+cJѼ?i^KJQA1mr5E#Ԗ&0T,/I.T\t#i!ӷ^&zwdehW ] l =da8,L:,V3eKednbtoG׷5ED= 1_GUJnhJ,h-pjʊGVEG1)d8T nMmV ֟S- 9:bXeEhҦr[WohS&,;&櫌rt}g\竺鋎Q3~NxnwRS_&v̬G?R /@]ʿZ}&E[*odYZ*nJ}sAP/?P7>CKIv΂bɁ'.W3=;W &"U۠)+ tGUbT_s)⢙/&(5&uPZ1u,j`1X\\k]]JՅwˊf߿]V WF]ƯO@ժ,[c 헟}|o[rZU/)/<-$Y8: bbX8{JbvӒN]UCD`|Q@` SUO։ Bs c_5):Z_.[tws#s +V(s$s3&Էݵ7wl9WmeYsau7:/g5@^mNN.M>, jMN77-+;7:M$ `U}{/1SV2fnZKvdL4,  s rF%.:c`]X&?vΆtLtVSl_F(.^Y^|wV&JEVf.*ß2oWyدG5f鿹glt²UKӂ^:e3'xgrjs_ٙDžCg0W2,Z ɅJay{BlBg03jpi&o*!@ ?/:5jӞRLLTV,vj]s{v{0C{ܡӪaqRGеBiiкhs\9=8@X:Ua @ xbRvZ4ivS{bpwmHW.ɅLdr%J:V.*Fk:˄lP0h@X:ZY% #@PhOF,.psS6)g^5 ˣJ[zף+]^zUPv: #a T s +Gˍ$B Bu0}0]Y4;q6- @ ]2L/'W(Mzraw$ ]*_39}Lk.7&=ӅF3꠽b  @\P`qu ba|#dfaRhnh)473eZ}T لQM7ۙ %FsA{qtAi0srxMДB]uDv @*:.F7Gm HM0=(ܜNS#njtd٘zQLw̯,:^+ LuD,zl}3 @+X4S+f5w7LjOTˍ m;պmgaQ=}3wP,&zJɬҺ`:_ڀ\@? @U̕ ytG\s^n2Pm^.|Ah.V^_eµf繹W&Jтzt5dAhq`T_a3  @ v*FWKӝ*AS&sqFYF>mO3=uRՊCC[d @ ͯ@h-1NOʢA]Lf -E)uAdhbQ`qP{F4( @@e3eAYVt05-*]X42۫k@O" @[(0'ƛҠ9YPt`2eP&R.;uD]E!-|t @ šjKrݠ=eЬ&j DjZGT_pp* [F IQ09裻LhO-'@H$0e0 ~M99h2YP](\PLZM*'z^t @r &</h>) ˇ5 yW @& EAYATնrHiuq׸oSP5 @\? @ t9?3fOAu٧٤7sά-zZU @K). ^4wuEPNO%/#M @l4"  @D`\[2& @" {  @l=c @= @G@ߞN  @ @# oX{ @ @gS @g @3) @3@ @`{k @ @ =wJ @@  @{;%@ { @l=c @= @G@ߞN  @ @# oX{ @ @gS @g @3) @3@ @`{k @ @ =wJ @@  @{;%@ { @l=c @= @G@ߞN  @ @# oX{ @ @gS @g @3) @3@ @`{k @ @ =wJ @@  @{;%@ { @l=c @h_ @lh1XX, @x] @]@]X @]@] X@^ X @^ @3^ @I^ @_^   @u^   @^   @^   @^   @^ @^ @^ @_ @%_ @;_ @Q_ @g_ @}_ @_( @_( @_( @_( @_( @`( @`( @-`( @C`(  @Y`(! @o`(" @`(# @`$$ @`%% @`&& @`'' @`(( @ a)) @a;(+@?aXX,, @oaX--"@a,XX.."@a,XX// @a00 @a11 @b22 @'b33 @=b44 @Sb55 @ib66 @bII @bJJ @ c$ ((, 36$"   XXXX&X.X6X>XFXNXVX^KK@OcXX(L @mcMM @cNN @cOO @cPP @cQQ@cXRR@dXSS @dTT @3dUU @IdVV@edXWW @dXX @dYY @dZZ @d[[ @d\\ @d]] @e^^ @e__ @/e`` @Eeaa @[ebb @qecc @edd @eee @egg @ehh @eii @ejj @ fkk @!fll @7fmm @Mfnn @cfoo @yfpp @fqq @frr @fss @ftt @fuu @fvv @gww @)gxx @?gyy @Ug @kg @g @g @g @g @g @g@ hX@+hX@KhX@khX@hX@hdX@hX@hX@ iX @&i @XPXbXX@ k'''''''  '' ' ' 'XX X2X8XDXPX\XbXtXX**<@nk9XXXX X&77<@k9XXXX X&HH @ m g*@'+'!''' ''''''g*@'A'+'!'''''''''g*@'A'+'!'''''''''!''' / g*@'A'+'!''''''''' +' !'' !'''XXbXXXXXX.XFXLXXXff>@nJJQQJJJJKKJJKKJJKKJJKKJJKKJJKK JJKKQQVVJJ KKRRJJ KKRRJJ KKRRXX X,X2XDXVXhXzXXXXXXzz @Bo@^oXJ@o X8z1w,BXK!Z7ZMZlZZZZZZ[[4[J[`[v[[[[[[[\&\<\R\h\~\\\\\\]].]D]Z]p]]]]]]^2^`^^^^^^^_(_>_T__`,`B`X`n``````a(a>aTajaaaaaaabb0bFb\brbbbbbbb c"c8cNcdczcccccccd*d@dVdldddddde.eNepeeeeeef'f=f ggAhhjkl!l P.ra)EditEngineItemPool r6f#0tg* \@N ",StarBatsN -",StarBatsN -",StarBatsN -"` ` ,StarBatsN -" ,StarBatsN -",StarBatsN -"hh,StarBatsN -",StarBatsN -",StarBatsN -"pp,StarBatsN - "X,StarBatsN -",StarBatsN -",StarBatsN -"` ` ,StarBatsN -" ,StarBatsN -",StarBatsN -"hh,StarBatsN -",StarBatsN -",StarBatsN -"pp,StarBatsN - ",StarBatsN -",StarBatsN -",StarBatsN -"` ` ,StarBatsN -" ,StarBatsN -",StarBatsN -"hh,StarBatsN -",StarBatsN -",StarBatsN -"pp,StarBatsN - Z"|,StarBatsN -"|,StarBatsN -` ` ,StarBatsN K",StarBatsN -,StarBatsN K"pp,StarBatsN -"  ,StarBatsN -" ,StarBatsN -"%%,StarBatsN -"0*0*,StarBatsN -Z r,StarBats -r,StarBats -r,StarBats -r ,StarBats -r,StarBats -r,StarBats -rpp,StarBats -rXX,StarBats -r@@,StarBats -r(#(#,StarBats - "XX,StarBatsi -",StarBatsi -",StarBatsi -"` ` ,StarBatsi -" ,StarBatsi -",StarBatsi -"hh,StarBatsi -",StarBatsi -",StarBatsi - Z d"|))TimesO-` ` ))TimesOK"))TimesO-))TimesOK"pp))TimesO-"  ))TimesO-" ))TimesO-"%%))TimesO-"0*0*))TimesO-ZXX.XNXn XXXh @@XX>@dddx dddYXX!<( @ XX ( @ StarBats!"- StarBats!"-XXG@'!c@dddddXdddd ,dd|d@ddd`  dddhddddddpddd  xddd (#ddd% 'ddd0* ddddddX,dd}dXX!X4XGXZXmXXXXXXXXXA' @ ddddddddddddd,dddddd ddXXX&X2X>XJXVXbXn1'@dX+'(@XXX' @2!':@lffffXXX&'@+Times StarmathMedium HelveticaMediumCourier HelveticaMedium HelveticaMedium  HelveticaXXX7XQXcX}X'@ ߔNd 4d d d {d d d hd d d d id d XXX"X,X6X@XJXTX^XhXrX|X?( @)'%@NXXX'@u X'@ X'@ XX'@ە X'@ X%' @S' @*"' @@' @V@pXv*)( > S!"5"f""""" # #6#L#b#P{g* "XX,StarBatsN -",StarBatsN -",StarBatsN -"` ` ,StarBatsN -" ,StarBatsN -",StarBatsN -"hh,StarBatsN -",StarBatsN -",StarBatsN -"pp,StarBatsN - ( StarBats!"-!''Times'Od 08s 2 + StandardStandard#'''''''''''''''+;(,,--..g* (@'A'1'+'!'''''''''Object with arrowStandardObject with arrow'''''''Object with shadowStandardObject with shadow+;(,,--..Object without fillStandardObject without fill'TextStandardText'' Text bodyStandard Text body'''Text body justfiedStandardText body justfied''+'First line indentStandardFirst line indent''g*@'TitleStandardTitle'''Title1StandardTitle1 '''+;(,,--..+''Title2StandardTitle2 ''+;(,,--..g*@'A'+''HeadingStandardHeading''A''Heading1StandardHeading1''A'''Heading2StandardHeading2''A''''Dimension LineStandardDimension Line'''''''Home~LT~Gliederung 1Home~LT~Gliederung 1''g* (@'A' +'!'''''''''Home~LT~Gliederung 2Home~LT~Gliederung 1Home~LT~Gliederung 2@'A''Home~LT~Gliederung 3Home~LT~Gliederung 2Home~LT~Gliederung 3@'A''Home~LT~Gliederung 4Home~LT~Gliederung 3Home~LT~Gliederung 4@'A'' Home~LT~Gliederung 5Home~LT~Gliederung 4Home~LT~Gliederung 5@'A'' Home~LT~Gliederung 6Home~LT~Gliederung 5Home~LT~Gliederung 6@'A'' Home~LT~Gliederung 7Home~LT~Gliederung 6Home~LT~Gliederung 7@' A'' Home~LT~Gliederung 8Home~LT~Gliederung 7Home~LT~Gliederung 8@' A'' Home~LT~Gliederung 9Home~LT~Gliederung 8Home~LT~Gliederung 9@' A'' Home~LT~Titel Home~LT~Titel''QQg*+'!''' ''''''Home~LT~UntertitelHome~LT~Untertitel''QQg*@' +'!''' ''''''Home~LT~NotizenHome~LT~Notizen ''!'''''''''Home~LT~HintergrundobjekteHome~LT~Hintergrundobjekte+;(,,--..Home~LT~HintergrundHome~LT~Hintergrund'''TitleTitle@SubtitleSubtitle@Background objectsBackground objects@ Background Background@NotesNotes@ Outline 1 Outline 1@ Outline 2 Outline 1 Outline 2@ Outline 3 Outline 2 Outline 3@ Outline 4 Outline 3 Outline 4@ Outline 5 Outline 4 Outline 5@ Outline 6 Outline 5 Outline 6@ Outline 7 Outline 6 Outline 7@ Outline 8 Outline 7 Outline 8@ Outline 9 Outline 8 Outline 9@tPDP8DvB t  ~  Z  8 k 723@}4@J@G;@; DrMd^OJoeM0T1ZUT1ۭT1HάstandardstandardstandardstandardstandardstandardODrLy LAYER_LAYOUTDrLy LAYER_BCKGRNDDrLy LAYER_BACKGRNDOBJDrLyLAYER_CONTROLSDrLy!LAYER_MEASURELINESDrMP'JoeMtRDrML DrOb<SVDr& 1%DrOb<SVDr&B$i%DrOb<SVDr& ,17JDrOb<SVDr&B,$i7JDrXXgg Home~LT~Gliederunglanguage-study.sddlanguage-study.sddDrMP/ y JoeM`mRDrML DrObSVDr&_mR'Home~LT~Hintergrund_mRDrObSVDr& oe! Home~LT~Titel^ oe?xV4B1*XEditEngineItemPool :6f0!!@}dddxX<(@X (G@ StarBats!r-X@'!@dddX;[ P?#Click to edit the title text format Home~LT~Titel<( (@'DrOb SVDr& oe{J(Home~LT~Gliederung 1 oe{J xV4B1cXEditEngineItemPool 6f0  @ dddY ddd YDdddYDdddYDdddYD8ddd8YDXdddXYDxdddxYD!ddd!YDXX'X@XYXrXXXX<( d@ {  XXXX X&X,X2X8X> (@  StarBatsX!"- StarBatsX!K StarBats !K StarBats!"-XXGXX@'@ dddY|` ddd` YdddYdddY pdddpY  ddd Y  ddd Y%ddd%Y0*ddd0*YXX'X@XYXrXXXX) P  %Click to edit the outline text formatHome~LT~Gliederung 1<( (@'Second Outline LevelHome~LT~Gliederung 2<( (@'Third Outline LevelHome~LT~Gliederung 3<( (@'Fourth Outline LevelHome~LT~Gliederung 4<( (@'Fifth Outline LevelHome~LT~Gliederung 5<( (@' Sixth Outline LevelHome~LT~Gliederung 6<( (@' Seventh Outline LevelHome~LT~Gliederung 7<( (@' Eighth Outline LevelHome~LT~Gliederung 8<( (@'Ninth Outline LevelHome~LT~Gliederung 9<( (@' DrXXgg Home~LT~Gliederunglanguage-study.sddlanguage-study.sddDrMPJJoeMRtDrML DrObSVDr&?% CL3! Home~LT~TitelR?% CL33xV4B1XEditEngineItemPool 6f0!@,dddxX<(@LX (G@ StarBats!r-X@'!@dddX;[ PClick to move the slide Home~LT~Titel<( (@'DrObSVDr& IeEc#Home~LT~Notizen[ IeEc<xV4B1'XEditEngineItemPool 6f0!@dddxX<(@X (G@N StarBatsX!"-X@'!@{dddXX;[ PClick to edit the notes formatHome~LT~Notizen<( (@'DrXXgg zHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPg cJoeMtRDrML8DrMD,DrXX Handoutsgg jHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPgYJoeM`mRDrML8DrMD,DrObSVDr& oe$ ! Home~LT~Titel@ oe$ !xV4B1 XEditEngineItemPool h6f0O!@dddxX<(@X (G@ StarBats!r-X@'!@KdddX;[ PmBasic Home~LT~Titel<( (@'DrObSVDr&qdkH(Hom      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~e~LT~Gliederung 1SqdkH4xV4B1XHEditEngineItemPool  6ft0~D@ldddY ddd YDXX'<(@XX (@& StarBats !K StarBats!"-XXG@'D@vdddY|` ddd` YXX'^ PLanguage evaluation criteriaHome~LT~Gliederung 1<( (@'Types and valuesHome~LT~Gliederung 1<( (@'Functions and variablesHome~LT~Gliederung 1<( (@'SyntaxHome~LT~Gliederung 1<( (@'Memory managementHome~LT~Gliederung 1<( (@'Pointers are dead!Home~LT~Gliederung 2<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPgKJoeMRtDrML8DrMD,DrOb<SVDr&?% CL3DrObSVDr& >eEc#Home~LT~NotizenO >eEc0xV4B1XEditEngineItemPool  6f0!!@B!dddxX<(@b!X (G@! StarBatsX!"-X@'!@!dddXX;[ P"Click to add notesHome~LT~Notizen<( (@'DrXXgg vHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPg q JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelN oe$ /xV4B1XEditEngineItemPool :%6f0!&!@}%dddxX<(@%X (G@% StarBats!r-X@'!@&dddX;[ P?&Evaluation criteria Home~LT~Titel<( (@'DrObSVDr&qdkH(Home~LT~Gliederung 1qdkH`xV4B1=XEditEngineItemPool '6f0)@ (XD@l(dddY ddd YDXX'<(@(XX (@&) StarBats !K StarBats!"-XXG@'D@v)dddY|` ddd` YXX'''@) StarmathMediumX'@)X.~8 P) ReadabilityHome~LT~Gliederung 1<( (@'/simplicity, orthogonality 1 fast learning curveHome~LT~Gliederung 2<( (@' WritabilityHome~LT~Gliederung 1<( (@' expressivityHome~LT~Gliederung 2<( (@' polymorphismHome~LT~Gliederung 2<( (@' ReliabilityHome~LT~Gliederung 1<( (@'compile-time checkingHome~LT~Gliederung 2<( (@' readabilityHome~LT~Gliederung 2<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPgyJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL3DrObSVDr& -AeEc# Home~LT~NotizenO -AeEc0xV4B1XEditEngineItemPool /6f0v0!@/dddxX<(@/X (G@E0 StarBatsX!"-X@'!@r0dddXX;[ P0Click to add notesHome~LT~Notizen<( (@'DrXXgg vHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPg  JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelO oe$ 0xV4B1XEditEngineItemPool 36f04!@ 4dddxX<(@-4X (G@4 StarBats!r-X@'!@4dddX;[ P4Types and values (1) Home~LT~Titel<( (@'DrObSVDr&qdkH(Home~LT~Gliederung 1+qdkH xV4B1XEditEngineItemPool {66f0]8@6XD@6dddY ddd YDXX'<(@'7XX (@7 StarBats!"- StarBats !KXXG@'D@8dddY|` ddd` YXX'+'@+8X'"@Y8 HelveticaX.~8 P8!Programming = manipulating valuesHome~LT~Gliederung 1<( (@'Builtin values: 1, 1.1, 'z'Home~LT~Gliederung 1<( (@'Low-level types:Home~LT~Gliederung 1<( (@'+')char, short, int, float, double, pointersHome~LT~Gliederung 2<( (@' based on hardware representationHome~LT~Gliederung 2<( (@'!Higher-level types: lists, arraysHome~LT~Gliederung 1<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL3DrObSVDr& -AeEc# Home~LT~NotizenO -AeEc0xV4B1XEditEngineItemPool =6f0>!@>dddxX<(@/>X (G@> StarBatsX!"-X@'!@>dddXX;[ P>Click to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPg  JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelO oe$ 0xV4B1XEditEngineItemPool B6f0B!@FBdddxX<(@fBX (G@B StarBats!r-X@'!@BdddX;[ PCTypes and values (2) Home~LT~Titel<( (@'DrObWSVDr&qdkH(Home~LT~Gliederung 1qdkHxV4B1XEditEngineItemPool D6f0F@DXD@6EdddY ddd YDXX'<(@`EXX (@E StarBats!"- StarBats !KXXG@'D@@FdddY|` ddd` YXX'' @pFCourierX'@Fd X.~8 PF User defined:Home~LT~Gliederung 1<( (@'#structs: point = { x: int; y: int }Home~LT~Gliederung 2<( (@' %enums, ranges: bool = { false, true }Home~LT~Gliederung 2<( (@'4datatypes: tree(a) = leaf(a) | node(tree(a),tree(a))Home~LT~Gliederung 2<( (@' SubtypingHome~LT~Gliederung 1<( (@'$3dpoint = { x: int; y: int; z: int }Home~LT~Gliederung 2<( (@'0can be used when a point (see above) is expectedHome~LT~Gliederung 2<( (@'$Abstract typesHome~LT~Gliederung 1<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPg*JoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL3DrObaSVDr& 27eEh#Home~LT~Notizen 27eEh xV4B1X EditEngineItemPool L6f90N@ MXX!@EditEngineItemPool +6fj0@aXO@FdddddDd  ddDdXX!X4<((@XXX (@ StarBats !K StarBatsX!"- StarBats!"-XXGX@'O@,dd|d@ddd`  dddXX!X4'=@] Courier StarbatsMediumXX '@d X.. P Use of words (begin, def...)Home~LT~Gliederung 1<( (@'Home~LT~Gliederung 2<( (@'Home~LT~Gliederung 2<( (@' Operator overloading (semantic!)Home~LT~Gliederung 1<( (@' Special terse constructHome~LT~Gliederung 1<( (@'Perl!Home~LT~Gliederung 2<( (@'-> optional sometimesHome~LT~Gliederung 3<( (@'$=> allow removing quotes on its leftHome~LT~Gliederung 3<( (@'quoting: ' " ` q qw qq...Home~LT~Gliederung 3<( (@' #|| vs or vs unless, && vs and vs ifHome~LT~Gliederung 3<( (@' !#4list comprehension, pattern matching, case statementHome~LT~Gliederung 2<( (@'4&**+$!! Importance of good error messagesHome~LT~Gliederung 2<( (@'Home~LT~Gliederung 2<( (@'DrObSVDr& R>e^DrOb SVDr& R t DrOb SVDr& R DrOb)SVDr&# . Standard# .xV4B1X@EditEngineItemPool Z6fl0!@dddxX<(@X (G@ StarBats!"-X@'!@=dddX!'@cX'(@ HelveticaMediumX'@X;[5 PPascalStandard<( (@'!'''DrOb)SVDr&3 @> Standard3 @>xV4B1X@EditEngineItemPool 6fl0!@ƤdddxX<(@X (G@9 StarBats!"-X@'!@fdddX!'@X'(@ HelveticaMediumX'@ߥX;[5 P PythonStandard<( (@'!'''DrOb,SVDr& RDrObSVDr&R Standard QDrOb$SVDr&D L StandardD LxV4B1X@EditEngineItemPool 6fl0!@èdddxX<(@X (G@6 StarBats!"-X@'!@cdddX!'@X'(@ HelveticaMediumX'@ܩX;[5 P CStandard<( (@'!'''DrOb(SVDr&  Standard xV4B1X@EditEngineItemPool 6fl0!@dddxX<(@X (G@Z StarBats!"-X@'!@dddX!'@X'(@ HelveticaMediumX'@X;[5 P.CobolStandard<( (@'!'''DrXXDrXXDrXXDrOb*SVDr&*@O(M> Standard*@O(M>xV4B1X@EditEngineItemPool 6fl0P!@3dddxX<(@SX (G@ StarBats!"-X@'!@ӯdddX!'@X'(@- HelveticaMediumX'@LX;[5 PzHaskellStandard<( (@'!'''DrXXDrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL3DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool 6f0ݴ!@9dddxX<(@YX (G@ StarBatsX!"-X@'!@ٴdddXX;[ PClick to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPgE  JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelH oe$ )xV4B1XEditEngineItemPool -6f0!@pdddxX<(@X (G@ StarBats!r-X@'!@dddX;[ P2 Syntax: scope Home~LT~Titel<( (@'DrObSVDr&qdNK(Home~LT~Gliederung 1qdNKxV4B1uXEditEngineItemPool ׺6f0 @ Xa@rdddY ddd YDdddYDXX'X@<((@XXX (@s StarBatsX!"- StarBats !K StarBats!"-XXGX@'a@dddY|` ddd` YdddYXX'X@''@ StarmathMediumX'@?d X'@^X'@}X. <` PMblock structure enables local definitions (variables and sometimes functions)Home~LT~Gliederung 1<( (@'*MAlifetime is limited to the block 1 ease maintenance & readabilityHome~LT~Gliederung 1<( (@'!#!#Vindentation based block structure: follows WYSIHIIP (What You See Is How It Is Parsed)Home~LT~Gliederung 1<( (@'4V namespacesHome~LT~Gliederung 1<( (@'3can you have a type with a same name as a variable?Home~LT~Gliederung 2<( (@'3if so types and variables have different namespacesHome~LT~Gliederung 3<( (@')3DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL3DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool 6f0!@dddxX<(@X (G@f StarBatsX!"-X@'!@dddXX;[ PClick to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPg'?'JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelM oe$ .xV4B1XEditEngineItemPool 6f0!@*dddxX<(@JX (G@ StarBats!r-X@'!@dddX;[ PSyntax: statements Home~LT~Titel<( (@'DrObSVDr&qdkH(Home~LT~Gliederung 1qdkHxV4B1bXEditEngineItemPool 6f#0@XXa@;dddY ddd YDdddYDXX'X@<((@oXXX (@< StarBats !K StarBatsX!"- StarBats!"-XXGX@'a@dddY|` ddd` YdddYXX'X@8 PExpressions vs statementsHome~LT~Gliederung 1<( (@'<a statement is like a procedure, it doesn't return any valueHome~LT~Gliederung 2<( (@'6i=0 being a statement disallows: j=(i=0), if (i=0) ...Home~LT~Gliederung 3<( (@'Home~LT~Gliederung 2<( (@'Home~LT~Gliederung 2<( (@'Home~LT~Gliederung 2<( (@'1ML enforces via types what Python does via syntaxHome~LT~Gliederung 2<( (@'DrObSVDr&*)>_8vuDrObSVDr&*3>_5  Standard/543^4DrOb(SVDr&>1+4  Standard>1+4xV4B1X:EditEngineItemPool b6ff0!@dddxX<(@X (G@ StarBats!"-X@'!@EdddX!'@kX'"@ HelveticaX'@X;[/ PCobolStandard<( (@'DrOb%SVDr&:M,'X0  Standard:M,'X0xV4B1X:EditEngineItemPool 6ff0!@dddxX<(@X (G@@ StarBats!"-X@'!@mdddX!'@X'"@ HelveticaX'@X;[/ PMLStandard<( (@'DrOb$SVDr&-$1/4  Standard-$1/4xV4B1X:EditEngineItemPool 6ff0 !@dddxX<(@X (G@e StarBats!"-X@'!@dddX!'@X'"@ HelveticaX'@X;[/ P3CStandard<( (@'DrOb)SVDr&0-n1  Standard0-n1xV4B1X:EditEngineItemPool 6ff0-!@dddxX<(@6X (G@ StarBats!"-X@'!@dddX!'@X'"@  HelveticaX'@)X;[/ PWPascalStandard<( (@'DrOb'SVDr&81 C4  Standard81 C4xV4B1X:EditEngineItemPool 6ff0V!@?dddxX<(@_X (G@ StarBats!"-X@'!@dddX!'@X'"@3 HelveticaX'@RX;[/ PPerlStandard<( (@'DrOb'SVDr&VL1CW4  StandardVL1CW4xV4B1X:EditEngineItemPool #6ff0}!@fdddxX<(@X (G@ StarBats!"-X@'!@dddX!'@,X'"@Z HelveticaX'@yX;[/ PLispStandard<( (@'DrOb)SVDr&\)I-  Standard\)I-xV4B1X:EditEngineItemPool J6ff0!@dddxX<(@X (G@ StarBats!"-X@'!@-dddX!'@SX'"@ HelveticaX'@X;[/ PPythonStandard<( (@'DrOb^SVDr&;I 6JX8  Standard;I 6JX8xV4B1XbEditEngineItemPool s6f0!@dddxX<(@X (G@) StarBats!"-X@'!@VdddX!'@|X'"@ HelveticaX'@4d X'@X;[/S P expressionsStandard<( (@'    DrOb]SVDr&5/8  Standard5/8xV4B1XbEditEngineItemPool 6f0O!@dddxX<(@4X (G@ StarBats!"-X@'!@dddX!'@X'"@ HelveticaX'@,4d X'@KX;[/S P} statementsStandard<( (@'    DrXXDrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL3DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool  6f0!@MdddxX<(@mX (G@ StarBatsX!"-X@'!@dddXX;[ PClick to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPgC@CJoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelA oe$ "xV4B1 XEditEngineItemPool A6f0(!@dddxX<(@X (G@ StarBats!r-X@'!@$dddX;[ PFSyntax Home~LT~Titel<( (@'DrOb;SVDr&` UR  Standard` URA;";NAT5 ;PNG  IHDR{9&KPLTE???y?(Q~??vX;1;vb??mtRNS@f IDATx݉b(`4O.$qpHNlK/v88p8Xbݜ۞"u)R7I^8C%<+pΡx@̜qr̜$qRH̜d#r:Zb ~XiK=3=, G~ [Kz|׏=ޮvI9KHPP4Vq?[_{ྡྷ\ s|^Y6#\u/wZ>ZVǷ-/oW{bYIYiG?KRٵjdn<.~EZuC??b| rr{vxo=ڵR޾E^\ȅe7!OPS~2! H9Z7zrW\=9+@@ޟx*P{r1v2;񔝼n8'*)IlE玜Ɛ_Ūf3l93.`',`s Nfd?r9&n >+Y (֒6pJF˃< I Oodn/oZGqdOGlclazT`-@ApT-:y~LKbj;g7G,yc}<=gpF+Q_ '_*|}5KQ/)Iܥ ̼lO)&fH*PקCfS8=cR"Y e'PI/2 ˷I;7D'VVOl yH*4M!O7- iqݎ\PvtYy{hG> ɉ`Ӌ(M4${pSsyP\Xߍk*f.;¶99q%ke򜰭>]yL|^_w8>b]9>ϳo. jxpAk_ms"p‹d|,oNyd0Mq! rFM/YV3|=Tfw;jՏ,rcf+M;^lڈ ^\ 3h]Yɹ+{\Դw5iZrcqQ$ -XѺ Qi7E<)KGOP_)7_<?~w\JsۊŔB9ߥi$ôA\yD+i—ڎ0ruyÕ:\"g宬+0KOEqavz^%l;<&c=EēK_Ȏ3.R9|۳X`29*3eƁ7'a]oљC/pl8f?s{JVb3rt2/0~G"WY??9#G6>IRfCȋ5@Q?n<"~*2nH@k$#0n˝N< r385MW5_r?N[|wڐqF^"Dޖ.kC% ׏-ɲS_,Z~l9O}"/z(rt3yLbK̖:YeW@P3eymW@cy9Bl caF^&D^#׏-ON}#ߧYx}Ν0GNؓ3rwvTn63OiIvG~xJ=ztSYOhh|Zzxr50򌭨CX,3Dx& Ɉ??p`C2!J%Faʶ _1Pr o_yƌ"/MНӗԷ_NB Ƀ|tx￈^uwZf#35PU%WO>ȼɞ|"+kt%;j"oħ\^.?wm]e/',/=wWƷP+ꯏt32o'Jէ?nz@>< rG??bD>ޑHaE}u1t٤|ɅGRu6-!|E>2r[y6Z7 W>unɗ 7|Lj\}Õ̩2.+ )Kɧ<[W x +xZ;oēICˎː4, f #G `yaNCSR3IJ7)9#TF9xrF #bܧD<9#3Ժ8y4FLM "_DyrFM6'ݴ݋^zLzC]X/W՟_toGqM*\XJB-ޢ~}T@.@rɵ𳸩xI6nï_IHyi@ҍo7!s|GLT909i/J Ց4*^D¾aeKeGՉGhL@.m_&+~re䥒v|/'oK6'&'KL90H|΋D5ȁ>!n#EnP(E];7A:-"slܦ RՕ״0!6mА}U2A_3om4ѕ3 B<RiNFN <8jyd1yb";n}G< !+ac@~iseZ|?om~gSғӎo 6#,&KGpERWQߋ5qElVFNH[̑ߋ50xNEꪡ]9#[x>D1"ٔ 98Ĥj7#,&KJw ?ē'ϛ{ea䇨Wu]FNQL0r †9}ҍ7Ac`Jhf #Yqe䱵6$)v,#j S901<Ɨ6'tِXN<#ryaW;?'n=ɑgR({=\v|8.fY(ɺCn(/!r;]W.}X.!5rxZ&9bMLm"Vk<0FU]+0rFn4Zɇqge=g"yX|\=x}ba۪ANjsȱ[g_Z"9d1 R2- o3-"7~*G~h~PUD<-F(6KokE;A>-Nq90ɳ / d'U<ߘV6'<3g2, ȣF ċfi.O /rڣӪ],{iZ|qiJz=vE ɂ\Y"fdVb،'==ʩ.wu)GЗVԭEyO_BڔJr&؟b.uCO͈]ҘP3xNpEX/(4,~3"W|61rtw|^]dȇwr|xX0Cny*xy%=efA^ꠖD219#?%ϒ OW:EoЪ.Dh+)!2E ܇!=&oN }\zƌ+hŸaS>?Z?WȏCަ*dW.\CnFuC>țIM*?#WѰ-FiFfJ!ut5Hb͇?缈39:a͓* 1ûS~Ffy?\ᲡZ'voӖS7Rj #<-ri]~(o;E><㉧^O%ĉ#IAhԶV~^ W~nl?\ G(?Qت%ry!Ϗ砜V&.!)KB\eqv6ׁV=9#rZ!9[n9(DI[3Be[%F$7g0r V$6:#W}Zq.rsZy}ȱe{~Ny|6 D`ΛiJ\Cψљ[@Hz_kkʆy+C[NJ_iEVqF5tWȉ83+2s$u$k0r|u[O O{E6 "/1jyFn.x*kˋklP|55l|v~j3\D`T?#T:ޖ0rOyf38#Y*dB槥f}L9.gw5m.(=stA][ }zk;6g:(;ojgS'E< sq+ lH-7s$O\SU\ biY/W!rbQ:ޓ/ Y8ob_g `˟"fWȅ._?zq= T9¾\XC*~rj;lIx*oobB.}_CS _?)OOlW^~_322'(q)wWʍ9oWyzq]>~S4eYs0G8ȵ0,U'B>F@[L}n.Ŏ@сM,+ W+<<%rcD؆+gÕr:6,*<7prcrrI_M̛\>r~?ƂRF>:!1ȷ ߷^}}:Q7HFnKe}Q!3ujRiG;FLA-=r|M5yΑG|Rڷ#d<*|3nܿ #dv+hykv<Wa^T^o2DՍa.# .[ ǒZ3Ϩa7$OZW6cQWnv0"CW.t%FCRy2 ?"X_]k9tTC[+FMyh-w-$2%r|/"n"N ~LO ~* &})Knx謌]?`8r|"A|9tBgn7!Ē<ΘH;K, I$^y$q+sW $q<z"q+K8cȈf>`Okɓ̿s9_Է.!u-s(P--M:YU_Z:N¬Mq.QG@ܻÝŘ[+EA.}ؑOȻQg H= [8C9>\bo0=]I>#Kwfk)%jNQ3߀|XD0Go7?)m蘵{4Q[۫Fٲ/!:j)#ء坾{~=r11Ym~#; k>'I4Bul7YH=B씮rXСӖ?u}=ɮWwR?YyP4\ݏ@?\&F~+-!'DnxR|n{6zu\cvY#pyQhI?Vߋ^0~Lwʧiǽ=y7pņ+y6\ysWLᢟZzS7n>`8#Um:/ O[G$ӎNDZ>7x!7}ҹ8O'g}{J70\MFNB!Dz[bV=(誡cD-zr}[ZwqSbw⹸:\obbɻA=uo^7lߝiO执'W?)n7z9u%D6n4X.'r#xJw!cq nPJ2>{ⁱW厘81v~ko-߹A-/[#G)$|˝uf'09 %qq!FN,hX9q%U ͻ7w!(q:(~ fU| ^xJr٤.$UP fUH`  O  \iK 0r9#>0r9#>,݇sv6}9gap8p8p8{0s7'&a&U3s8;iqFe~9gr`}GM9'p8p8p8p8p8p8i#&ytIENDB`DrObSVDr&wP:jiE  StandardwP:jiExV4B1yX\EditEngineItemPool 26f04!@2dddxX<(@2X (G@D3 StarBats!"-X@'!@q3dddX!'@3X'"@3 HelveticaX'@3X@4X;[/N P44 green: basicStandard<( (@'  yellow: mediumStandard<( (@'red: complexStandard<( (@'DrXXgg nHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL3DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool a86f0H9!@8dddxX<(@8X (G@9 StarBatsX!"-X@'!@D9dddXX;[ Pf9Click to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPg) )JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelL oe$ -xV4B1XEditEngineItemPool <6f0=!@<dddxX<(@<X (G@N= StarBats!r-X@'!@{=dddX;[ P=Memory management Home~LT~Titel<( (@'DrObSVDr&d[O(Home~LT~Gliederung 1d[O xV4B1XXEditEngineItemPool F?6f0[A@|?Xa@?dddY ddd YDdddYDXX'X@<((@@XXX (@@ StarBatsX!"- StarBats !K StarBats!"-XXGX@'a@OAdddY|` ddd` YdddYXX'X@. P}A Home~LT~Gliederung 1<( (@'Home~LT~Gliederung 1<( (@'0Static: everything must be known at compile timeHome~LT~Gliederung 2<( (@'Stack: Home~LT~Gliederung 2<( (@'enables recursionHome~LT~Gliederung 3<( (@'-enables stack allocated arrays (growing data)Home~LT~Gliederung 3<( (@'Heap:Home~LT~Gliederung 2<( (@'pros: data can outlive functionHome~LT~Gliederung 3<( (@'cons: need to free memoryHome~LT~Gliederung 3<( (@'GC (Garbage Collector)Home~LT~Gliederung 2<( (@'(Heap with no need to free memory by handHome~LT~Gliederung 3<( (@'DrOb|SVDr& saFDrObSVDr& =]S  Standard H\HDrObZSVDr&   Standard xV4B1XbEditEngineItemPool G6f0H!@SGdddxX<(@sGX (G@G StarBats!"-X@'!@GdddX!'@HX'"@GH HelveticaX'@kHd X'@HX;[/S PHFortranStandard<( (@'DrOb)SVDr& Q@  Standard Q@xV4B1X:EditEngineItemPool jJ6ff0K!@JdddxX<(@JX (G@ K StarBats!"-X@'!@MKdddX!'@sKX'"@K HelveticaX'@KX;[/ PKStaticStandard<( (@'DrOb(SVDr&Q%@  StandardQ%@xV4B1X:EditEngineItemPool M6ff0N!@MdddxX<(@MX (G@IN StarBats!"-X@'!@vNdddX!'@NX'"@N HelveticaX'@NX;[/ POStackStandard<( (@'DrOb'SVDr&I'Q=3@  StandardI'Q=3@xV4B1X:EditEngineItemPool P6ff0R!@PdddxX<(@QX (G@qQ StarBats!"-X@'!@QdddX!'@QX'"@Q HelveticaX'@RX;[/ P?RHeapStandard<( (@'DrOb*SVDr&}6QE@  Standard}6QE@xV4B1X:EditEngineItemPool S6ff0g StarBatsX!"-X@'!@kgdddXX;[ PgClick to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPg2  JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelP oe$ 1xV4B1XEditEngineItemPool j6f0k!@kdddxX<(@"kX (G@uk StarBats!r-X@'!@kdddX;[ PkMemory management: GC Home~LT~Titel<( (@'DrObSVDr&q dQ(Home~LT~Gliederung 1q dQy xV4B1NXJEditEngineItemPool qm6fv0o~@n ddd YDdddYDdddYDdddYXX'X@XY<(2@CnXXXX (@Mo StarBatsX!"- StarBats!"- StarBats !K StarBatsX!KXXGXX@'~@o` ddd` YdddYdddYdddY|XX'X@XY Pp pros:Home~LT~Gliederung 1<( (@'!allows implicit memory allocationHome~LT~Gliederung 3<( (@'3allows mutable lists in the language, eg: l = [1,2]Home~LT~Gliederung 4<( (@'Dfavours data sharing, can be more efficient than hand-managed memoryHome~LT~Gliederung 3<( (@'consHome~LT~Gliederung 2<( (@' can be slowHome~LT~Gliederung 3<( (@'finalization time is unknownHome~LT~Gliederung 3<( (@'implementationHome~LT~Gliederung 1<( (@'3reference counting (incremental, but circular ref!)Home~LT~Gliederung 3<( (@'!mark & sweep (can be incremental)Home~LT~Gliederung 3<( (@'copyingHome~LT~Gliederung 3<( (@'.generational (mixed of copying and mark&sweep)Home~LT~Gliederung 3<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL3DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool /w6f0x!@rwdddxX<(@wX (G@w StarBatsX!"-X@'!@xdddXX;[ P4xClick to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPgECBJoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelL oe$ -xV4B1XEditEngineItemPool f{6f0M|!@{dddxX<(@{X (G@| StarBats!r-X@'!@I|dddX;[ Pk|Memory management Home~LT~Titel<( (@'DrOb:SVDr&> ESP  Standard> ESP;::NAT5 9PNG  IHDR{9&?PLTE????>}000```vX;vb恢+69Vls;13tRNS@f IDATx흉!rZ;H{L$oC  poz3+fe ,g8@<):$!"I0'"̡1ǜ80BD\s& Rb0!&h F"lڡ<w(o\K__V+foy)ʯ~2U&|o8 j~B?ڷsB۔a"~j']͏=l@g==>RF5 S OzU.OӦ?Ժ!=w[@yU~KؾQ?ʰ\MJLNre_A"VƇqr6r?jC~ 8Ek?eގ TeOl@Ū^D|@:DU9ƃ) tr+AQ1C~a|"3p?q !r#beʈ čn&!h py B|GAsxApQ`e'hC nl7(`d,kuWB7ay1adjOw{ W#ye*=ܙ[۠j%?L@Tx8s'5GVtȽ1L9osk%Q8!'1~ <7GyZ2 ?J9аTLۦddhײ3b*z|DZtv7n*sn!6AN˕w@D'\6FqJ/-1?Á?rqt^treI;3ہ'$_e\V7|SہSy65O,~"; RuODNw'KIgp0ȳU!s[>g, G߬!Qbv] rxj|&QAYa>$x6g}+ z5F*-q@Nk1̿f yȝA$Ц+0Nܔ(39O#^dN8mjq& s5%\9[u0~0|z, Xkzجlt!mB<=^㆓ yA0)Q^j9S,7 @!vAGS19H#y\ڠ\  ^/2d y% G /@Z!yBAP:&e^DyJmN;yPhRT/i]yN! +<"p3ȓE(ȳ 'Qg O *@,GW>YS*ȳ Ug O *@*G9Cjw O= 9_'[[c]ħJybznߗ~Yh ){"f`or<;Ĉ)JSJ D>!gD4@5vxVș;)_Ml`CFVK")`quLP6L#W&@n2IӫwuJ# 9>GwU‹\иSV(OR&|a *+P,u_0ڹe~ʓ@edV>RBdxϓjn7Q3?n8'o/gnL5ZS_:-#s36~|>'cwg Ly-N=Ⱥnߪۋ#㇠7}{;EC[Lɷm>gd@c>k].W uN ȬM@!7wqȗ/TG@nrFmFq~+q7!pX!Wcre~<Yre48hiCnwy_g܁HmM>B\ ?2\qʍ6Of,ʲ&u:5g;Đk Q^M_x9ErO}!Ԧd&Ir$ 䱔5_IȍI"(lP %1.\"tt H[.q]&!\AɭvВr~ĸ3K}j+8 I!N3%՚nIrܭo = }bS&P0Wg"Xi%<{$/nng tpD qVr Ǫv_值3x9mhr%b_C@^T\ί# /*@.z*Q&B iVyQraN\X)#@E oYIx*]dH_2#Us GQ>r[U:CWg>jw[BNEHZV,])@^P8dftO@^F XD(RqH(y!OmV>r*brJjQ٘Z SbSA<s@N '((9U*&$ģ0Tr&" :rj}ZVqr9Q3=_=Ɵy(倜dLiǧ/}̯abM:ƪc 8GUVȕY+Eܢ9y4/J3H-22Q3iۄ6 4D {\Q4i~[%Ta=JA7!uK)JV5B?J GTR}S2rc9@KU #x?Iytr)t39 9@IXq@eG- Ϥ!۔9YZMӍr@G!Y!E [Ryk{:&mz* D+̏g|džB{ԲC>{6yϔrA,!:^KHyNȷ̌/wPVԟi j>3{{4P ' ym@|ޟϋBgd/DE۟oۻeh<rsu@N2= Tזayn0N{V9ǘ(6RAfdS?# OT\; B~[32 +Ba9㬓,17y,rW1Fj8 Mro5cfA9( y$<frb=l@NlȳCrӐSgY<'ys-@%ak@I"YƉNr2y,Aѳ&r@,AVI2]\7>ʃ" %'E[r r;@K-pB ~#d3dg)o"wypy|Pps'4KGtov9H T yW }|D_C{-#sp_r>vV'~(# OMy!ZBxs@v#B.^*Z!Fo**y,,4"׆<:@7)倜*r"uK{\ rSXȅsJa9@rs+CBP]I0Tyu'o!?[CkoXP!/G;;#KCnzdI_ rưe!&GSnyVcZ` C *@N4Q[9Y`a7b~5%N%ᇀB>!=ztn՘jP{1UJur@U!zHy@5V^J<m?]4䩨vR?f¡jn0M?izʾmK 4j᫕!ٍnH=,G|{1]=\l4fq%ת;Nu@={1-O(( C>_f`3G2UW+ @AԴ+S[8?*DYPtXu9LQBA#!OB30EI<`$qKPS54C+꺨rЅ 8)!@NBTbX$16:{lɈIY1Z˹33J}P. S}ϴCO͟_j6Ɗ8M9_$tχ;-WٳE$Yi0'Fy`Lo_KjsaBRA~PHokX[FU$ھ&İxk<]zש[-A}~Ǹ(95%l1zIDZasN SУsed>V#FC=u=ݯܖ+|eILqvqF[ﺵS:9<GKF!1Vp B$_=E2oЗ+zXd<kǚ,:5kb^ufZ /f*8/>w9^IaIDATm˕KB>,I ,+ꌐRUtne&k򌐏A_ߟj\|i3ܭɐK2r-mtrȇ4/L[=˕#KFH̞fUxtBtP.h}}} J|>Ti +D.ޒ6125(r͓nO!·׭3c /\Y"!xSq9d<Xx3+䲌6 rZ\:Eu>/yaa* rwA܌zqryΉ\r*{q CAΧ<0XIBNCO$NyŠmFPj RN 3Յ'?l8W dT򿠵 xo_ЊZ]_K}L%hAN.x%$=?MA5 M볻 GR<;9!j wOcecځԠ\Yo}!$ՄANoY_g7ʷ@M<% wG&T rbw(p2~6:!6orjoAQǨ:);S;{v6"q763};v6!iHoE@N(ngr>+sym ׍[oʯwpSpd~b\bMu7v/Zcpϻ>?[odtm_xH[Y;1 KJ<|i,\KkiǥB~e?|]WreN4~/ GyL& ۖv\,Ǔ1 WB<>V轐؂+|I;#.e ?)x֬rt!-iۀL֩j{Ǧɝrı3C>N˕b'2BuN/T6ȉ_8TiKrTܺ&7x;iVb&_+x&O[qG$^U]ѐ[W 4<`-K@5An=j$Ԝ$&]ʼWxYUVqV W!RW@;50S@Ny$$R^q=XqAy7 3"NjB;B'ʹk9G4;Sq u0!y/ 9֗(m堜+*ʹg=9V2B9 Q뀖|?IJ-wIN[^8z5xJYrG@NZ_xd3Eȳ 9;z{a-(yYJAnuZF; ,!*@-^Dn}C4!3r)yHY:cJZӃ[ t ><Ԑ[(w2]+(yVe /9Eyd1i]rd# nesr9K! سX$hro#5@n+ϝӇRQ@r[Ye!AC .C/& ~ PfHȋcJENIg h.մq^rnF!ЇMj!SUkY| # r<ʷt|Hrk`# 7nU,]s!JsPCo*orOg2 bAs~ DԠLq+&rRoH!g#ny1IfC 93 !~œyuY-3z@dqh~RϾsksA+}8jS y>PS%b58_~|~Ϗ'ʓBDHةrC\<䞼" jk0S~qZ Դs)# ^ &N1Tc.)U7SZ=4eM'ϻ;^Ԕ?{9چ\|ĪuW+=_O?ic}gKtw3ϔu<,7<P57!3M9 Տ-!i*n7}+~5}c MuL܏0?OϜ͓P \Meo4'l%#Tq}"py}LLs!',yPŁ|a^ۜyKr|^l/jx~I@ujN| TX[?/ Bg&(KFϏa}ҿ䬻ޟC^I! 8JZU6M 8[ #Wx| ܺI&\5Kkr\Ս5W\ri#q=,gnMI't rm֏*" O63n QDGnU\Ԗ4Ɇ!r`F / ȩ#!w|yxQ@Nݟ r geQNfe9uB-mArWԔ r^ 0kQPJ F&F  R 8r?9& ,̷ KqHɊ qA^³+wǓgaҠ433|1K}(PNz&8#Ȯ:KCN|{L.uYb3y>WkQ|?Y}!hϾrn3q7ʠ: F|~1n6N!wv3g?IsbgfŁ\"TׅzȵpQNkҀoE>ZȧtՖ^zPl2ȕ)Z12o rm0wx{Hj6R%i 96MVЬ1{ ŝɗmڄ|L{y!rG L~ݎ ?f-R7 i84۔ngytA֒z |t*@.)_NMkӘ:@ ǰpYӑEsq|ߝɳB|:7b/ L>-zsn=qB\wuAn!yl8qmL|9QZ>:2'JҐG 2q5P;/a4[brɕ<^y]o<K'StI~DwO\0Sy|0qj*ċBI5zr y&PI}G-Fo$A!&ȃ2; ob)Re!CBGbemW+%!DJ!T+ºC[7RgEn gnȫTr I8jOśyL2aPo g4򽊷T%#{<ܮ-  ƇxC9C!/,g$!@[8s;:$4?NśQg5_Xo_#X& N jG Sّ+b\ f+bzj) T8Uh0g;=%uy oN \ܤ€i$kC>$߮ utF[9Qs<|Oa7Oy#8wJj&um8&ueCqw@ޤ. 4f2=ȨBE*I]:I]iP7KBf4 dP)giZK' | ]ل~ +I]<Kr٥V-5/~ ӫA?l& ƦKykbؤY4zvW-EhbO6 +݌;2\oAM1IORE(km V_{!hHcV.{[gf3/̺cNͩcݡ}{{vS:tD2$T{}I2AMk-sW|+;Ħ7|'j{OSs7wO]vRN1%\QiDy*jFI{Nia~7Bs?3Sv5s]-0/W=7'XG~\ߨ|)|c5f=g˂>%U7%s9sV鱽kKwv9OkL>?]+&ծ+DNY/=tlX &uܥNj6u~b|Ghϒv\t]k <jbwn-z>O/ϵs*\+x{4ɨD>_},}~^}˕ezיcEw?HW;ӎ딛N!NSL>'>&>t2^NۧS{ɻ=zO  ǒ{4P-m#6)}Ϸ^ :2·gU3gsV$ҍr=˄ $ұZqOW$3a9A ley٤AƪTOK2-+r339)i{*!+R\w Bl?>ۮT=LϷ!+"b+QG5-*`jhGEՠfzIǬ^{U( X mc}RtRtNB=s./@]^9tyrȡ C ./@]^ ]^8tyrAAAAAAWԒy J%Y퐝._?~9tiyе5Ɓ'AAAAAAAAAAAAAT߆x5IENDB`DrObeSVDr&O7QfG  StandardO7QfGxV4B1XbEditEngineItemPool 6f06!@dddxX<(@X (G@n StarBats!"-X@'!@dddX!'@X'(@ HelveticaMediumX'@X@2X;[5T Pd gray: staticStandard<( (@'    green: stackStandard<( (@'    blue: heapStandard<( (@'    cyan: GCStandard<( (@'   DrXXgg nHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL3DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool 6f0п!@,dddxX<(@LX (G@ StarBatsX!"-X@'!@̿dddXX;[ PClick to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPg yJoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~Titel oe$ kxV4B1VXEditEngineItemPool  6f0+!@cdddxX<(@X (G@ StarBats!r-X@'!@dddX'@'d X;[ PMMemory management: Data sharing Home~LT~Titel<( (@'DrObSVDr&qdkH(Home~LT~Gliederung 1KqdkH,xV4B1XHEditEngineItemPool  6ft0D@ndddY ddd YDXX'<(@XX (@( StarBats !K StarBats!"-XXG@'D@xdddY|` ddd` YXX'^ Pshallow vs deep copyHome~LT~Gliederung 1<( (@'shallow vs deep comparisonHome~LT~Gliederung 1<( (@'6no such problem with purely functional data structuresHome~LT~Gliederung 1<( (@'shallow and deep is the sameHome~LT~Gliederung 2<( (@'because use of copy on writeHome~LT~Gliederung 2<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL3DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool }6f0d!@dddxX<(@X (G@3 StarBatsX!"-X@'!@`dddXX;[ PClick to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPg  JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelM oe$ .xV4B1XEditEngineItemPool 6f0!@dddxX<(@X (G@j StarBats!r-X@'!@dddX;[ PPointers are dead! Home~LT~Titel<( (@'DrObfSVDr&q dyQ(Home~LT~Gliederung 1q dyQ xV4B1XEditEngineItemPool c6fI0@Xa@dddYdddYDdddYDXX'X@<((@2XXX (@ StarBatsX!"- StarBats!"- StarBatsX!KXXGX@'a@ldddY|dddYdddYXX'X@' @CourierX.  P 7Datatype created in PL/I to access memory a la assemblyHome~LT~Gliederung 1<( (@'Pros: liberty, powerfulHome~LT~Gliederung 1<( (@'Cons:Home~LT~Gliederung 1<( (@'unsafeHome~LT~Gliederung 3<( (@'don't get along with GCHome~LT~Gliederung 3<( (@'-char* is not a good representation of stringsHome~LT~Gliederung 3<( (@'&(see perl where substr is seldom used)Home~LT~Gliederung 4<( (@'arrays need a proper APIHome~LT~Gliederung 3<( (@'Replaced by referencesHome~LT~Gliederung 1<( (@'no arithmetic operation allowedHome~LT~Gliederung 3<( (@'only dereferencingHome~LT~Gliederung 3<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL3!DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool 6f0t!@dddxX<(@X (G@C StarBatsX!"-X@'!@pdddXX;[ PClick to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPg4JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelO oe$ 0xV4B1XEditEngineItemPool 6f0!@dddxX<(@'X (G@z StarBats!r-X@'!@dddX;[ PAdvanced Programming Home~LT~Titel<( (@'DrObSVDr&qdI(Home~LT~Gliederung 1AqdI"xV4B1XEditEngineItemPool u6f0h'@dddYX<(@X (G@1 StarBats!"-X@''@ddddY|XAa PTypingHome~LT~Gliederung 1<( (@'Functional programmingHome~LT~Gliederung 1<( (@'Programming howtoHome~LT~Gliederung 1<( (@'ModulesHome~LT~Gliederung 1<( (@' Type classesHome~LT~Gliederung 1<( (@' PolymorphismHome~LT~Gliederung 1<( (@'Classes, inheritanceHome~LT~Gliederung 1<( (@' PerformanceHome~LT~Gliederung 1<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL3#DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool 6f0!@dddxX<(@?X (G@ StarBatsX!"-X@'!@dddXX;[ PClick to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPgd  JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelE oe$ &xV4B1XEditEngineItemPool 6f0!@VdddxX<(@vX (G@ StarBats!r-X@'!@dddX;[ P Typing (1) Home~LT~Titel<( (@'DrOb7SVDr&q[d`J(Home~LT~Gliederung 1q[d`J xV4B1X!EditEngineItemPool 6fM0a@5dddY ddd YDdddYDXX'X@<((@iXXX (@6 StarBatsX!"- StarBats !K StarBats!"-XXGX@'a@dddY|` ddd` YdddYXX'X@' @CourierX'@d X{| P% .Static explicit classical typing (since Algol)Home~LT~Gliederung 1<( (@'.pros: tight checking, simpleHome~LT~Gliederung 2<( (@',cons: verbose (esp. for iteration variables)Home~LT~Gliederung 2<( (@',DynamicHome~LT~Gliederung 1<( (@'pros: Home~LT~Gliederung 2<( (@'Dflexibility, expressivity (remove/create function/method at runtime)Home~LT~Gliederung 3<( (@'Dcons:Home~LT~Gliederung 2<( (@'enearly no verification at compile-time (-Wall, use strict usually available but half-baked solutions)Home~LT~Gliederung 3<( (@''e(-/9 runtime costHome~LT~Gliederung 3<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL3%DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool 6f0!@dddxX<(@X (G@k StarBatsX!"-X@'!@dddXX;[ PClick to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPgA  JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelE oe$ &xV4B1XEditEngineItemPool 6f0!@/dddxX<(@OX (G@ StarBats!r-X@'!@dddX;[ P Typing (2) Home~LT~Titel<( (@'DrObSVDr&qd:P(Home~LT~Gliederung 1qd:P xV4B1lXEEditEngineItemPool 6fq0@Xa@.dddY ddd YDdddYDXX'X@<((@bXXX (@/ StarBats !K StarBatsX!"- StarBats!"-XXGX@'a@dddY|` ddd` YdddYXX'X@' @CourierX'@d X. 5 P" &Implicit static (invented in ML, 1977)Home~LT~Gliederung 1<( (@'&<find out variable and function types based on their use, eg:Home~LT~Gliederung 2<( (@''fact(x)= if x=0 then 1 else x*fact(x-1)Home~LT~Gliederung 3<( (@''$x compared with 0 implies x is a intHome~LT~Gliederung 3<( (@',fact can return 1 implies fact returns a intHome~LT~Gliederung 3<( (@'1This inference works nicely with complex programsHome~LT~Gliederung 3<( (@'pros: Home~LT~Gliederung 2<( (@'(as good type checking as explicit staticHome~LT~Gliederung 3<( (@'*most of the expressivity of dynamic typingHome~LT~Gliederung 3<( (@'Fcons: sometimes type error messages don't occur where you would exceptHome~LT~Gliederung 2<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL3'DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool k 6f0R !@ dddxX<(@ X (G@!  StarBatsX!"-X@'!@N dddXX;[ Pp Click to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPg:  JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelQ oe$ 2xV4B1XEditEngineItemPool 6f0!@dddxX<(@X (G@X StarBats!r-X@'!@dddX;[ PFunctional programming Home~LT~Titel<( (@'DrObSVDr&qdM(Home~LT~Gliederung 1qdM xV4B1YXEditEngineItemPool U6f0@X~@ dddY ddd YDdddYDdddYDXX'X@XY<(2@GXXXX (@Q StarBatsX!"- StarBatsX!K StarBats!"- StarBats !KXXGXX@'~@dddY|` ddd` YdddYdddYXX'X@XY'@ d X. P5 2List handling (now available in dynamic languages)Home~LT~Gliederung 1<( (@'2Partial applicationHome~LT~Gliederung 1<( (@'map (round 0.01) [ 1.333, 4 ]Home~LT~Gliederung 2<( (@')Closure (now available in many languages)Home~LT~Gliederung 1<( (@')b1 = Gtk::Button.new("One")Home~LT~Gliederung 3<( (@'b2 = Gtk::Button.new("Two")Home~LT~Gliederung 3<( (@'"b1.signal_connect(clicked => sub {Home~LT~Gliederung 3<( (@'b2.set_sensitive(0)Home~LT~Gliederung 4<( (@'})Home~LT~Gliederung 3<( (@'^Without closures, b2 should passed as a parameter (via void* ?) or via a global/class variableHome~LT~Gliederung 3<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL3)DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool 6f0!@]dddxX<(@}X (G@ StarBatsX!"-X@'!@dddXX;[ PClick to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPgYJoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelP oe$ 1xV4B1XEditEngineItemPool Q6f08 !@dddxX<(@X (G@  StarBats!r-X@'!@4 dddX;[ PV Programming howto (1) Home~LT~Titel<( (@'DrOb SVDr&7ckH( Home~LT~Gliederung 1" 7ckH xV4B1 X"EditEngineItemPool "6fN0I(g*@& Z d"|))TimesO-` ` ))TimesOK"))TimesO-))TimesOK"pp))TimesO-"  ))TimesO-" ))TimesO-"%%))TimesO-"0*0*))TimesO-ZX@/&Xa@&dddY ddd YDdddYDXX'X@<((@&XXX (@' StarBatsX!"- StarBats!"- StarBats !KTimes!?-)XXGXX@'a@=(dddY|` ddd` YdddYXX'X@$ Po( You have a task to doHome~LT~Gliederung 1g*<( (@' bottom-upHome~LT~Gliederung 2<( (@'#you know how to achieve small tasksHome~LT~Gliederung 3<( (@'Home~LT~Gliederung 3<( (@'Home~LT~Gliederung 3<( (@',you build the whole program from these partsHome~LT~Gliederung 3<( (@'Home~LT~Gliederung 1<( (@'Home~LT~Gliederung 1<( (@'"Used when specifications are foggyHome~LT~Gliederung 3<( (@'DrOb{SVDr&M{b  StandardM{bDrObSVDr&S#]) DrObGSVDr&Y#]) DrOb{SVDr&Y#[%  StandardY#[%DrOb{SVDr&['])  Standard['])DrXXDrObGSVDr&S#:V) DrOb{SVDr&)T':V)  Standard)T':V)DrOb{SVDr&S#U%  StandardS#U%DrXXDrXXDrObCSVDr&N3d1?  KDrOb{SVDr&N3d1?  StandardN3d1?DrObwSVDr&R+4v`@>A KDrObSVDr&R+4bX@> KDrOb{SVDr&R+4bX@>  StandardER4pW>DrObGSVDr&OT5V< DrOb{SVDr&T:V<  StandardT:V<DrOb{SVDr&OT5`V7  StandardOT5`V7DrXXDrXXDrObSVDr&Y4v`}= KDrOb{SVDr&Y4v`}=  StandardnXH6|^p? DrObGSVDr&[ 6<_>< DrOb{SVDr&[ 6*]8  Standard[ 6*]8DrOb{SVDr&+]-:<_><  Standard+]-:<_><DrXXDrXXDrXXDrXXDrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL3+DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool 66f07!@+7dddxX<(@K7X (G@7 StarBatsX!"-X@'!@7dddXX;[ P7Click to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPgJoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelP oe$ 1xV4B1XEditEngineItemPool ;6f0<!@b;dddxX<(@;X (G@; StarBats!r-X@'!@<dddX;[ P$<Programming howto (2) Home~LT~Titel<( (@'DrObSSVDr&qdI( Home~LT~Gliederung 1qdI xV4B1XVEditEngineItemPool =6f0G@@ >XXa@v> ddd YDdddYDdddYXX'X@<((@>XXX (@w? StarBats !K StarBats!"- StarBatsX!"-XXGX@'a@?` ddd` YdddYdddY|XX'X@''@@ StarmathMediumX'@C@Nd X8F Pq@ top-downHome~LT~Gliederung 1<( (@' you split the problem into partsHome~LT~Gliederung 3<( (@'Home~LT~Gliederung 3<( (@'Home~LT~Gliederung 3<( (@'#until those parts are simple enoughHome~LT~Gliederung 3<( (@'Home~LT~Gliederung 3<( (@'-Used when specifications are well establishedHome~LT~Gliederung 3<( (@'/A mix of bottom-up and top-down is usually usedHome~LT~Gliederung 1<( (@'/1 Importance of modularityHome~LT~Gliederung 1<( (@'!ease group-working and code reuseHome~LT~Gliederung 2<( (@'DrObSVDr&nFR[n#:DrOb{SVDr&nFR[n#  StandardnFR[n#DrOb{SVDr&JiP~"  StandardJ,O#DrOb{SVDr&QXI!  StandardPV<# DrXXDrObwSVDr&K(Y'2A2DrObSVDr&K(Q'22DrOb{SVDr&K(Q'2  StandardJ(P2DrObGSVDr&L)qO/DrOb{SVDr&`M-qO/  Standard`M-qO/DrOb{SVDr&L)N+  StandardL)N+DrXXDrXXDrObSVDr&]R(Yd12DrOb{SVDr&]R(Yd1  Standard Q/*WW3 DrObGSVDr&S)W%0DrOb{SVDr&S)U,  StandardS)U,DrOb{SVDr&U.W%0  StandardU.W%0DrXXDrXXDrXXDrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL3-DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool !M6f0N!@dMdddxX<(@MX (G@M StarBatsX!"-X@'!@NdddXX;[ P&NClick to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPg E JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelB oe$ #xV4B1XEditEngineItemPool XQ6f0?R!@QdddxX<(@QX (G@R StarBats!r-X@'!@;RdddX;[ P]RModules Home~LT~Titel<( (@'DrObSVDr&dR(Home~LT~Gliederung 1_dR@ xV4B1XGEditEngineItemPool S6fs0cV@2TXa@TdddY ddd YDdddYDXX'X@<((@TXXX (@U StarBats!"- StarBatsX!"- StarBats !KXXGX@'a@VdddY|` ddd` YdddYXX'X@''@@V StarmathMediumX'@_VX. < PV Separate namespacesHome~LT~Gliederung 1<( (@'for types, variables, functionsHome~LT~Gliederung 2<( (@'/avoid the need for prefixed names (eg: gtk_...)Home~LT~Gliederung 3<( (@'*avoid the need to prefix inside the moduleHome~LT~Gliederung 3<( (@'!Facilities to import/export namesHome~LT~Gliederung 1<( (@'&the module can choose what is exportedHome~LT~Gliederung 2<( (@'!ability to choose what to import Home~LT~Gliederung 2<( (@'*possibility to alias/rename when importingHome~LT~Gliederung 3<( (@'1 avoid name clashesHome~LT~Gliederung 1<( (@'<1 provide abstraction via information hiding (encapsulation)Home~LT~Gliederung 1<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL3/DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool ]6f0h^!@]dddxX<(@]X (G@7^ StarBatsX!"-X@'!@d^dddXX;[ P^Click to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPg  JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelQ oe$ 2xV4B1XEditEngineItemPool a6f0b!@adddxX<(@bX (G@nb StarBats!r-X@'!@bdddX;[ PbType classes (mix-ins) Home~LT~Titel<( (@'DrOb[SVDr&qdM(Home~LT~Gliederung 1qdM xV4B1XEditEngineItemPool kd6f0 g@dXa@edddY ddd YDdddYDXX'X@<((@:eXXX (@f StarBatsX!"- StarBats!"- StarBats !KXXGX@'a@tfdddY|` ddd` YdddYXX'X@''@f StarmathMediumX'@fd X'@fX@gX. <` PFg #Type class = special kind of moduleHome~LT~Gliederung 1<( (@'some functions are virtualHome~LT~Gliederung 2<( (@'7specify the type of those functions (for static typing)Home~LT~Gliederung 2<( (@'$71 ensure a common behaviourHome~LT~Gliederung 3<( (@'3write other functions using those virtual functionsHome~LT~Gliederung 2<( (@'1 inclusion polymorphismHome~LT~Gliederung 3<( (@'Example:Home~LT~Gliederung 1<( (@'class Eq(a) whereHome~LT~Gliederung 3<( (@' == :: a,a -> boolHome~LT~Gliederung 3<( (@' x!=y = ! (x==y)Home~LT~Gliederung 3<( (@'6(this type is parametric, more about it in next slide)Home~LT~Gliederung 3<( (@'6DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL31DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool n6f0qo!@ndddxX<(@nX (G@@o StarBatsX!"-X@'!@modddXX;[ PoClick to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPg ! JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelG oe$ (xV4B1XEditEngineItemPool r6f0s!@sdddxX<(@$sX (G@ws StarBats!r-X@'!@sdddX;[ Ps Polymorphism Home~LT~Titel<( (@'DrObSVDr&Kx dR(Home~LT~Gliederung 16Kx dR xV4B1XEditEngineItemPool ju6f0x@uXa@vdddY ddd YDdddYDXX'X@<((@9vXXX (@w StarBats !K StarBatsX!"- StarBats!"-XXGX@'a@swdddY|` ddd` YdddYXX'X@'8@wCourier HelveticaXX '&@wNd d XX@xX. M PAx Coercion polymorphismHome~LT~Gliederung 1<( (@')up-cast parameter (eg: int i = 1; sqr(i))Home~LT~Gliederung 2<( (@'((Overloading polymorphismHome~LT~Gliederung 1<( (@'Ssame function name with different parameter types. eg: print(int) and print(char *)Home~LT~Gliederung 2<( (@'7AESParametric polymorphismHome~LT~Gliederung 1<( (@'Parametric functionsHome~LT~Gliederung 2<( (@'*ML: sort :: (a,a->int), list(a) -> list(a)Home~LT~Gliederung 3<( (@'*C++: template Home~LT~Gliederung 3<( (@'+ vector sort(vector, int (*)(A,A))Home~LT~Gliederung 2<( (@'+Parametric type classesHome~LT~Gliederung 2<( (@'5Parametric classes (more about classes in next slide)Home~LT~Gliederung 2<( (@'55DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL33DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool 6f0!@ dddxX<(@)X (G@| StarBatsX!"-X@'!@dddXX;[ PˀClick to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPg ! JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelB oe$ #xV4B1XEditEngineItemPool 6f0!@@dddxX<(@`X (G@ StarBats!r-X@'!@dddX;[ PClasses Home~LT~Titel<( (@'DrObSVDr&qdkH(Home~LT~Gliederung 1;qdkHxV4B1XEditEngineItemPool 6f0@׆XD@#dddY ddd YDXX'<(@MXX (@݇ StarBats!"- StarBats !KXXG@'D@-dddY|` ddd` YXX'''@d StarmathMediumX'@X'@X.~8 PԈA class is a typeHome~LT~Gliederung 1<( (@')you can instanciate it, you get an objectHome~LT~Gliederung 2<( (@')it defines a data type (usually a struct)Home~LT~Gliederung 2<( (@'Cit defines a collection of functions(called methods) an object haveHome~LT~Gliederung 2<( (@'$C'1 object = first class anonymous moduleHome~LT~Gliederung 1<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL35DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool 6f0!@EdddxX<(@eX (G@ StarBatsX!"-X@'!@dddXX;[ PClick to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPg JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelF oe$ 'xV4B1XEditEngineItemPool 96f0 !@|dddxX<(@X (G@ StarBats!r-X@'!@dddX;[ P> Inheritance Home~LT~Titel<( (@'DrObSVDr&qdK(Home~LT~Gliederung 1tqdKUxV4B16XEditEngineItemPool 6fF0 @XD@cdddY ddd YDXX'<(@XX (@ StarBats !K StarBats!"-XXG@'D@mdddY|` ddd` YXX'''@ StarmathMediumX'@Ȗd X'@X'@  XX.~8 PE`importing another class (inheriting) implies subtyping (not so with mix-ins which are not types)Home~LT~Gliederung 1<( (@'##`7`Home~LT~Gliederung 1<( (@'Home~LT~Gliederung 1<( (@'5here an object Square can be used as an object FigureHome~LT~Gliederung 2<( (@'5Vwhen calling a method on a object Figure, it can in fact be a Square, a Circle or ... Home~LT~Gliederung 2<( (@'VF1 the good method to call can only be chosen at runtime (late binding)Home~LT~Gliederung 2<( (@'99==>>EEFDrOb/SVDr&%0"  Standard%0"xV4B1X@EditEngineItemPool 6fl0 !@dddxX<(@X (G@a StarBats!"-X@'!@dddX!'@X'(@ HelveticaMediumX'@X;[5 P5FigureStandard<( (@'DrOb/SVDr&4$!'(  Standard4$!'(xV4B1X@EditEngineItemPool ڞ6fl0:!@dddxX<(@=X (G@ StarBats!"-X@'!@dddX!'@X'(@ HelveticaMediumX'@6X;[5 PdSquareStandard<( (@'DrOb/SVDr&/$:(  Standard/$:(xV4B1X@EditEngineItemPool  6fl0i!@LdddxX<(@lX (G@ StarBats!"-X@'!@dddX!'@X'(@F HelveticaMediumX'@eX;[5 PCircleStandard<( (@'DrObSVDr&!!&&  Standard;&g"f"5%DrObSVDr& -:!2%  Standard/-" 2$DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL37DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool &6f0 !@idddxX<(@X (G@ܨ StarBatsX!"-X@'!@ dddXX;[ P+Click to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPgJoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr& oe$ ! Home~LT~TitelF oe$ 'xV4B1XEditEngineItemPool ]6f0D!@dddxX<(@X (G@ StarBats!r-X@'!@@dddX;[ Pb Performance Home~LT~Titel<( (@'DrObSVDr&qdL(Home~LT~Gliederung 1qdL} xV4B1VXCEditEngineItemPool 6fo0h@; X'@n dddYX<(@ X (G@  StarBats!"-X@''@ dddY|X'&@Bd  Nd XX@dX.a9 P www .bagley.org/~doug/shootoutHome~LT~Gliederung 1<( (@' C++76Home~LT~Gliederung 1<( (@'  OCaml76Home~LT~Gliederung 1<( (@'  Java69Home~LT~Gliederung 1<( (@'  CommonLisp55Home~LT~Gliederung 1<( (@'  Perl53Home~LT~Gliederung 1<( (@'  Python46Home~LT~Gliederung 1<( (@'  Ruby44Home~LT~Gliederung 1<( (@' Home~LT~Gliederung 1<( (@'5!! benchmarks are dangerous and show only some use !!Home~LT~Gliederung 1<( (@'5DrObSVDr&,_!j5 StandardA,_!j5"xV4B1 XdEditEngineItemPool 6f0w@-X!@ZdddxX<(@zX (G@Ͷ StarBats!"-X@'!@dddX!'@ X'(@T HelveticaMediumX'@sX.[{!U P& Statically typed languages are fasterStandard<( (@'&&&! Functional languages can be fastStandard<( (@'!!!i Compile-time is an important factor not shown here. It can slow down development quite a lot (think C++)Standard<( (@'iiiDrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrPguJoeMRtDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&?% CL39DrObSVDr& 27eEc#Home~LT~NotizenO 27eEc0xV4B1XEditEngineItemPool ^6f0E!@dddxX<(@X (G@ StarBatsX!"-X@'!@AdddXX;[ PcClick to add notesHome~LT~Notizen<( (@'DrXXgg rHome~LT~Gliederunglanguage-study.sddlanguage-study.sddDrXXF DrVwP SVDr SVDr:SVDr{{SVDrALayout:SVDr{{SVDr#SVDr SVDr# SVDr0 SVDr1 SVDr3 SVDr4SVDr@SVDr SVDrD SVDrP SVDrQ DrHL DrHL DrHL =~R Root Entry!r\V)䰱CompObjEOle persist elements" SfxDocumentInfo uStarBASIC BasicManager2 4SfxWindowsXMLFormat2*SfxStyleSheetsStandardjSummaryInformation( (StarDrawDocument3$s