<map version="0.9.0">
<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
<node CREATED="1350302984348" ID="Freemind_Link_1058609333" MODIFIED="1350471762058" TEXT="Principles of Programming Languages">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1350303048365" ID="_" MODIFIED="1350500872142" POSITION="right" TEXT="Object Oriented">
<node CREATED="1350308886347" ID="Freemind_Link_368362620" MODIFIED="1350308894796" TEXT="Identify &apos;data&apos; rather than &apos;functions&apos;"/>
<node CREATED="1350308910320" ID="Freemind_Link_1513122991" MODIFIED="1350308917530" TEXT="Encapsulate data in Objects"/>
<node CREATED="1350308931661" ID="Freemind_Link_1614298147" MODIFIED="1350308944752" TEXT="Objects can be categorized and reasoned over their types"/>
<node CREATED="1350308946419" ID="Freemind_Link_1328070435" MODIFIED="1350308948683" TEXT="Problems">
<node CREATED="1350308949879" ID="Freemind_Link_1883930414" MODIFIED="1350308962094" TEXT="Functions change often, data changes little"/>
<node CREATED="1350308964729" ID="Freemind_Link_687109807" MODIFIED="1350308989939" TEXT="Objects hide data from implementation"/>
</node>
<node CREATED="1350309018825" ID="Freemind_Link_506111139" MODIFIED="1350309105676" TEXT="Binding Times:Objects decides which operation applies "/>
<node CREATED="1350309209522" ID="Freemind_Link_1178561816" MODIFIED="1350309217910" TEXT="Minimal language requirements">
<node CREATED="1350309298653" ID="Freemind_Link_1882639637" MODIFIED="1350309308253" TEXT="Data encapsulation">
<node CREATED="1350309310505" ID="Freemind_Link_67999868" MODIFIED="1350309310505" TEXT=""/>
</node>
<node CREATED="1350309313995" ID="Freemind_Link_1678027371" MODIFIED="1350309316471" TEXT="Inheritance"/>
<node CREATED="1350309319189" ID="Freemind_Link_1162920274" MODIFIED="1350309324767" TEXT="Dynamic Binding"/>
</node>
<node CREATED="1350309368729" ID="Freemind_Link_78449180" MODIFIED="1350309370666" TEXT="Classes">
<node CREATED="1350309371950" ID="Freemind_Link_648265776" MODIFIED="1350309379169" TEXT="Is Type of an Object">
<node CREATED="1350309382742" ID="Freemind_Link_874425152" MODIFIED="1350309393894" TEXT="&quot;a class is the category of an object&quot;"/>
</node>
<node CREATED="1350309396727" ID="Freemind_Link_550134240" MODIFIED="1350309405542" TEXT="Internal variables are members (fields, methods)"/>
<node CREATED="1350309461719" ID="Freemind_Link_1321609232" MODIFIED="1350309467475" TEXT="Class == type ?">
<node CREATED="1350309469143" ID="Freemind_Link_1414552356" MODIFIED="1350309477019" TEXT="Not every language looks at classes as types"/>
</node>
<node CREATED="1350311992585" ID="Freemind_Link_1272773544" MODIFIED="1350311995568" TEXT="Introspection">
<node CREATED="1350312011708" ID="Freemind_Link_1041259129" MODIFIED="1350312022452" TEXT="called &apos;meta classes&apos;"/>
<node CREATED="1350312026776" ID="Freemind_Link_262800904" MODIFIED="1350312030868" TEXT="Java: Reflection"/>
<node CREATED="1350312035896" ID="Freemind_Link_252003639" MODIFIED="1350312043705" TEXT="Meta class contains information about">
<node CREATED="1350312045509" ID="Freemind_Link_373338402" MODIFIED="1350312072064" TEXT="class constructors"/>
<node CREATED="1350312058328" ID="Freemind_Link_1073579331" MODIFIED="1350312065785" TEXT="class fields"/>
</node>
</node>
</node>
<node CREATED="1350309499000" ID="Freemind_Link_1764550349" MODIFIED="1350309502073" TEXT="Polymorphism">
<node CREATED="1350309503701" ID="Freemind_Link_1257703115" MODIFIED="1350309518003" TEXT="Polymorphic data type">
<node CREATED="1350309519175" ID="Freemind_Link_403774310" MODIFIED="1350309528198" TEXT="Data type that can refer to different types at runtime"/>
<node CREATED="1350309529888" ID="Freemind_Link_1556809037" MODIFIED="1350309639353" TEXT="Provide interface to allow manipulation of multiple data types "/>
</node>
<node CREATED="1350309645231" ID="Freemind_Link_1039980997" MODIFIED="1350309649416" TEXT="Polymorphic function">
<node CREATED="1350309653189" ID="Freemind_Link_190116062" MODIFIED="1350309662539" TEXT="Can operate on different argument types"/>
</node>
</node>
<node CREATED="1350309841533" ID="Freemind_Link_458341350" MODIFIED="1350309847011" TEXT="Reference Semantics"/>
<node CREATED="1350309962610" ID="Freemind_Link_161607031" MODIFIED="1350309966342" TEXT="Object Management">
<node CREATED="1350309970909" ID="Freemind_Link_1880794837" MODIFIED="1350309986661" TEXT="&apos;new&apos; says nothing over &apos;where&apos;"/>
<node CREATED="1350310013334" ID="Freemind_Link_1708986874" MODIFIED="1350310029883" TEXT="same language privde no &apos;delete&apos;"/>
<node CREATED="1350310036952" ID="Freemind_Link_721800963" MODIFIED="1350310053111" TEXT="If most/everything is a object, the per-boject memory overhead will kill us">
<node CREATED="1350310055380" ID="Freemind_Link_733799986" MODIFIED="1350310062629" TEXT="Java JDK: 16 bytes per boject"/>
<node CREATED="1350310065555" ID="Freemind_Link_1166640713" MODIFIED="1350310076023" TEXT="C++: 8 bytes (64bit)"/>
</node>
</node>
<node CREATED="1350310559330" ID="Freemind_Link_607002903" MODIFIED="1350310578343" TEXT="Inheritance">
<node CREATED="1350310580099" ID="Freemind_Link_52897099" MODIFIED="1350310585339" TEXT="Linearization"/>
<node CREATED="1350310587189" ID="Freemind_Link_1385192281" MODIFIED="1350310588706" TEXT="Mixins"/>
<node CREATED="1350310823369" ID="Freemind_Link_1565019598" MODIFIED="1350310829559" TEXT="Inheritance as a Contract">
<node CREATED="1350310839747" ID="Freemind_Link_315274199" MODIFIED="1350310850067" TEXT="Trait: A partially implemented contract"/>
</node>
</node>
<node CREATED="1350311071149" ID="Freemind_Link_1301601529" MODIFIED="1350311775406" TEXT="Generics/Templates">
<node CREATED="1350311095278" FOLDED="true" ID="Freemind_Link_961926720" MODIFIED="1350311809756" TEXT="generics instantiation">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1350311101762" ID="Freemind_Link_970420818" MODIFIED="1350311119335" TEXT="type replacement: replace all instances of the type-argument by some concrete type"/>
<node CREATED="1350311122699" ID="Freemind_Link_439424968" MODIFIED="1350311139717" TEXT="type erasure: replace all instances of the type-argument by a single base-type for all possible actual type-arguments"/>
</node>
</node>
</node>
<node CREATED="1350303078025" ID="Freemind_Link_58243554" MODIFIED="1350500865236" POSITION="left" TEXT="Imperativ">
<node CREATED="1350303546730" ID="Freemind_Link_131310293" MODIFIED="1350303563835" TEXT="What is it?">
<node CREATED="1350303563773" ID="Freemind_Link_323664636" MODIFIED="1350303580833" TEXT="Fully specified control flow"/>
<node CREATED="1350303582571" ID="Freemind_Link_832570258" MODIFIED="1350303590200" TEXT="Fully specified data management"/>
<node CREATED="1350303592508" ID="Freemind_Link_1692046578" MODIFIED="1350303602977" TEXT="Explicit programming">
<node CREATED="1350303605319" ID="Freemind_Link_126093985" MODIFIED="1350303612652" TEXT="do this, then that"/>
<node CREATED="1350303614266" ID="Freemind_Link_292551924" MODIFIED="1350303628497" TEXT="data x added to data y"/>
</node>
</node>
<node CREATED="1350303630372" FOLDED="true" ID="Freemind_Link_1385867078" MODIFIED="1350303634213" TEXT="Pro/Con">
<node CREATED="1350303636745" ID="Freemind_Link_1942016335" MODIFIED="1350303638003" TEXT="Pro">
<node CREATED="1350303640199" ID="Freemind_Link_1985701408" MODIFIED="1350303644554" TEXT="High performance"/>
<node CREATED="1350303647048" ID="Freemind_Link_643603820" MODIFIED="1350303653050" TEXT="Easy to understand programs"/>
</node>
<node CREATED="1350303655499" ID="Freemind_Link_388669067" MODIFIED="1350303656758" TEXT="Cons">
<node CREATED="1350303657946" ID="Freemind_Link_1571933546" MODIFIED="1350303663576" TEXT="Very machine oriented">
<node CREATED="1350303664948" ID="Freemind_Link_455080934" MODIFIED="1350303674122" TEXT="Where/when to allocate data"/>
<node CREATED="1350303675736" ID="Freemind_Link_1673114436" MODIFIED="1350303683925" TEXT="Exactly which steps follows which"/>
<node CREATED="1350303685123" ID="Freemind_Link_417299183" MODIFIED="1350303693488" TEXT="Typical overspecified"/>
</node>
</node>
</node>
<node CREATED="1350303707248" ID="Freemind_Link_1336959933" MODIFIED="1350303721283" TEXT="Data">
<node CREATED="1350303721223" ID="Freemind_Link_373084285" MODIFIED="1350303727614" TEXT="is typed"/>
<node CREATED="1350303733332" ID="Freemind_Link_1560631237" MODIFIED="1350303734827" TEXT="named"/>
<node CREATED="1350303736791" ID="Freemind_Link_1781670182" MODIFIED="1350303768723" TEXT="somethimes anonymous (e.g. 4*5)"/>
<node CREATED="1350303793391" ID="Freemind_Link_1773246142" MODIFIED="1350303795827" TEXT="declaration">
<node CREATED="1350303812166" ID="Freemind_Link_970686541" MODIFIED="1350303822981" TEXT="names a address ranges"/>
<node CREATED="1350303825065" ID="Freemind_Link_729538222" MODIFIED="1350303837970" TEXT="imposes structure on address range"/>
</node>
<node CREATED="1350303860527" ID="Freemind_Link_20246774" MODIFIED="1350303868036" TEXT="Variable is combination of name, type and value"/>
</node>
<node CREATED="1350303840491" ID="Freemind_Link_509780303" MODIFIED="1350304044814" TEXT="Overlading">
<node CREATED="1350304049039" ID="Freemind_Link_1863616182" MODIFIED="1350304058329" TEXT="Binds name to multiple objects">
<node CREATED="1350304076474" ID="Freemind_Link_864324801" MODIFIED="1350304082479" TEXT="Opposite to renaming"/>
</node>
<node CREATED="1350304059885" ID="Freemind_Link_68699356" MODIFIED="1350304071652" TEXT="Context in which name is usded tells which actual object to use"/>
<node CREATED="1350304089237" ID="Freemind_Link_1838916672" MODIFIED="1350304101024" TEXT="Math operators usually overloaded"/>
</node>
<node CREATED="1350304241219" ID="Freemind_Link_1642373013" MODIFIED="1350304242617" TEXT="Types">
<node CREATED="1350304243485" ID="Freemind_Link_140012378" MODIFIED="1350304248375" TEXT="Enumeration"/>
<node CREATED="1350304250765" ID="Freemind_Link_684432801" MODIFIED="1350304256298" TEXT="Compound"/>
<node CREATED="1350304747146" ID="Freemind_Link_1460008254" MODIFIED="1350304751058" TEXT="Data Structures">
<node CREATED="1350304711693" ID="Freemind_Link_894826097" MODIFIED="1350304718412" TEXT="Sequence / Lists">
<node CREATED="1350304719463" ID="Freemind_Link_152867472" MODIFIED="1350304737894" TEXT="Series of unkown number of elements, all of the same tpe"/>
</node>
<node CREATED="1350304703336" ID="Freemind_Link_917976554" MODIFIED="1350304705598" TEXT="Array"/>
<node CREATED="1350304761204" ID="Freemind_Link_690778015" MODIFIED="1350304765304" TEXT="Sets and Bags"/>
<node CREATED="1350304785102" ID="Freemind_Link_1501270501" MODIFIED="1350304788989" TEXT="Records and Pointers"/>
<node CREATED="1350305038044" ID="Freemind_Link_1731763710" MODIFIED="1350305042205" TEXT="Unions"/>
</node>
<node CREATED="1350305788256" ID="Freemind_Link_121080774" MODIFIED="1350305792473" TEXT="Type Orthogonality">
<node CREATED="1350305797848" ID="Freemind_Link_268462189" MODIFIED="1350311860159" TEXT="todo">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1350305937596" ID="Freemind_Link_930854999" MODIFIED="1350305941532" TEXT="Type Equivalence"/>
<node CREATED="1350305943248" ID="Freemind_Link_403391805" MODIFIED="1350305955934" TEXT="Coercions / Contexts / Casts">
<node CREATED="1350305962469" ID="Freemind_Link_12984824" MODIFIED="1350305969688" TEXT="Coercions are implicit type conversions">
<node CREATED="1350305983323" ID="Freemind_Link_234746965" MODIFIED="1350305997648" TEXT="C/C++ has coercions, ADA not"/>
<node CREATED="1350305998587" ID="Freemind_Link_368791875" MODIFIED="1350306004800" TEXT="Good/Bad?"/>
</node>
<node CREATED="1350306035475" ID="Freemind_Link_1885065001" MODIFIED="1350306048118" TEXT="Conversions are function call that do the conversoins">
<node CREATED="1350306049539" ID="Freemind_Link_739964621" MODIFIED="1350306067219" TEXT="(ADA) A: Integer := Integer(3.14)"/>
</node>
</node>
<node CREATED="1350307955440" ID="Freemind_Link_1468585404" MODIFIED="1350307962676" TEXT="Abstract Data Types (ADT)">
<node CREATED="1350307973326" ID="Freemind_Link_582361098" MODIFIED="1350307986038" TEXT="A named data-type defined solely by the operations on/for it"/>
</node>
<node CREATED="1350308035300" ID="Freemind_Link_392434926" MODIFIED="1350308036780" TEXT="Generics"/>
<node CREATED="1350308404910" ID="Freemind_Link_1830812507" MODIFIED="1350308409497" TEXT="Typing">
<node CREATED="1350308410653" ID="Freemind_Link_151877629" MODIFIED="1350308413231" TEXT="dynamic">
<node CREATED="1350308421339" ID="Freemind_Link_1927296583" MODIFIED="1350308425562" TEXT="types are inferred"/>
</node>
<node CREATED="1350308414889" ID="Freemind_Link_468659800" MODIFIED="1350308416247" TEXT="static"/>
</node>
</node>
<node CREATED="1350306166675" ID="Freemind_Link_940203045" MODIFIED="1350306417280" TEXT="Assignments: Lvalue = Rvalue">
<node CREATED="1350306186980" ID="Freemind_Link_509677117" MODIFIED="1350306198450" TEXT="Lvalue indicates memory address"/>
<node CREATED="1350306232787" ID="Freemind_Link_408975271" MODIFIED="1350306250676" TEXT="Completely evaluate the RHS (right-hand-side)?"/>
<node CREATED="1350306201677" ID="Freemind_Link_686143183" MODIFIED="1350306212438" TEXT="Rvalue delivers a vlaue and is in form of an expression"/>
</node>
<node CREATED="1350306546310" ID="Freemind_Link_1778858072" MODIFIED="1350306550913" TEXT="Flow of Control">
<node CREATED="1350306556903" ID="Freemind_Link_1657679504" MODIFIED="1350306669783" TEXT="if then else"/>
<node CREATED="1350306672420" ID="Freemind_Link_354343830" MODIFIED="1350306679608" TEXT="switch / case"/>
<node CREATED="1350306777563" ID="Freemind_Link_1996731877" MODIFIED="1350306782408" TEXT="Repetition">
<node CREATED="1350306785157" ID="Freemind_Link_1442508774" MODIFIED="1350306785904" TEXT="for"/>
<node CREATED="1350306788981" ID="Freemind_Link_1311536154" MODIFIED="1350306789932" TEXT="while"/>
</node>
<node CREATED="1350306843340" ID="Freemind_Link_1432216745" MODIFIED="1350306846814" TEXT="Signals and Exceptions"/>
</node>
<node CREATED="1350306723075" ID="Freemind_Link_1168315415" MODIFIED="1350306730908" TEXT="Procedures and Functions">
<node CREATED="1350306732400" ID="Freemind_Link_1392530297" MODIFIED="1350306741627" TEXT="Procedures have no return values"/>
<node CREATED="1350306745320" ID="Freemind_Link_664383960" MODIFIED="1350306749618" TEXT="Functions have return values"/>
</node>
<node CREATED="1350306889384" ID="Freemind_Link_1583707286" MODIFIED="1350306890805" TEXT="Scope">
<node CREATED="1350306891801" ID="Freemind_Link_371279654" MODIFIED="1350306894725" TEXT="Global"/>
<node CREATED="1350306896792" ID="Freemind_Link_662975287" MODIFIED="1350306900164" TEXT="Local"/>
<node CREATED="1350306901727" ID="Freemind_Link_1858621859" MODIFIED="1350306904282" TEXT="Persistent">
<node CREATED="1350306905502" ID="Freemind_Link_711571137" MODIFIED="1350306918820" TEXT="All global data in &apos;ABC&apos; is persistent"/>
<node CREATED="1350306919910" ID="Freemind_Link_1029046679" MODIFIED="1350306926917" TEXT="Survives program exits"/>
</node>
<node CREATED="1350307001712" ID="Freemind_Link_1560082805" MODIFIED="1350307003043" TEXT="binding">
<node CREATED="1350307009570" ID="Freemind_Link_1984642158" MODIFIED="1350307019377" TEXT="is the process of attaching a use-name to a declaration"/>
<node CREATED="1350307026007" ID="Freemind_Link_869706532" MODIFIED="1350307027068" TEXT="static">
<node CREATED="1350307035621" ID="Freemind_Link_586372039" MODIFIED="1350307037239" TEXT="compile-time"/>
<node CREATED="1350307044944" ID="Freemind_Link_1380957505" MODIFIED="1350307046865" TEXT="C, ADA"/>
</node>
<node CREATED="1350307028302" ID="Freemind_Link_1970302896" MODIFIED="1350307029833" TEXT="dynamic">
<node CREATED="1350307049092" ID="Freemind_Link_1982550688" MODIFIED="1350307054392" TEXT="run-time"/>
<node CREATED="1350307055618" ID="Freemind_Link_102769494" MODIFIED="1350307063180" TEXT="Python, Perl, shell-scripts"/>
</node>
</node>
<node CREATED="1350307175427" ID="Freemind_Link_151808610" MODIFIED="1350307182075" TEXT="Scoping problems">
<node CREATED="1350307183205" ID="Freemind_Link_523134043" MODIFIED="1350307195488" TEXT="declaration-before-use"/>
<node CREATED="1350307196642" ID="Freemind_Link_1296774402" MODIFIED="1350307202037" TEXT="forward-declarations"/>
</node>
</node>
<node CREATED="1350307378613" ID="Freemind_Link_680577359" MODIFIED="1350307384515" TEXT="Parameter Passing mechanisms">
<node CREATED="1350307386215" ID="Freemind_Link_486225923" MODIFIED="1350307390364" TEXT="Pass by value"/>
<node CREATED="1350307397887" ID="Freemind_Link_319800558" MODIFIED="1350307400878" TEXT="Pass by reference"/>
<node CREATED="1350307402392" ID="Freemind_Link_1188679668" MODIFIED="1350307415271" TEXT="Pass by result"/>
</node>
<node CREATED="1350307636358" ID="Freemind_Link_229825451" MODIFIED="1350307640389" TEXT="Modules and Packages">
<node CREATED="1350307878647" ID="Freemind_Link_1227084339" MODIFIED="1350307886912" TEXT="Group of related types, variables, routines, etc."/>
</node>
<node CREATED="1350307969731" ID="Freemind_Link_1246352077" MODIFIED="1350308065455" TEXT="Program Composition"/>
</node>
<node CREATED="1350303101856" FOLDED="true" ID="Freemind_Link_1670192566" MODIFIED="1350501576195" POSITION="right" TEXT="Functional">
<node CREATED="1350303111763" ID="Freemind_Link_1068949054" MODIFIED="1350398471603" TEXT="Evaluate Expressions and functions">
<node CREATED="1350398472895" ID="Freemind_Link_557768337" MODIFIED="1350398478061" TEXT="Close to the math notation"/>
<node CREATED="1350398482089" ID="Freemind_Link_680834584" MODIFIED="1350398488002" TEXT="All is function, function is all"/>
<node CREATED="1350398492382" ID="Freemind_Link_846434632" MODIFIED="1350398499967" TEXT="High level; No low level details"/>
<node CREATED="1350398535111" ID="Freemind_Link_1902455933" MODIFIED="1350398542923" TEXT="Compute result based on function arguments only">
<node CREATED="1350398549040" ID="Freemind_Link_1392989721" MODIFIED="1350398553815" TEXT="No Side Effects"/>
<node CREATED="1350398555386" ID="Freemind_Link_1872993862" MODIFIED="1350398600548" TEXT="When/how/much a function is called is not importatn&quot;">
<node CREATED="1350398600523" ID="Freemind_Link_1116394590" MODIFIED="1350398613687" TEXT="Referential Transparency"/>
</node>
<node CREATED="1350398615498" ID="Freemind_Link_969376462" MODIFIED="1350398634849" TEXT="f(x) + f(x) = 2 * f(x)"/>
</node>
</node>
<node CREATED="1350399847380" ID="ID_90756455" MODIFIED="1350400191961" TEXT="Lambda Calculus">
<node CREATED="1350400110293" ID="ID_126683367" MODIFIED="1350400132693" TEXT="Macro-like function evalution: Alpha rename = rename unbound variables"/>
<node CREATED="1350400134838" ID="ID_1519800248" MODIFIED="1350400177225" TEXT="Functions may not have side-effects: \x .x+2"/>
<node CREATED="1350400153746" ID="ID_1810103974" MODIFIED="1350400188577" TEXT="Functions can have arguments (\x.x+2) 4"/>
<node CREATED="1350400192839" ID="ID_1995994540" MODIFIED="1350400233663" TEXT="Functions can be passed to other functions: (\x.x+2) (\y.y*y) 4"/>
<node CREATED="1350400234987" ID="ID_1523042649" MODIFIED="1350400282852" TEXT="Functions may have multiple parameters: (\x y.x*y+2)(4+3) == (\y.(4+3)*y+2)"/>
</node>
<node CREATED="1350400319758" ID="ID_198137845" MODIFIED="1350400325163" TEXT="No Global Variables">
<node CREATED="1350400325165" ID="ID_1980236709" MODIFIED="1350400332122" TEXT="Can use arguments to maintain state"/>
<node CREATED="1350400334252" ID="ID_7236198" MODIFIED="1350400349207" TEXT="Read-Only globals still allowed: In form of constant function"/>
</node>
<node CREATED="1350400376318" ID="ID_10966473" MODIFIED="1350400388033" TEXT="Type Inference"/>
<node CREATED="1350400389508" ID="ID_87144725" MODIFIED="1350400756891" TEXT="Lists">
<node CREATED="1350400393920" ID="ID_545494516" MODIFIED="1350400402679" TEXT="Most important data-structure in functional languages">
<node CREATED="1350400407374" ID="ID_1165634659" MODIFIED="1350400415141" TEXT="recursively defined"/>
<node CREATED="1350400416635" ID="ID_1361886746" MODIFIED="1350400420251" TEXT="iterable"/>
</node>
<node CREATED="1350400427929" ID="ID_1897119982" MODIFIED="1350400440612" TEXT="contains zero, one, many items of the *same* type"/>
<node CREATED="1350400467670" ID="ID_1275578885" MODIFIED="1350400473103" TEXT="List comprehensions">
<node CREATED="1350400474454" ID="ID_758689957" MODIFIED="1350400515276" TEXT="Haskell: [i | i &lt;- [1..10], ((i `mod` 2) == 1)"/>
<node CREATED="1350400517480" ID="ID_1863905269" MODIFIED="1350400542290" TEXT="Haskell: [0,5..20] {-0,5,10,15,20 -}"/>
</node>
<node CREATED="1350400560133" ID="ID_1029334300" MODIFIED="1350400562252" TEXT="Operators">
<node CREATED="1350400563111" ID="ID_1050887935" MODIFIED="1350400564032" TEXT="head"/>
<node CREATED="1350400565402" ID="ID_374626407" MODIFIED="1350400566344" TEXT="tail"/>
<node CREATED="1350400567485" ID="ID_1584496777" MODIFIED="1350400568641" TEXT="cons"/>
</node>
<node CREATED="1350400806016" ID="ID_524087668" MODIFIED="1350400812185" TEXT="Folding">
<node CREATED="1350400815785" ID="ID_1795562343" MODIFIED="1350400821434" TEXT="foldr, foldl"/>
<node CREATED="1350400823097" ID="ID_792262235" MODIFIED="1350400828073" TEXT="Performs list-reduction"/>
</node>
</node>
<node CREATED="1350400615173" ID="ID_529530284" MODIFIED="1350490104464" TEXT="Polymorphic functions">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1350400626251" ID="ID_1007987801" MODIFIED="1350400649415" TEXT="Function that accepts different actual argument types"/>
<node CREATED="1350400657351" ID="ID_100587738" MODIFIED="1350400676220" TEXT="Not the same os overloaded function that has N different instances for every of N different possible actual argument types"/>
</node>
<node CREATED="1350400716853" ID="ID_1024609131" MODIFIED="1350400721039" TEXT="High Order Functions">
<node CREATED="1350400722006" ID="ID_1810791436" MODIFIED="1350400739661" TEXT="In functional languages, functions can be passed around"/>
</node>
<node CREATED="1350400854479" ID="ID_630969428" MODIFIED="1350400911678" TEXT="Currying: Call a function with only some of its parameters">
<node CREATED="1350400862493" ID="ID_1921473132" MODIFIED="1350400906852" TEXT="Delivers partial function whre the left-over parameters still need to be passed"/>
</node>
<node CREATED="1350400933567" ID="ID_631033870" MODIFIED="1350400951310" TEXT="Lazy Evaluation">
<node CREATED="1350400978959" ID="ID_1166412112" MODIFIED="1350400983731" TEXT="Lazy vs Eager">
<node CREATED="1350400985220" ID="ID_378295244" MODIFIED="1350401063891" TEXT="Eager: Applicative order reduction">
<node CREATED="1350401065997" ID="ID_1037117733" MODIFIED="1350401076112" TEXT="Evaluate inner expresions first, move outward"/>
</node>
<node CREATED="1350401078511" ID="ID_1429133201" MODIFIED="1350401091129" TEXT="Lazy: Normal order reduction">
<node CREATED="1350401091130" ID="ID_1610819055" MODIFIED="1350401113419" TEXT="Evaluate outer expressions first, inner ones *only* when needed"/>
</node>
</node>
<node CREATED="1350401154115" ID="ID_114781399" MODIFIED="1350401162883" TEXT="Allows us to manipulate infinite sized structures"/>
<node CREATED="1350401194422" ID="ID_215070911" MODIFIED="1350401238261" TEXT="Lazy-evaluation based I/O with I/O list">
<node CREATED="1350401203735" ID="ID_337083477" MODIFIED="1350401215139" TEXT="I/O is thus a request/resonse &apos;stream&apos;"/>
<node CREATED="1350401216632" ID="ID_512991499" MODIFIED="1350401264815" TEXT="The I/O list has infinite length and grows with time"/>
</node>
</node>
<node CREATED="1350401286486" ID="ID_1926978423" MODIFIED="1350401290755" TEXT="Rebinding unbound variables">
<node CREATED="1350401293121" ID="ID_127715102" MODIFIED="1350401302606" TEXT="variables are later specified"/>
<node CREATED="1350401305236" ID="ID_1086864951" MODIFIED="1350401309595" TEXT="Haskell: &apos;where&apos;"/>
</node>
<node CREATED="1350401330494" ID="ID_689373276" MODIFIED="1350401334181" TEXT="Pattern Matching"/>
<node CREATED="1350401376076" ID="ID_1823176769" MODIFIED="1350489345969" TEXT="Monads">
<node CREATED="1350489205892" ID="ID_380887225" MODIFIED="1350489221080" TEXT="functions return 2 typed values instead 1">
<node CREATED="1350489221860" ID="ID_123862104" MODIFIED="1350489227864" TEXT="real user data"/>
<node CREATED="1350489229236" ID="ID_1326826958" MODIFIED="1350489231992" TEXT="meta data"/>
</node>
<node CREATED="1350489369604" ID="ID_1193617373" MODIFIED="1350489431531" TEXT="Haskell: ">
<node CREATED="1350489432676" ID="ID_1695705144" MODIFIED="1350489433735" TEXT="monad type &apos;M t&apos;"/>
<node CREATED="1350489434644" ID="ID_747116604" MODIFIED="1350489476327" TEXT="given value t and Monad M &#x2192; Monad function &apos;t -&gt; M t&apos; (unit function)"/>
<node CREATED="1350489483668" ID="ID_1739331689" MODIFIED="1350489530055" TEXT="Operation (M t) -&gt; (t -&gt; M u) -&gt; M u    infix operator &gt;&gt;="/>
<node CREATED="1350489541156" ID="ID_1895650387" MODIFIED="1350489550746" TEXT="do notation"/>
</node>
</node>
<node CREATED="1350489779812" ID="ID_1690306046" MODIFIED="1350489788439" TEXT="Languages mentioned: ">
<node CREATED="1350489789044" ID="ID_1799506143" MODIFIED="1350489791048" TEXT="Haskell"/>
<node CREATED="1350489792115" ID="ID_942358992" MODIFIED="1350489819141" TEXT="(common) Lisp"/>
<node CREATED="1350489820035" ID="ID_1475540950" MODIFIED="1350489859576" TEXT="OCaML (F# from MS for DotNet)"/>
</node>
</node>
<node CREATED="1350303115635" ID="ID_850271794" MODIFIED="1350500836449" POSITION="left" TEXT="Parallel/Distributed">
<node CREATED="1350490608563" ID="ID_842835823" MODIFIED="1350491091938" TEXT="Motivation">
<node CREATED="1350491095027" ID="ID_1679826018" MODIFIED="1350491146847" TEXT="easier / more efficient implementation of some problems"/>
<node CREATED="1350491155443" ID="ID_1337191798" MODIFIED="1350491209170" TEXT="some simulations require independent workers"/>
</node>
<node CREATED="1350491519731" ID="ID_175295962" MODIFIED="1350491528834" TEXT="characteristics">
<node CREATED="1350491558019" ID="ID_781322616" MODIFIED="1350491560546" TEXT="virtual cpus"/>
<node CREATED="1350491530387" ID="ID_1698070056" MODIFIED="1350491555938" TEXT="shared memory / distributed memory"/>
</node>
<node CREATED="1350491572755" ID="ID_515096966" MODIFIED="1350491578788" TEXT="problems">
<node CREATED="1350491579699" ID="ID_1749894815" MODIFIED="1350491585252" TEXT="deadlock"/>
<node CREATED="1350491586547" ID="ID_1100985065" MODIFIED="1350491590020" TEXT="livelock"/>
<node CREATED="1350491591971" ID="ID_1906106865" MODIFIED="1350491631012" TEXT="loadbalancing"/>
<node CREATED="1350491631747" ID="ID_533166595" MODIFIED="1350491642020" TEXT="data-race">
<node CREATED="1350491643763" ID="ID_1326252715" MODIFIED="1350491678180" TEXT="inconsistent states"/>
<node CREATED="1350500256705" ID="ID_1839315005" MODIFIED="1350500274950" TEXT="really hard to find"/>
</node>
</node>
<node CREATED="1350492075987" ID="ID_1276060329" MODIFIED="1350492079076" TEXT="co-routines">
<node CREATED="1350499045266" ID="ID_495588615" MODIFIED="1350499049013" TEXT="shared memory"/>
<node CREATED="1350499050913" ID="ID_578821012" MODIFIED="1350499070126" TEXT="control-flow ping-pong"/>
</node>
<node CREATED="1350492080323" ID="ID_742275636" MODIFIED="1350492465957" TEXT="parallel statements">
<node CREATED="1350492467395" ID="ID_465369584" MODIFIED="1350492478787" TEXT="on top of functional / imperative lang."/>
<node CREATED="1350492137011" ID="ID_155579363" MODIFIED="1350493290099" TEXT="parfor / par_begin + par_end"/>
<node CREATED="1350492692083" ID="ID_1316778636" MODIFIED="1350492717571" TEXT="solves just the problem of allocating virtual processors"/>
<node CREATED="1350492719331" ID="ID_1040992192" MODIFIED="1350492759779" TEXT="doesn&apos;t help with structure parallelism"/>
<node CREATED="1350492760835" ID="ID_663127561" MODIFIED="1350492775075" TEXT="data-races still possible"/>
</node>
<node CREATED="1350493868499" ID="ID_1912895017" MODIFIED="1350493873955" TEXT="processes">
<node CREATED="1350493879523" ID="ID_660913500" MODIFIED="1350493882915" TEXT="child / parent"/>
<node CREATED="1350493901041" ID="ID_276684316" MODIFIED="1350493904322" TEXT="fork / join"/>
<node CREATED="1350494763491" ID="ID_268711761" MODIFIED="1350494769859" TEXT="&apos;shared&apos; variables">
<node CREATED="1350494799619" ID="ID_1602019545" MODIFIED="1350494844659" TEXT="multi processor: in shared memory"/>
<node CREATED="1350494846626" ID="ID_1899231658" MODIFIED="1350494857922" TEXT="distributed: messages for reads/writes"/>
</node>
</node>
<node CREATED="1350495163633" ID="ID_1050382378" MODIFIED="1350495167359" TEXT="producer / consumer"/>
<node CREATED="1350495228659" ID="ID_1453427167" MODIFIED="1350495238770" TEXT="synchronization">
<node CREATED="1350495194705" ID="ID_1428307023" MODIFIED="1350495214579" TEXT="no language statement is atomic"/>
<node CREATED="1350495248899" ID="ID_1695160823" MODIFIED="1350495376787" TEXT="mutex">
<node CREATED="1350495383299" ID="ID_664638908" MODIFIED="1350495418019" TEXT="lock / unlock"/>
<node CREATED="1350495419011" ID="ID_137793697" MODIFIED="1350495427615" TEXT="semaphore"/>
<node CREATED="1350495728179" ID="ID_292516906" MODIFIED="1350495747380" TEXT="problem">
<node CREATED="1350495748034" ID="ID_889237611" MODIFIED="1350495748979" TEXT="locking granularity"/>
<node CREATED="1350495769490" ID="ID_1803436337" MODIFIED="1350495782179" TEXT="cost of lock / unlock non-trivial"/>
</node>
<node CREATED="1350496051090" ID="ID_655966996" MODIFIED="1350496059923" TEXT="locking strategy">
<node CREATED="1350496061042" ID="ID_1485490104" MODIFIED="1350496103124" TEXT="reads safe / writes require locking? &#x2192; Copy-on-write"/>
<node CREATED="1350496108818" ID="ID_443616669" MODIFIED="1350496117107" TEXT="optimistic vs pessimistic"/>
</node>
</node>
<node CREATED="1350495378659" ID="ID_754838976" MODIFIED="1350495382099" TEXT="condition synchronization"/>
<node CREATED="1350496379874" ID="ID_323036273" MODIFIED="1350496768638" TEXT="monitor">
<node CREATED="1350496540770" ID="ID_1991624759" MODIFIED="1350496549872" TEXT="special abstract-data-type"/>
<node CREATED="1350496554226" ID="ID_994288386" MODIFIED="1350496681508" TEXT="data access just over operators (mutual exclusive)"/>
<node CREATED="1350496769762" ID="ID_1798945281" MODIFIED="1350496776340" TEXT="condition variables">
<node CREATED="1350496777682" ID="ID_313074513" MODIFIED="1350496799972" TEXT="wait blocks until signal &#x2192; wakeup 1 waiter"/>
</node>
</node>
</node>
<node CREATED="1350497066418" ID="ID_662024374" MODIFIED="1350497102435" TEXT="message passing">
<node CREATED="1350497102930" ID="ID_1537180747" MODIFIED="1350497143956" TEXT="distributed computers communicate over explicit messages over a network"/>
<node CREATED="1350497368642" ID="ID_1596100591" MODIFIED="1350497381908" TEXT="=distributed assignment statement"/>
<node CREATED="1350497540178" ID="ID_536570432" MODIFIED="1350497551172" TEXT="language level">
<node CREATED="1350497552130" ID="ID_731623342" MODIFIED="1350497556723" TEXT="messages are typed"/>
<node CREATED="1350497557570" ID="ID_354799701" MODIFIED="1350497571531" TEXT="send and receive are blocking"/>
</node>
</node>
<node CREATED="1350497660754" ID="ID_1810295547" MODIFIED="1350497674047" TEXT=" naming sender / receiver">
<node CREATED="1350497678210" ID="ID_1583454071" MODIFIED="1350497680724" TEXT="by process name"/>
<node CREATED="1350497681426" ID="ID_1388502416" MODIFIED="1350497687461" TEXT="by I/O object"/>
</node>
<node CREATED="1350497738242" ID="ID_746477719" MODIFIED="1350497755965" TEXT="sync vs async">
<node CREATED="1350497756946" ID="ID_29682344" MODIFIED="1350497825717" TEXT="sync-send-recv">
<node CREATED="1350497827698" ID="ID_1677461279" MODIFIED="1350497855407" TEXT="wait for msg recv (=delay=slow)"/>
<node CREATED="1350497865362" ID="ID_1421855516" MODIFIED="1350497874101" TEXT="simple"/>
<node CREATED="1350497885330" ID="ID_1868099130" MODIFIED="1350497905095" TEXT="wait for fixed set / singleton msg"/>
</node>
<node CREATED="1350497911410" ID="ID_1172394967" MODIFIED="1350497914357" TEXT="async">
<node CREATED="1350497915026" ID="ID_1013557907" MODIFIED="1350497941061" TEXT="send immediately &#x2192; continue with next statement"/>
<node CREATED="1350497954370" ID="ID_882836986" MODIFIED="1350497972309" TEXT="recv: test if msg pending else error msg"/>
</node>
<node CREATED="1350498254369" ID="ID_174286048" MODIFIED="1350498265279" TEXT="most common: explicit receipt">
<node CREATED="1350498278450" ID="ID_1569056878" MODIFIED="1350498306375" TEXT="alternative: create subprocess for each arriving msg within the receiver"/>
</node>
</node>
<node CREATED="1350498540017" ID="ID_57676624" MODIFIED="1350498551839" TEXT="one-way vs two-way">
<node CREATED="1350499242993" ID="ID_1259596985" MODIFIED="1350499259557" TEXT="one-way: either input or output">
<node CREATED="1350499276562" ID="ID_1750413478" MODIFIED="1350499279134" TEXT="occam"/>
</node>
<node CREATED="1350499284049" ID="ID_1838923945" MODIFIED="1350499305477" TEXT="two-way: call and get return value">
<node CREATED="1350499086818" ID="ID_1754201037" MODIFIED="1350499088805" TEXT="RPC">
<node CREATED="1350498926466" ID="ID_841472913" MODIFIED="1350499111061" TEXT="used by Java RPC, corba + others"/>
<node CREATED="1350499637570" ID="ID_967308143" MODIFIED="1350499657205" TEXT="wait for return value"/>
<node CREATED="1350499658065" ID="ID_1344672070" MODIFIED="1350499694642" TEXT="looks like a lokal procedure call (remote references)"/>
<node CREATED="1350499716433" ID="ID_933330509" MODIFIED="1350499739636" TEXT="marshalling &amp; unmarshalling of parameters"/>
</node>
<node CREATED="1350498382177" ID="ID_1301210033" MODIFIED="1350499116543" TEXT="rendezvous">
<node CREATED="1350498910385" ID="ID_1437839632" MODIFIED="1350499193263" TEXT="used by Ada"/>
<node CREATED="1350499344385" ID="ID_1083256059" MODIFIED="1350499357855" TEXT="uses mailbox principle"/>
</node>
</node>
</node>
<node CREATED="1350500016210" ID="ID_461302146" MODIFIED="1350500020757" TEXT="linda tupel space">
<node CREATED="1350500084306" ID="ID_1917181192" MODIFIED="1350500095573" TEXT="distributed database of tuples"/>
<node CREATED="1350500110945" ID="ID_1440094190" MODIFIED="1350500124309" TEXT="in(tuple), out(tuple), read(tuple)"/>
<node CREATED="1350500178753" ID="ID_1519569364" MODIFIED="1350500193712" TEXT="can be used to simulate complex data structures">
<node CREATED="1350500194481" ID="ID_47836969" MODIFIED="1350500196725" TEXT="trees"/>
<node CREATED="1350500197553" ID="ID_895735778" MODIFIED="1350500200308" TEXT="lists"/>
<node CREATED="1350500201473" ID="ID_1091743649" MODIFIED="1350500202374" TEXT="arrays"/>
</node>
</node>
<node CREATED="1350500312401" ID="ID_1829575220" MODIFIED="1350500328630" TEXT="actor languages &amp; agents">
<node CREATED="1350500329249" ID="ID_1354603309" MODIFIED="1350500409477" TEXT="autonomous objects = actors = active objects (own virt./mobile processor)"/>
<node CREATED="1350500366161" ID="ID_996300690" MODIFIED="1350500377254" TEXT="actors communicate with msgs"/>
<node CREATED="1350500418033" ID="ID_186224819" MODIFIED="1350500424261" TEXT="salsa!"/>
</node>
<node CREATED="1350500535137" ID="ID_841668563" MODIFIED="1350500548293" TEXT="serializing ressources"/>
<node CREATED="1350500499856" ID="ID_1866528831" MODIFIED="1350500501829" TEXT="Transactions">
<node CREATED="1350500607201" ID="ID_457859841" MODIFIED="1350500629062" TEXT="set of statements whose effects are applied atomically"/>
<node CREATED="1350500652545" ID="ID_1732712533" MODIFIED="1350500656981" TEXT="nested transactions?"/>
</node>
</node>
<node CREATED="1350303142359" ID="Freemind_Link_1144962277" MODIFIED="1350500868771" POSITION="left" TEXT="Other Paradigms">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1350464903529" ID="ID_1445127904" MODIFIED="1350464911027" TEXT="Domain Specific Languages"/>
<node CREATED="1350464913950" ID="ID_1332939587" MODIFIED="1350465044259" TEXT="Constraint Programming">
<node CREATED="1350464926492" ID="ID_322102246" MODIFIED="1350464933737" TEXT="Ideally: Problem = a data type">
<node CREATED="1350464952439" ID="ID_1408026784" MODIFIED="1350464958922" TEXT="data-type has a value domain/range"/>
<node CREATED="1350464960264" ID="ID_927264334" MODIFIED="1350464969776" TEXT="Value domain has constraints to only &apos;desirable&apos; values"/>
<node CREATED="1350464974984" ID="ID_1842866348" MODIFIED="1350464974984" TEXT=""/>
</node>
<node CREATED="1350464979536" ID="ID_527660629" MODIFIED="1350464986163" TEXT="Example: 8 Queens problem">
<node CREATED="1350464988120" ID="ID_109898643" MODIFIED="1350464992564" TEXT="data type: checker-board"/>
<node CREATED="1350464993648" ID="ID_19314505" MODIFIED="1350465006314" TEXT="valid: data-type + 8 queens"/>
<node CREATED="1350465011737" ID="ID_1693394218" MODIFIED="1350465020003" TEXT="desirable: 8 queens that do not attach"/>
<node CREATED="1350465025369" ID="ID_139195837" MODIFIED="1350465036220" TEXT="On Activation: system searches for solution -&gt; constrain solver"/>
</node>
<node CREATED="1350465045266" ID="ID_723606732" MODIFIED="1350465049540" TEXT="Similar to prolog"/>
</node>
<node CREATED="1350465114220" ID="ID_209393562" MODIFIED="1350467751015" TEXT="Access-oriented Programming">
<node CREATED="1350465130532" ID="ID_1835794019" MODIFIED="1350465139079" TEXT="Whenever a variable changes, call ossociated function"/>
<node CREATED="1350465145613" ID="ID_1043684712" MODIFIED="1350465165208" TEXT="Used inernally in constraint based languages or in debuggers"/>
<node CREATED="1350467751015" ID="ID_772755308" MODIFIED="1350467755121" TEXT="Example Languages">
<node CREATED="1350467756230" ID="ID_1748835731" MODIFIED="1350467767978" TEXT="&apos;Loops&apos; from Xerox PARC"/>
<node CREATED="1350467769526" ID="ID_196382557" MODIFIED="1350467772577" TEXT="Spreadsheets"/>
<node CREATED="1350467781287" ID="ID_559971309" MODIFIED="1350467783194" TEXT="JavaFX"/>
</node>
</node>
<node CREATED="1350467788975" ID="ID_1684536999" MODIFIED="1350467869399" TEXT="Single-datastructure languages">
<node CREATED="1350467837680" ID="ID_719091014" MODIFIED="1350467853947" TEXT="All the world is an array in &apos;JPL&apos;">
<node CREATED="1350467861864" ID="ID_753451185" MODIFIED="1350467866283" TEXT="sucessor is named &apos;J&apos;"/>
</node>
<node CREATED="1350467870873" ID="ID_1669594314" MODIFIED="1350467878043" TEXT="Everything is a set in &apos;SETL&apos;"/>
</node>
<node CREATED="1350467903306" ID="ID_1616492697" MODIFIED="1350467906780" TEXT="Dataflow programming"/>
<node CREATED="1350470475077" ID="ID_1496793326" MODIFIED="1350470544662" TEXT="Text processing: AWK">
<node CREATED="1350470494986" ID="ID_1720321408" MODIFIED="1350470499404" TEXT="All the world is a string"/>
<node CREATED="1350470500938" ID="ID_1116772419" MODIFIED="1350470505901" TEXT="Pattern matching">
<node CREATED="1350470601637" ID="ID_297668479" MODIFIED="1350470604495" TEXT="regular expressions"/>
</node>
<node CREATED="1350470507459" ID="ID_1721924482" MODIFIED="1350470510620" TEXT="text replacement"/>
<node CREATED="1350470524483" ID="ID_966792736" MODIFIED="1350470528853" TEXT="pattern -&gt; action">
<node CREATED="1350470548220" ID="ID_758124963" MODIFIED="1350470556334" TEXT="print has a monkey if the line contains a monkey">
<node CREATED="1350470571386" ID="ID_740700269" MODIFIED="1350470587615" TEXT="/monkey/ { print &quot;monkey&quot;; print&quot; }"/>
</node>
</node>
</node>
<node CREATED="1350470610334" ID="ID_916235087" MODIFIED="1350470629104" TEXT=" Shell programming">
<node CREATED="1350470629806" ID="ID_334571647" MODIFIED="1350470631760" TEXT="Unix shell">
<node CREATED="1350470653910" ID="ID_1778655474" MODIFIED="1350470657225" TEXT="redirect i/o"/>
<node CREATED="1350470660231" ID="ID_1530384219" MODIFIED="1350470662234" TEXT="global variables"/>
<node CREATED="1350470668271" ID="ID_410975918" MODIFIED="1350470673682" TEXT="loops, conditions etc"/>
</node>
<node CREATED="1350470632774" ID="ID_1656122848" MODIFIED="1350470638142" TEXT="Windows shell: Powershell">
<node CREATED="1350470638886" ID="ID_742672251" MODIFIED="1350470642167" TEXT="OO Shell"/>
</node>
</node>
<node CREATED="1350470689728" ID="ID_1628481358" MODIFIED="1350470697819" TEXT="Database languages"/>
<node CREATED="1350470698712" ID="ID_696336428" MODIFIED="1350470702803" TEXT="Music languages"/>
<node CREATED="1350471449205" ID="ID_1912907698" MODIFIED="1350471452304" TEXT="Real-time languages">
<node CREATED="1350471465621" ID="ID_1693482811" MODIFIED="1350471486681" TEXT="Correcteness criterion: What *and* When"/>
</node>
<node CREATED="1350471543223" ID="ID_939131540" MODIFIED="1350471550962" TEXT="Probabilistic / Fuzzy programming"/>
<node CREATED="1350471568096" ID="ID_848485643" MODIFIED="1350471571377" TEXT="Math languages">
<node CREATED="1350471572120" ID="ID_1406428294" MODIFIED="1350471574001" TEXT="Matlab"/>
<node CREATED="1350471575304" ID="ID_1341951890" MODIFIED="1350471577091" TEXT="Octave"/>
</node>
<node CREATED="1350471592945" ID="ID_923112699" MODIFIED="1350471612218" TEXT="GUI Programming">
<node CREATED="1350471598657" ID="ID_1781712282" MODIFIED="1350471604052" TEXT="Separate graphics from implementation"/>
<node CREATED="1350471612218" ID="ID_1530460441" MODIFIED="1350471614004" TEXT="Silverlight"/>
<node CREATED="1350471615065" ID="ID_214855814" MODIFIED="1350471620098" TEXT="JavaFX"/>
</node>
<node CREATED="1350471632610" ID="ID_808332126" MODIFIED="1350471637574" TEXT="Aspect Oriented Programming"/>
<node CREATED="1350471700876" ID="ID_341096774" MODIFIED="1350471703557" TEXT="WWW">
<node CREATED="1350471704332" ID="ID_1174510158" MODIFIED="1350471705766" TEXT="Perl"/>
<node CREATED="1350471707108" ID="ID_503924350" MODIFIED="1350471709206" TEXT="Javascript"/>
</node>
</node>
<node CREATED="1350303131481" ID="ID_1701940784" MODIFIED="1350500879567" POSITION="right" TEXT="Logic">
<node CREATED="1350399934684" ID="ID_1831474929" MODIFIED="1350400544216" TEXT="when is a set of rules a logic?">
<node CREATED="1350400545043" ID="ID_1435057413" MODIFIED="1350400560875" TEXT="basic assumptions(axioms)"/>
<node CREATED="1350400562290" ID="ID_119004333" MODIFIED="1350400574671" TEXT="rules create facts from existing facts"/>
<node CREATED="1350400586482" ID="ID_1942281900" MODIFIED="1350400702135" TEXT="a set of facts can only increase (once proven right, cannot prove false and retract the fact)"/>
<node CREATED="1350401021082" ID="ID_597216947" MODIFIED="1350401058608" TEXT="Predicate logic / {first,second} order logic / typed logic"/>
</node>
<node CREATED="1350400808578" ID="ID_1023950282" MODIFIED="1350401853918" TEXT="programmer states problem, language/compiler figures out how to solve it">
<node CREATED="1350400869138" ID="ID_253180064" MODIFIED="1350400875401" TEXT="search for the answer"/>
<node CREATED="1350400877218" ID="ID_390563442" MODIFIED="1350400967016" TEXT="apply rules to problem to reduce it to a solution"/>
<node CREATED="1350400992154" ID="ID_911825380" MODIFIED="1350401007752" TEXT="problem specific knowledge can be applied"/>
<node CREATED="1350403213686" ID="ID_448557426" MODIFIED="1350404858651" TEXT="log.programming a step towards declarative programming"/>
</node>
<node CREATED="1350401104697" ID="ID_104222353" MODIFIED="1350401108528" TEXT="horn logic">
<node CREATED="1350401152945" ID="ID_1793490859" MODIFIED="1350401206944" TEXT="condition is true if 0 or more other clauses are true"/>
<node CREATED="1350401216586" ID="ID_40677458" MODIFIED="1350401257048" TEXT="subset of predicate logic"/>
<node CREATED="1350401362362" ID="ID_396005015" MODIFIED="1350401431903" TEXT="predicates">
<node CREATED="1350401432841" ID="ID_624791002" MODIFIED="1350401450360" TEXT="a form of function: 0 or more arguments"/>
<node CREATED="1350401586593" ID="ID_1326147904" MODIFIED="1350401594919" TEXT="argument variable or constant"/>
</node>
<node CREATED="1350401680113" ID="ID_1510162016" MODIFIED="1350401697522" TEXT="system works back to prove query using facts and if-rules">
<node CREATED="1350401910320" ID="ID_147718278" MODIFIED="1350401919487" TEXT="search order is non-deterministic"/>
<node CREATED="1350401947264" ID="ID_626918416" MODIFIED="1350402026086" TEXT="clause can&apos;t be proven &#x2192; try another clause: backtracking "/>
<node CREATED="1350402701423" ID="ID_1171154149" MODIFIED="1350402709597" TEXT="all possible solutions are searched">
<node CREATED="1350403098046" ID="ID_357724770" MODIFIED="1350403121494" TEXT="DFS = expensive"/>
</node>
</node>
<node CREATED="1350402726015" ID="ID_1435865067" MODIFIED="1350402755181" TEXT="closed world assumption: all that is needed must be in rules/facts"/>
</node>
<node CREATED="1350402152776" ID="ID_1155381656" MODIFIED="1350402156334" TEXT="unification">
<node CREATED="1350402238552" ID="ID_472697887" MODIFIED="1350402310910" TEXT="head and goal match if equal / can be made equal by binding variables in head/goal"/>
<node CREATED="1350402336784" ID="ID_1682809763" MODIFIED="1350402346406" TEXT="equality">
<node CREATED="1350402386399" ID="ID_1227231985" MODIFIED="1350402389893" TEXT="same predicate"/>
<node CREATED="1350402391504" ID="ID_1238504388" MODIFIED="1350402397357" TEXT="same number of arguments"/>
<node CREATED="1350402399631" ID="ID_350899080" MODIFIED="1350402457057" TEXT="each argument in head must be equal or made equal to goals by binding"/>
<node CREATED="1350402458631" ID="ID_1919465917" MODIFIED="1350402470245" TEXT="if both are unbound, rename variable in goal"/>
</node>
</node>
<node CREATED="1350402812367" ID="ID_915867716" MODIFIED="1350402814189" TEXT="relations">
<node CREATED="1350402906358" ID="ID_374626395" MODIFIED="1350402924903" TEXT="horn clause specifies relation between argument variables"/>
</node>
<node CREATED="1350402962270" ID="ID_189317129" MODIFIED="1350402967862" TEXT="data structures">
<node CREATED="1350402968614" ID="ID_1547246162" MODIFIED="1350402971006" TEXT="lists"/>
<node CREATED="1350402972086" ID="ID_837568779" MODIFIED="1350402976998" TEXT="facts as tuples"/>
</node>
</node>
<node CREATED="1350471765270" ID="ID_712796925" MODIFIED="1350500884138" POSITION="left" TEXT="Future Paradigms">
<node CREATED="1350471773046" ID="ID_1300292986" MODIFIED="1350471777474" TEXT="Literate Programming">
<node CREATED="1350483979275" ID="ID_660948143" MODIFIED="1350483989844" TEXT="Glue documentation and code together"/>
</node>
<node CREATED="1350471787775" ID="ID_1296304484" MODIFIED="1350484025541" TEXT="Coordination Languages">
<node CREATED="1350484005163" ID="ID_550984239" MODIFIED="1350484013732" TEXT="Handles when/where to start programs and how to connect them"/>
<node CREATED="1350484026409" ID="ID_1533662149" MODIFIED="1350484039257" TEXT="Unix shell scripting can be seen as coordination language">
<node CREATED="1350484042561" ID="ID_1446822117" MODIFIED="1350484050374" TEXT="not really good for parallel programming"/>
<node CREATED="1350484051737" ID="ID_292127121" MODIFIED="1350484070384" TEXT="Distributed programming involves external tools ala netpipe, ssh, etc"/>
<node CREATED="1350484073404" ID="ID_579454077" MODIFIED="1350484080292" TEXT="Perhaps we need an internet aware scripting language"/>
</node>
<node CREATED="1350484087634" ID="ID_1474135927" MODIFIED="1350484095667" TEXT="Hermes">
<node CREATED="1350484096354" ID="ID_1881697848" MODIFIED="1350484120404" TEXT="Resource: Software component offering some services, with well-defined interfaces"/>
<node CREATED="1350484123883" ID="ID_239175404" MODIFIED="1350484128735" TEXT="Taks use resources">
<node CREATED="1350484141277" ID="ID_741236500" MODIFIED="1350484147935" TEXT="compound task: multiple resources used"/>
</node>
<node CREATED="1350484218086" ID="ID_119540880" MODIFIED="1350484227056" TEXT="Service flows connect inputs to putputs upon event occurence"/>
</node>
</node>
<node CREATED="1350484248031" ID="ID_809399006" MODIFIED="1350484253003" TEXT="Component based programming"/>
<node CREATED="1350484254487" ID="ID_1988735747" MODIFIED="1350484308049" TEXT="Interface Definition Languages">
<node CREATED="1350484286992" ID="ID_225545699" MODIFIED="1350484564805" TEXT="Corba">
<node CREATED="1350484373040" ID="ID_503961647" MODIFIED="1350484386676" TEXT="Objective: Multi-process, multi-language communication"/>
<node CREATED="1350484542447" ID="ID_1983751921" MODIFIED="1350484554336" TEXT="Object lookup via strings, called &quot;IOR&apos;"/>
<node CREATED="1350484565967" ID="ID_1730438246" MODIFIED="1350484572811" TEXT="Problem: Plymorphic remote calls"/>
</node>
<node CREATED="1350484308049" ID="ID_611609498" MODIFIED="1350484329187" TEXT="use a different language to interface to a (module|package|library)"/>
</node>
<node CREATED="1350484608817" ID="ID_52986831" MODIFIED="1350484690760" TEXT="Router Building Language: Click">
<node CREATED="1350484620881" ID="ID_1881751673" MODIFIED="1350484627845" TEXT="DSL for building routers/packet-processors"/>
<node CREATED="1350484648274" ID="ID_887748739" MODIFIED="1350484683703" TEXT="pull, push sometihng to/from queues to others can use it"/>
<node CREATED="1350484691515" ID="ID_1864842109" MODIFIED="1350484694944" TEXT="Component types">
<node CREATED="1350484695643" ID="ID_1974043012" MODIFIED="1350484707792" TEXT="Classifier: takes one packet and selects one of many outputs"/>
<node CREATED="1350484708948" ID="ID_1746964001" MODIFIED="1350484724550" TEXT="Scheduler: tackes a packet from one of many inputs and puts it one output"/>
<node CREATED="1350484726092" ID="ID_1500571567" MODIFIED="1350484742029" TEXT="Forward?Processor: Takes a packet from one input and puts it on one output"/>
</node>
</node>
<node CREATED="1350484797598" ID="ID_1588499031" MODIFIED="1350484799866" TEXT="Agents">
<node CREATED="1350484800614" ID="ID_1577652530" MODIFIED="1350484807471" TEXT="Are &quot;autonomous fotare components&quot;"/>
<node CREATED="1350484819222" ID="ID_1076009696" MODIFIED="1350484834906" TEXT="Multi-agent system: Multiple intelligent agents interacting with each other">
<node CREATED="1350484835607" ID="ID_812298677" MODIFIED="1350484849488" TEXT="not monolithic"/>
<node CREATED="1350484850927" ID="ID_545159458" MODIFIED="1350484859084" TEXT="no global view of whole system"/>
<node CREATED="1350484867760" ID="ID_1440332753" MODIFIED="1350484873413" TEXT="no global coordinator for system"/>
</node>
<node CREATED="1350484901881" ID="ID_1770684235" MODIFIED="1350484913226" TEXT="MAML: Multi-Agent Modeling Language">
<node CREATED="1350484902177" ID="ID_364340149" MODIFIED="1350484902177" TEXT=""/>
</node>
</node>
<node CREATED="1350485034304" ID="ID_1553144254" MODIFIED="1350485081062" TEXT="XQuery">
<node CREATED="1350485037669" ID="ID_603221914" MODIFIED="1350485049662" TEXT="Language for querying XML formatted databases"/>
<node CREATED="1350485054053" ID="ID_1572609961" MODIFIED="1350485067682" TEXT="Has: functions, conditional execution, looping, etc."/>
<node CREATED="1350485081063" ID="ID_1207878733" MODIFIED="1350485104244" TEXT="Return &lt;E&gt; statement add &lt;E&gt; to return set *but* does not immediately return control"/>
</node>
<node CREATED="1350485354421" ID="ID_1016262429" MODIFIED="1350485474783" TEXT="R-Spec">
<node CREATED="1350485357813" ID="ID_751452923" MODIFIED="1350485363703" TEXT="Framework with a domain specific language">
<node CREATED="1350485367350" ID="ID_1492583448" MODIFIED="1350485369608" TEXT="Based on ruby"/>
<node CREATED="1350485373774" ID="ID_268230876" MODIFIED="1350485383123" TEXT="Used for expressing tests in almost flued English"/>
</node>
<node CREATED="1350485390582" ID="ID_1614809470" MODIFIED="1350485399277" TEXT="&quot;Behavior Driven Development&quot;"/>
</node>
<node CREATED="1350485477481" ID="ID_556205515" MODIFIED="1350485724412" TEXT="Fortress">
<node CREATED="1350485481889" ID="ID_1115867895" MODIFIED="1350485732081" TEXT="OO Language with">
<node CREATED="1350485487033" ID="ID_179972615" MODIFIED="1350485490776" TEXT="parallelism"/>
<node CREATED="1350485491585" ID="ID_1819858065" MODIFIED="1350485493872" TEXT="strucuring">
<node CREATED="1350485499033" ID="ID_1810837258" MODIFIED="1350485521597" TEXT="trait (like java interface but may has implementations and inheritance)"/>
<node CREATED="1350485523434" ID="ID_725560310" MODIFIED="1350485532192" TEXT="object is set of traits with fields and mehtods"/>
<node CREATED="1350485533250" ID="ID_1110475151" MODIFIED="1350485536957" TEXT="components / API"/>
</node>
<node CREATED="1350485545626" ID="ID_1237630065" MODIFIED="1350485554150" TEXT="Extensibilty: A program can extend the base language"/>
<node CREATED="1350485564947" ID="ID_155615674" MODIFIED="1350485575678" TEXT="parametric types (like c++ template but not like java generics)"/>
<node CREATED="1350485577708" ID="ID_849143635" MODIFIED="1350485583313" TEXT="type intference where possible"/>
<node CREATED="1350485590820" ID="ID_1641419095" MODIFIED="1350485597751" TEXT="top level functions (like static methods in java)"/>
<node CREATED="1350485607060" ID="ID_287143502" MODIFIED="1350485612359" TEXT="functions can have pre/post conditions"/>
<node CREATED="1350485627973" ID="ID_1083856220" MODIFIED="1350485668915" TEXT="Juxtaposition. Context of symbols defines meaning. Example &quot;n m&quot;">
<node CREATED="1350485634997" ID="ID_1346831010" MODIFIED="1350485677355" TEXT="Mul if n is variable"/>
<node CREATED="1350485678430" ID="ID_635806242" MODIFIED="1350485683732" TEXT="function call if n is a function"/>
<node CREATED="1350485684926" ID="ID_545625726" MODIFIED="1350485688451" TEXT="append if n a string"/>
</node>
</node>
<node CREATED="1350485753120" ID="ID_705951883" MODIFIED="1350485769870" TEXT="Almost anything allowed parallel"/>
</node>
<node CREATED="1350485960302" ID="ID_872990685" MODIFIED="1350486238409" TEXT="X10">
<node CREATED="1350485966447" ID="ID_1088008624" MODIFIED="1350486029623" TEXT="Set of extensions for Java for easier/better parallel and distributed programming">
<node CREATED="1350485980767" ID="ID_93887722" MODIFIED="1350485984027" TEXT="lightweight taks"/>
<node CREATED="1350485985535" ID="ID_1163991655" MODIFIED="1350485993436" TEXT="async expression + statement executions"/>
<node CREATED="1350485994279" ID="ID_1829515858" MODIFIED="1350485997325" TEXT="Immutable objects"/>
<node CREATED="1350485998239" ID="ID_1239916294" MODIFIED="1350486005125" TEXT="multi-dim arrays">
<node CREATED="1350486009072" ID="ID_1408107249" MODIFIED="1350486014917" TEXT="java has arrays of arrays only"/>
</node>
</node>
<node CREATED="1350486035320" ID="ID_1120279058" MODIFIED="1350486058695" TEXT="A reference may not be null or the type must be nullable for this to happen"/>
<node CREATED="1350486082485" ID="ID_1518098721" MODIFIED="1350486087456" TEXT="Partitioned global address space"/>
<node CREATED="1350486222737" ID="ID_329948762" MODIFIED="1350486227106" TEXT="atomic blocks"/>
<node CREATED="1350486238410" ID="ID_429939336" MODIFIED="1350486239818" TEXT="futures"/>
</node>
</node>
</node>
</map>
