name=Oberon nameURL=http%3A%2F%2Fwww.oberon.ethz.ch%2Foberon%2F see= logo= type=O%20-%20Object-oriented desc=Oberon%20is%20a%20procedural%2C%20block-structured%0D%0Alanguage%20with%20many%20object-oriented%20features.%0D%0AIt%20was%20designed%20for%20computer%20science%0D%0Aeducation%2C%20but%20is%20also%20suitable%20for%0D%0Ageneral-purpose%0D%0Aapplication%20programming.%0D%0AOberon%20has%20a%20Pascal-like%20syntax%2C%20but%20its%0D%0Asemantics%20are%20richer%20than%20Pascal%27s.%20%20%0D%0AAn%20Oberon%20system%0D%0Aconsists%20of%20the%20Oberon%20language%20compiler%0D%0Aalong%20with%20a%20comprehensive%20operating%0D%0Aenvironment.%20%20%0D%0A%3Cbr%3E%0D%0AThe%20Oberon%20language%20offers%20the%20following%0D%0Afeatures%3A%20strong%20type%20checking%2C%20%0D%0Aseparately%20compilable%20modules%2C%20type%20%0D%0Aextension%20and%20type-bound%20functions%20for%20OOP%2C%0D%0Arun-time%20type%20identification%2C%20dynamic%0D%0Amemory%20management%20with%20garbage%20collection%2C%0D%0Aregular%20complement%20of%20numeric%2C%20string%2C%0D%0Aand%20array%20data%20types%2C%20and%20dynamic%20module%0D%0Aloading.%20%20Oberon%2C%20like%20Pascal%2C%20enforces%0D%0Athe%20rule%20that%20every%20thing%20must%20be%20declared%0D%0Abefore%20it%20is%20used.%0D%0AThere%20are%20some%20features%20of%20other%0D%0Aobject-oriented%20languages%20that%20Oberon%0D%0Adoes%20not%20offer%3A%20operator%20overloading%2C%0D%0Amultiple%20inheritance%2C%20abstract%20interfaces%2C%0D%0Aand%20reflection.%0D%0A%3Cbr%3E%0D%0ASeveral%20versions%20of%20the%20Oberon%20system%20%0D%0Aand%20language%20exist.%20%20Oberon%20V4%20%28System%202%29%20%0D%0Ais%20the%0D%0Aclassic%2C%20text-based%20system.%0D%0AOberon%20System%203%20is%20the%20newer%2C%20GUI%0D%0Asystem%20with%20advanced%20OOP%20features%20like%0D%0Apersistence%20and%20generic%20message%20passing.%0D%0AOberon%2FF%20is%20a%20version%20of%20the%20language%0D%0Afor%20embedded%20systems%20and%20other%20%27black-box%27%0D%0Aapplications.%0D%0A%3Cbr%3E%0D%0AImplementations%20of%20the%20ETH%20free%0D%0AOberon%20system%0D%0Aare%20available%20for%20some%20Unix%20systems%2C%0D%0ALinux%2C%20PCs%2C%20and%20Macintosh.%20%0D%0ACommercial%20versions%20of%20Oberon%20also%0D%0Aexist.%20 origin=Wirth%20and%20Gutknecht%2C%20ETH%20Zurich%2C%201985-88. seealso=Pascal%2C%20Modula-3%2C%20Ada%2C%20SELF remark=The%20Oberon%20language%20and%20system%20are%0D%0Adesigned%20to%20be%20compact%2C%20efficient%2C%20and%0D%0Ahighly%20productive.%20%20In%20terms%20of%20%0D%0Acompactness%2C%20the%20entire%20Oberon%20%0D%0Adistribution%20with%20compiler%20and%20%0D%0Alibraries%20and%20operating%20environment%0D%0Afits%20onto%207%20floppy%20disks.%0D%0A%3Cbr%3E%0D%0AWhile%20Oberon%20has%20a%20community%20in%20the%20US%2C%0D%0Ait%20seems%20to%20be%20more%20popular%20in%20Europe.%0D%0A%3Cbr%3E%0D%0AThe%20Juice%20plug-in%20for%20running%20web%0D%0Aapplets%20in%20Oberon%20is%20available%20at%20the%0D%0AJuice%20link%20below.%20%20It%20claims%20to%20be%0D%0Afaster%20than%20Java. links1=Oberon%20Internet%20Resources%20lists%3Dhttp%3A%2F%2Fwww.math.tau.ac.il%2F%7Eladen%2FOberon.html links2=StatLab%20Heidelberg%20Oberon%20Info%3Dhttp%3A%2F%2Fwww.statlab.uni-heidelberg.de%2Fprojects%2Foberon%2F links3=The%20Oberon%20Zone%3Dhttp%3A%2F%2Fwww.synerge-id.com%2Fozone%2F links4=Juice%20-%20Oberon%20for%20the%20Web%3Dhttp%3A%2F%2Fwww.ics.uci.edu%2F%7Ejuice%2F links5=Oberon%20FTP%20Site%3Dftp%3A%2F%2Fftp.inf.ethz.ch%2Fpub%2Fsoftware%2FOberon%2F date=Last%20updated%2012%2F7%2F97 sample=%3Cpre%3E%0D%0A%28%2A%20Oberon%20module%20to%20read%20in%20numbers%20%2A%29%0D%0A%28%2A%20average%20them.%20%2A%29%0D%0AMODULE%20Stats%3B%0D%0A%20%20%20IMPORT%20Texts%2C%20Oberon%3B%0D%0A%20%20%20TYPE%0D%0A%20%20%20%20%20Stat%2A%20%3D%20POINTER%20TO%20StatRec%3B%0D%0A%20%20%20%20%20StatRec%20%2A%3D%20RECORD%20%0D%0A%20%20%20%20%20%20%20count%3A%20LONGINT%3B%0D%0A%20%20%20%20%20%20%20total%3A%20REAL%3B%0D%0A%20%20%20%20%20END%3B%0D%0A%0D%0A%20%20%20PROCEDURE%20%28s%3A%20Stat%29%20Add%2A%20%28REAL%20val%29%3B%0D%0A%20%20%20VAR%20this%3A%20Stat%3B%0D%0A%20%20%20BEGIN%20this%20%3A%3D%20s%3B%0D%0A%20%20%20%20%20this.total%20%3A%3D%20this.total%20%2B%20val%3B%0D%0A%20%20%20%20%20this.count%20%3A%3D%20this.count%20%2B%201%3B%0D%0A%20%20%20END%20Add%3B%0D%0A%0D%0A%20%20%20PROCEDURE%20%28s%3A%20Stat%29%20Reset%2A%3B%0D%0A%20%20%20VAR%20this%3A%20Stat%3B%0D%0A%20%20%20BEGIN%20this%20%3A%3D%20s%3B%0D%0A%20%20%20%20%20this.total%20%3A%3D%200.0%3B%20%20%0D%0A%20%20%20%20%20this.count%20%3A%3D%200%3B%0D%0A%20%20%20END%20Reset%3B%0D%0A%0D%0A%20%20%20PROCEDURE%20%28s%3A%20Stat%29%20IsValid%2A%3A%20BOOLEAN%3B%0D%0A%20%20%20VAR%20this%3A%20Stat%3B%0D%0A%20%20%20BEGIN%20this%20%3A%3D%20s%3B%0D%0A%20%20%20%20%20RETURN%20%28this.count%20%3E%200%29%3B%0D%0A%20%20%20END%20Reset%3B%0D%0A%0D%0A%0D%0A%20%20%20PROCEDURE%20%28s%3A%20Stat%29%20Average%2A%3A%20REAL%3B%0D%0A%20%20%20VAR%20this%3A%20Stat%3B%0D%0A%20%20%20BEGIN%20this%20%3A%3D%20s%3B%0D%0A%20%20%20%20%20IF%20this.IsValid%5E%28%29%20THEN%0D%0A%20%20%20%20%20%20%20RETURN%200.0%0D%0A%20%20%20%20%20ELSE%0D%0A%20%20%20%20%20%20%20RETURN%20%28this.total%20%2F%20this.count%29%0D%0A%20%20%20END%20Average%3B%0D%0A%0D%0AEND%20Stats%3B%0D%0A%3C%2Fpre%3E _store=1 _add=Oberon _usertab=1 _usersearch=0 _format=full = name=Objective-C nameURL= see=C logo= type=O%20-%20Object-oriented desc=Objective-C%20is%20an%20object-oriented%20language%0D%0Abased%20on%20C%3B%20its%20object%20support%20is%20based%0D%0Aon%20a%20dynamic%20message-passing%20model.%20%20%0D%0AObjective-C%0D%0Aprovides%20a%20range%20of%20OOP%20features%3A%0D%0Ainheritance%2C%20dynamic%20method%20invocation%2C%20%0D%0Adelegation%2C%20metaclasses%0D%0Aand%20dynamic%20object%20creation%2C%20a%20form%20of%0D%0Agarbage%20collection%2C%20simple%20persistence%2C%0D%0Aand%20a%20kind%20of%20polymorphism.%0D%0AObjective-C%20does%20not%20support%20multiple%0D%0Ainheritance%2C%20and%20concurrency%20is%20not%0D%0Apart%20of%20the%20language.%0D%0A%3Cbr%3E%0D%0AThe%20syntax%20of%20Objective-C%20is%20very%20similar%0D%0Ato%20C%2C%20but%20with%20additions.%20%20Unlike%0D%0AC%2B%2B%2C%20Objective-C%20does%20not%20add%20OOP%20semantics%0D%0Ato%20traditional%20C%20syntax%3B%20instead%2C%20new%0D%0Asyntax%20specifically%20for%20message%20passing%0D%0Aand%20class%20definition%20provide%20OOP%20support.%0D%0A%3Cbr%3E%0D%0AObjective-C%20offers%20the%20same%20data%20types%0D%0Aas%20C%3A%20integers%20and%20floats%2C%20arrays%2C%20structures%2C%0D%0Aunions%2C%20and%20pointers.%20%20Objects%20are%20a%20new%0D%0Atype%3B%20Objective-C%20uses%20a%20rooted%20class%0D%0Ahierarchy%3A%20all%20classes%20inherit%20from%20a%20root%0D%0AObject%20class.%20%20This%20fact%20is%20heavily%0D%0Aemployed%20by%20the%20Objective-C%20standard%0D%0Aclass%20library.%0D%0A%3Cbr%3E%0D%0ABrad%20Cox%20invented%20Objective-C%20in%20the%0D%0Amid-1980s%20as%20an%20OO%0D%0Aextension%20to%20C%2C%20intended%20to%20bring%20C%0D%0Aprogrammers%20some%20of%20the%20benefits%20offered%0D%0Aby%20Smalltalk.%20%20The%20language%20was%20%0D%0Aused%20by%20NeXT%20in%20the%201989-94%20timeframe%20as%0D%0Athe%20application%20and%20library%0D%0Aprogramming%20language%20for%20%0D%0Athe%20NeXTSTEP%20and%20OpenStep%20operating%20systems.%0D%0A%3Cbr%3E%0D%0AObjective-C%20has%20been%20implemented%20as%20a%20C%0D%0Apreprocessor%20and%20as%20a%20native%20compiler.%0D%0AAt%20least%20one%20commercial%20and%20one%20free%20%0D%0Acompiler%20are%20available.%20%20Information%20on%0D%0AObjective-C%20exists%20on%20the%20Internet%20but%0D%0Ais%20not%20easy%20to%20find.%0D%0A origin=Brad%20J.%20Cox%2C%201984-85%20%3F seealso=Smalltalk%2C%20C%2B%2B%2C%20Eiffel remark=Objective-C%20is%20a%20very%20clean%20and%20simple%0D%0AOOP%20extension%20to%20C.%20%20It%20is%20far%20more%0D%0Adynamic%20than%20C%2B%2B%2C%20allowing%20the%20easier%0D%0Aconstruction%20of%20class%20libraries%2C%20GUI%0D%0Ainterfaces%2C%20and%20event-driven%20systems.%0D%0AHowever%2C%20a%20free%20compiler%20for%20Objective-C%0D%0Awas%20not%20generally%20available%20until%201992%2C%0D%0Aby%20which%20time%20C%2B%2B%20had%20begun%20to%20dominate%0D%0Acommercial%20OOP.%0D%0A%3Cbr%3E%0D%0AThe%20set%20of%20Objective-C%20class%20libraries%20%0D%0Aoffered%20with%20the%20NeXT%20machine%20in%201990%20was%0D%0Avery%20powerful%20and%20comprehensive%3B%0D%0Aa%20testament%20of%20Objective-C%27s%20expressive%0D%0Apower%20and%20convenience.%0D%0AObjective-C%20is%20the%20primary%20programming%0D%0Alanguage%20for%20Apple%27s%20new%20NeXT-based%20OS%2C%0D%0ARhapsody. links1=Objective-C%20FAQ%3Dhttp%3A%2F%2Fwww.cis.ohio-state.edu%2Fhypertext%2Ffaq%2Fbngusenet%2Fcomp%2Flang%2Fobjective-c%2Ftop.html links2=Old%20NeXT%20Objective-C%20Documents%20at%20Apple%3Dhttp%3A%2F%2Fdevworld.apple.com%2Ftechinfo%2Ftechdocs%2Frhapsody%2FNextLibrary%2FDocumentation%2FNextDev%2FTasksAndConcepts%2FObjectiveC%2Fintroobj.htm links3=An%20Objective-C%20home%20page%3Dhttp%3A%2F%2Fwww.slip.net%2F%7Edekorte%2FObjective-C%2F links4=Stepstone%20Corporation%3Dhttp%3A%2F%2Fwww.stepstn.com%2F links5=The%20GNU%20Objective-C%20Project%3Dhttp%3A%2F%2Fworld.std.com%2F%7Egsk%2Fgnu-objc.html date=Last%20updated%2012%2F12%2F97 sample=%3Cpre%3E%0D%0A%2F%2A%20still%20need%20an%20example%20here%20%2A%2F%0D%0A%0D%0A%3C%2Fpre%3E _store=1 _add=Objective-C _usertab=1 _usersearch=0 _format=full = name=Obliq nameURL=http%3A%2F%2Fwww.luca.demon.co.uk%2FObliq%2FObliq.html see= logo=144x99%3Dhttp%3A%2F%2Fwww.luca.demon.co.uk%2FObliq%2FObliqSmallCartoon.gif type=O%20-%20Object-oriented desc=Obliq%20is%20an%20object-oriented%20interpreted%0D%0Ascripting%20language%20that%20supports%20%0D%0Adistributed%20multi-threaded%20computation.%0D%0A%3Cbr%3E%0D%0AThe%20syntax%20of%20Obliq%20is%20similar%20to%20that%20of%0D%0AModula-3%2C%20but%20simpler%20and%20with%20no%0D%0Asupport%20for%20type%20declarations.%20%20Obliq%20is%0D%0Abasically%20untyped%2C%20variables%20and%20fields%0D%0Acan%20hold%20any%20kind%20of%20value.%0D%0ABasic%20data%20types%20include%20booleans%2C%0D%0Aintegers%2C%20reals%2C%20characters%2C%20strings%2C%0D%0Aand%20arrays.%20%20Obliq%20supports%20a%0D%0Acomplete%20set%20of%20sequential%20control%20structures%0D%0Aincluding%20conditional%2C%20iteration%2C%20and%0D%0Aexception%20handling%20forms%2C%0D%0Aas%20well%20as%20special%20control%20forms%20for%0D%0Aconcurrency%20%28mutexes%2C%20guarded%20statements%29.%0D%0A%3Cbr%3E%0D%0AA%20fairly%20large%20set%20of%20standard%20libraries%0D%0Aare%20defined%20for%20Obliq.%20%20These%20libraries%0D%0Aprovide%20support%20for%20math%20operations%2C%20I%2FO%2C%0D%0Apersistence%2C%20thread%20control%2C%20graphics%2C%0D%0Aand%20animation.%0D%0A%3Cbr%3E%0D%0ADistributed%20computation%20in%20is%20object-based.%0D%0AObjects%20can%20hold%20state%2C%20and%20that%20state%20is%0D%0Alocal%20to%20a%20particular%20process.%20%20Scope%20of%0D%0Aobjects%20and%20other%20variables%20is%20purely%0D%0Alexical.%20%20Objects%0D%0Acan%20call%20methods%20of%20other%20objects%2C%20even%20if%0D%0Athose%20objects%20are%20on%20another%20machine%20on%20the%0D%0Anetwork.%0D%0AObliq%20objects%20are%20simply%20collections%20of%0D%0Anamed%20fields%20%28like%20Self%27s%20named%20slots%29%2C%20and%0D%0Asupport%20inheritance%20by%20delegation%20%28like%20Self%29.%0D%0A%3Cbr%3E%0D%0AThe%20Obliq%20language%20system%20is%20an%0D%0Ainterpreter%20written%20in%20Modula-3%2C%20and%0D%0Aemploying%20Modula-3%27s%20network%20objects%0D%0Acapabilities.%20%20Obliq%20is%20included%20free%0D%0Awith%20the%20DEC%20Modula-3%20distribution%2C%0D%0Aand%20pre-compiled%20binaries%20for%20some%0D%0Aplatforms%20are%20also%20available.%20%20A%20manual%0D%0Aand%20many%20journal%20articles%20about%20the%0D%0Alanguage%20and%20its%20applications%20are%0D%0Aavailable%20on%20the%20web. origin=Luca%20Cardelli%2C%20DEC%2C%201993 seealso=Modula-3%2C%20Telescript%2C%20Phantom%2C%20Self remark=Obliq%20was%20designed%20to%20make%20distributed%0D%0Acomputation%20simple%20and%20easy%20for%20the%20%0D%0Aprogrammer%2C%20while%20providing%20program%0D%0Asafety%20and%20transparency%20with%20strict%0D%0Alexical%20scoping.%20%20%0D%0AThe%20distributed%20computing%20in%20Obliq%0D%0Ais%20based%20on%20the%20powerful%0D%0Anetwork%20object%20facility%20provided%20by%0D%0AModula-3.%20%20Unlike%20Modula-3%2C%20however%2C%0D%0AObliq%20is%20interpreted%20and%20untyped%2C%20which%0D%0Amakes%20it%20very%20flexible%20and%20friendly.%0D%0ALike%20most%20interpreters%2C%20Obliq%20supports%0D%0Aevaluation%20of%20dynamically%20generated%20code.%0D%0AIn%20the%20distributed%20computation%20context%2C%0D%0Athis%20means%20that%20Obliq%20can%20support%20mobile%0D%0Aagents%20and%20roaming%20computations.%0D%0A%3Cbr%3E%0D%0AAnother%20common%20use%20for%20Obliq%20is%203D%0D%0Aanimations.%20%20The%20standard%20library%0D%0Aprovides%20sophisticated%20graphical%0D%0Aobject%20rendering.%20%20This%20feature%20of%0D%0AObliq%20has%20been%20used%20to%20make%20some%20really%20%0D%0Acool%20animations%20of%20algorithm%20execution.%0D%0A%3Cbr%3E%0D%0A links1=Download%20Obliq%20interpreter%20software%3Dhttp%3A%2F%2Fwww.luca.demon.co.uk%2FObliq%2FObliqSoftware.html links2=Visual%20Obliq%20home%20page%20at%20GATech%3Dhttp%3A%2F%2Fwww.cc.gatech.edu%2Fgvu%2Fpeople%2FPhd%2FKrishna%2FVO%2FVOHome.html links3=Obliq%20and%203D%20algorithm%20animation%3Dhttp%3A%2F%2Fwww.research.digital.com%2FSRC%2F3D-animate%2Fhome.html links4=W3C%20Assemssment%20of%20Obliq%3Dhttp%3A%2F%2Fwww.w3.org%2FMobileCode%2Fobliq.html links5= date=Last%20updated%2012%2F29%2F97 sample=Since%20Obliq%20is%20normally%20used%20for%20distributed%0D%0Acomputation%2C%20this%20example%20code%20has%20two%20parts%3A%0D%0A%3Cp%3E%0D%0A%3Cb%3EServer%20side%3A%3C%2Fb%3E%3Cul%3E%0D%0A%3Cpre%3E%0D%0A%28%2A%20A%20server%20for%20computing%20factorials.%20%2A%29%0D%0Amodule%20FactServer%3B%0D%0A%0D%0Alet%20fact%20%3D%0D%0A%20%20net_export%28%22fact%22%2C%22%22%2C%20%0D%0A%20%20%20%20%7B%20m%20%3D%3E%20%0D%0A%20%20%20%20%20%20%20%20meth%28s%2Cn%29%20%0D%0A%20%20%20%20%20%20%20%20%20%20if%20n%20is%200%20then%201%20else%20n%20%2A%20s.m%28n-1%29%20end%0D%0A%20%20%20%20%20%20%20%20end%0D%0A%20%20%20%20%7D%29%3B%0D%0A%3C%2Fpre%3E%0D%0A%3C%2Ful%3E%3Cp%3E%0D%0A%3Cb%3EClient%20side%3A%3C%2Fb%3E%3Cul%3E%0D%0A%3Cpre%3E%0D%0Amodule%20FactClient%3B%0D%0A%0D%0Alet%20fact%20%3D%20net_import%28%22fact%22%2C%22%22%29%3B%0D%0Afact.m%2813%29%3B%0D%0A%3C%2Fpre%3E%0D%0A%3C%2Ful%3E _store=1 _add=Obliq _usertab=1 _usersearch=0 _format=full = name=occam nameURL=http%3A%2F%2Fwww.comlab.ox.ac.uk%2Farchive%2Foccam.html see= logo= type=P%20-%20Parallel%20or%20Multi-programming desc=Occam%20is%20a%20simple%20parallel%20computing%20language%0D%0Adeveloped%20to%20express%20many%20kinds%20of%20%0D%0Aparallel%20programs%20easily%20and%20directly.%0D%0AOriginally%20intended%20for%20the%20INMOS%20Transputer%2C%0D%0Aa%20chip%20built%20to%20support%20fine-grain%0D%0Amulti-processing%2C%20Occam%20has%20been%20implemented%0D%0Afor%20several%20processor%20and%20software%20architectures.%0D%0A%3Cbr%3E%0D%0ASyntactically%2C%20Occam%20is%20quite%20simple%2C%0D%0Astructure%20is%20expressed%20with%20a%20few%20simple%20%0D%0Akeywords%20and%20with%20indentation.%20%20Occam%0D%0Asupports%20a%20modest%20set%20of%20data%20types%3A%20%0D%0Aints%2C%20reals%2C%20bytes%2C%20strings%2C%20and%20arrays.%20%20%0D%0A%28The%20original%0D%0Aversion%20of%20Occam%20didn%27t%20support%20reals.%29%20In%0D%0Aaddition%20to%20simple%20data%20types%2C%20Occam%20defines%0D%0Asome%20kinds%20of%20parallel%20computing%20primitives%0D%0Aas%20types%3A%20channels%20and%20timers.%0D%0A%3Cbr%3E%0D%0AThe%20semantics%20of%20Occam%20are%20based%20on%20the%20notion%0D%0Aof%20%27processes%27.%20%20A%20process%20can%20be%20any%0D%0Akind%20of%20computation%20%28e.g.%20a%20%3A%3D%20b%20%2B%206%29%20and%0D%0Acan%20run%20in%20parallel%20with%20other%20processes.%0D%0AThe%20language%20provides%20structure%20to%20allow%0D%0Aprocesses%20to%20execute%20in%20parallel%20or%0D%0Asequentially.%20%20Parallel%20processes%20%0D%0Acommunicate%20with%20channels%3B%20these%20channels%0D%0Amust%20be%20declared%2C%20like%20variables%2C%20and%0D%0Acan%20enforce%20synchronizations%20%28something%0D%0Alike%20an%20Ada%20rendezvous%2C%20but%20simpler%20and%0D%0Amore%20flexible%29.%20%20The%20language%20also%0D%0Aincludes%20advanced%20facilities%20for%20multiplexing%20%0D%0Achannels%20and%20replicating%20processes.%0D%0A%3Cbr%3E%0D%0AOccam%27s%20model%20for%20parallel%20computation%20is%0D%0Abased%20on%20the%20seminal%20research%20by%20C.A.R.%20Hoare%0D%0Aand%20his%20language%20CSP.%0D%0A%3Cbr%3E%0D%0AThe%20current%20version%20of%20the%20Occam%20language%0D%0Adefinition%20is%202.1.%20%20Previously%20available%20only%0D%0Aas%20a%20commercial%20system%20from%20INMOS%2C%20various%0D%0Afree%20implementations%20of%20Occam%20are%20now%0D%0Aavailable%20for%20various%20platforms.%20%20Check%0D%0Athe%20links%20below%20for%20information%20and%20downloads.%0D%0ASome%20of%20the%20available%20compilers%20are%20really%0D%0Aoccam-%26gt%3BC%20translators.%20%20Occam%20reference%0D%0Amanuals%20and%20examples%20are%20available%20for%20%0D%0Adownload. origin=David%20May%20%3Ci%3Eet%20al%3C%2Fi%3E%201982%2C%201987. seealso=CSP%2C%20Ada remark=Occam%20is%20a%20fascinating%20little%20language%2C%20with%0D%0Aa%20very%20lean%20and%20spare%20set%20of%20features%20that%0D%0Aresult%20in%20a%20powerful%20whole.%20%20%0D%0AThe%20language%0D%0Aincluded%20special%20features%20for%20making%20occam%0D%0Aprograms%20efficient%20on%20the%20Transputer%0D%0Aarchitecture%2C%20but%20they%27re%20very%20cleanly%0D%0Aintegrated%20with%20the%20rest%20of%20the%20syntax.%0D%0A%3Cbr%3E%0D%0AWhen%20INMOS%20was%20acquired%20by%20SGS-Thompson%2C%20%0D%0Athe%20parent%20company%20donated%20a%20lot%20of%20the%0D%0Aoccam%20technology%20to%20the%20research%20community%2C%0D%0Aincluding%20utility%20libraries%20for%20the%20language.%0D%0AThe%20%3Cb%3Eoccam%20For%20All%3C%2Fb%3E%20project%2C%20begun%0D%0Ain%201995%2C%20aims%20to%20provide%20free%20and%0D%0Aarchitecture-neutral%20occam%20systems%20and%20tools%0D%0Afor%20programming%20researchers%20and%20industry.%0D%0A%3Cbr%3E%0D%0AOccam%20is%20considered%20to%20be%20a%20good%20language%0D%0Afor%20learning%20parallel%20computing%20concepts.%0D%0AIt%20is%20high-level%20enough%20to%20be%20usable%2C%20%0D%0Ageneral%20enough%20for%20the%20knowlege%20to%20be%0D%0Atransferable%20to%20other%20system%2C%20and%20low-level%0D%0Aenough%20that%20you%20can%20still%20get%20into%20trouble. links1=Occam%20%40%20Internet%20Parallel%20Computing%20Archive%3Dhttp%3A%2F%2Fwww.hensa.ac.uk%2Fparallel%2Foccam%2F links2= links3= links4= links5= date=Last%20updated%2012%2F8%2F97 sample=%3Cpre%3E%0D%0A--%20Pipelined%20parallel%20sort%20in%20occam%20%0D%0A--%28from%20Pountain%20and%20May%2C%20%3Ci%3EA%20Tutorial%20%0D%0A--%20Introduction%20to%20Occam%20Programming%3C%2Fi%3E%29%0D%0A%0D%0AVAL%20numbers%20IS%20100%20%3A%0D%0A%5Bnumbers%20%2B%201%5D%20CHAN%20OF%20INT%20pipe%3A%0D%0APAR%0D%0A%20%20PAR%20i%20%3D%200%20FOR%20numbers%0D%0A%20%20%20%20input%20IS%20pipe%5Bi%5D%20%3A%0D%0A%20%20%20%20output%20IS%20pipe%5Bi%2B1%5D%20%3A%0D%0A%20%20%20%20INT%20highest%20%3A%0D%0A%20%20%20%20SEQ%0D%0A%20%20%20%20%20%20input%20%3F%20highest%0D%0A%20%20%20%20%20%20SEQ%20j%20%3D%200%20FOR%20numbers%20-%201%0D%0A%20%20%20%20%20%20%20%20INT%20next%3A%0D%0A%20%20%20%20%20%20%20%20SEQ%0D%0A%20%20%20%20%20%20%20%20%20%20input%20%3F%20next%0D%0A%20%20%20%20%20%20%20%20%20%20IF%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20next%20%26lt%3B%3D%20highest%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20output%20%21%20highest%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20next%20%26gt%3B%20highest%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20SEQ%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20output%20%21%20highest%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20highest%20%3A%3D%20next%0D%0A%20%20%20%20SEQ%20i%20%3D%200%20FOR%20numbers%20%20%20--%20get%20unsorted%20%0D%0A%20%20%20%20%20%20INT%20unsortednumber%20%3A%20%20--%20numbers%0D%0A%20%20%20%20%20%20SEQ%0D%0A%20%20%20%20%20%20%20%20input%20%3F%20unsortednumber%0D%0A%20%20%20%20%20%20%20%20pipe%5B0%5D%20%21%20unsortednumber%0D%0A%20%20%20%20SEQ%20i%20%3D%200%20FOR%20numbers%20%20%20--%20dump%20sorted%0D%0A%20%20%20%20%20%20INT%20sortednumber%20%3A%20%20%20%20--%20numbers%0D%0A%20%20%20%20%20%20SEQ%0D%0A%20%20%20%20%20%20%20%20pipe%5Bnumbers%5D%20%3F%20sortednumber%0D%0A%20%20%20%20%20%20%20%20output%20%21%20sortednumber%0D%0A%3C%2Fpre%3E%0D%0A _store=1 _add=Occam _usertab=1 _usersearch=0 _format=full = name=OPS5 nameURL= see= logo= type=L%20-%20Rule-based%20or%20logical desc=OPS5%20is%20a%20production%20rule%20programming%0D%0Alanguage%20for%20AI%20research%20%0D%0Aand%20building%20expert%20systems.%20%20The%0D%0AOPS%20family%20of%20rule-based%20systems%0D%0Aculminated%20with%20OPS5%2C%20which%20has%20been%0D%0Awidely%20used%20for%20AI%20instruction%20and%20%0D%0Aapplication%20development.%0D%0A%3Cbr%3E%0D%0AAn%20OPS5%20program%20consists%20of%20a%20set%20of%0D%0Aproduction%20rules.%20%20Each%20rule%20has%20a%0D%0Aprecedent%2C%20or%20set%20of%20conditions%20which%0D%0Agovern%20application%20of%20the%20rule%2C%20and%20an%0D%0Aantecedent%20which%20define%20actions%20to%20take%0D%0Aupon%20triggering%20the%20rule.%0D%0AOPS5%20supports%20both%20forward-chaining%0D%0Aand%20backward-chaining%20control%20models.%0D%0A%3Cbr%3E%0D%0AData%20in%20the%20OPS5%20model%20is%20handled%20as%20a%20set%0D%0Aof%20global%20state%20variables%20and%20records%20which%0D%0Acan%20be%20modified%20by%20the%20rules.%0D%0AProduction%20rules%20reside%20in%20%22production%20memory%22%2C%0D%0Awhile%20data%20values%20reside%20in%20%0D%0A%22working%20memory%22.%0D%0APrimitive%20data%20types%20are%20numbers%20and%0D%0Asymbols%20%28symbols%20also%20serve%20as%20strings%29.%20%20%0D%0AOPS5%20is%20weakly%20typed%2C%20like%20Lisp%3A%0D%0Avariables%20are%20not%20declared%20to%20have%20a%0D%0Aparticular%20type%2C%20but%20can%20hold%20any%20type%20of%0D%0Adata%20placed%20in%20them.%0D%0AWorking%20memory%20contains%20objects%20that%0D%0Abear%20attributes%3A%20these%20attributes%20can%20hold%0D%0Aprimitive%20data%20values%2C%20vectors%2C%20or%20%0D%0Areferences%20to%20other%20objects.%0D%0A%3Cbr%3E%0D%0AOPS5%20has%20been%20largely%20superseded%20by%20newer%0D%0Aexpert-system%20shells%20%28such%20as%20CLIPS%29%0D%0Aand%20rule-based%20languages%20%28such%20as%20OPS83%29.%0D%0A%3Cbr%3E%0D%0AThe%20first%20version%20of%20OPS5%20was%20coded%20in%20Lisp.%0D%0ALater%20versions%20were%20written%20in%20C%20for%20speed.%0D%0ABoth%20commercial%20and%20free%20academic%0D%0Aeditions%20of%20OPS5%20existed%20during%20the%201980s.%0D%0AFree%20implementations%0D%0Aof%20OPS5%20%28C%20and%20Lisp%29%20are%20supposedly%0D%0Aavailable.%0D%0ADocumentation%20on%20the%20language%20is%20not%0D%0Aeasily%20available%20on%20the%20net. origin=Charles%20Forgy%20%3Ci%3Eet%20al%3C%2Fi%3E%2C%201977. seealso=Lisp%2C%20Prolog remark=The%20syntax%20and%20semantics%20%0D%0Aof%20OPS5%20are%20highly%20specialized%0D%0Afor%20the%20task%20of%20writing%20rule-based%20systems%0D%0Athat%20model%20real-world%20situations.%20%20%0D%0AThe%20division%20of%20the%20programming%20model%0D%0Ainto%20%22production%22%20and%20%22working%22%20memory%0D%0Awas%20based%20on%20cognitive%20psychology%20frameworks%0D%0Aof%20human%20thought%20processes%3A%20long-term%0D%0Amemory%20is%20equated%20to%20domain%20knowledge%20and%0D%0Acorresponds%20to%20production%20rules%2C%20and%0D%0Ashort-term%20memory%20is%20equated%20to%20facts%0D%0Aabout%20the%20situation%20at%20hand%20and%20corresponds%0D%0Ato%20objects%20in%20working%20memory.%0D%0A%3Cbr%3E%0D%0AIn%20any%20OPS5%20program%2C%20the%20toughest%20part%20is%20%0D%0Aensuring%20that%20the%20right%20domain-specific%0D%0Arule%20is%20applied%20to%20the%20working%20memory%20at%0D%0Athe%20right%20moment.%20%20OPS5%20supports%20various%0D%0Agrouping%20and%20priority%20schemes%20to%20allow%20the%0D%0Aprogrammer%20to%20guide%20the%20execution%20of%20rules%3B%0D%0Aapplying%20these%20facilities%20can%20be%20tricky.%0D%0A links1= links2= links3= links4= links5= date=Last%20updated%2012%2F22%2F97 sample=%3Cpre%3E%0D%0A%3B%20An%20OPS5%20program%20that%20implements%20a%20model%20of%0D%0A%3B%20rock%20climbers%2C%20from%20exercise%20solutions%20of%20%0D%0A%3B%20%22Expert%20Systems%20Programming%20in%20OPS5%22%0D%0A%28literalize%20rock-climber%0D%0A%20%20%20%20age%20%20%20%20%20%20%20%3B%20young%20or%20old%0D%0A%20%20%20%20style%20%20%20%20%20%3B%20timid%20or%20bold%0D%0A%29%0D%0A%0D%0A%28p%20old-not-bold%0D%0A%20%20%20%20%28rock-climber%20%5Eage%20old%20%5Estyle%20%26lt%3B%26gt%3B%20bold%29%0D%0A---%3E%0D%0A%20%20%20%20%28write%20%28crlf%29%20that%20is%20plausible%29%29%0D%0A%0D%0A%28p%20bold-not-old%0D%0A%20%20%20%20%28rock-climber%20%5Eage%20%26lt%3B%26gt%3B%20old%20%5Estyle%20bold%29%0D%0A---%3E%0D%0A%20%20%20%20%28write%20%28crlf%29%20that%20is%20quite%20possible%29%29%0D%0A%0D%0A%28p%20error%3A%3Aold-and-bold%0D%0A%20%20%20%20%28rock-climber%20%5Eage%20old%20%5Estyle%20bold%29%0D%0A---%3E%0D%0A%20%20%20%20%28write%20%28crlf%29%20There%20are%20no%20old%2C%20bold%20rock%20climbers%29%29%0D%0A%0D%0A%28make%20rock-climber%20%5Eage%20young%20%5Estyle%20bold%29%0D%0A%3C%2Fpre%3E _store=1 _add=OPS5 _usertab=1 _usersearch=0 _format=full = name=Orca nameURL=http%3A%2F%2Fwww.cs.vu.nl%2Fvakgroepen%2Fcs%2Forca.html see= logo=172x137%3Dhttp%3A%2F%2Fwww.cs.vu.nl%2Fvakgroepen%2Fcs%2Forcastamp.gif type=P%20-%20Parallel%20or%20Multi-programming desc=Orca%20is%20a%20parallel-programming%20language%20based%0D%0Aon%20a%20shared-object%20data%20model%2C%20designed%20to%0D%0Abe%20compiled%2C%20and%20intended%20for%20portable%0D%0Aapplication%20development%20across%20a%20variety%0D%0Aof%20multiprogramming%20architectures.%0D%0A%3Cbr%3E%0D%0AThe%20syntax%20of%20Orca%20is%20based%20on%20that%20of%0D%0AModula-2%2C%20and%20Orca%20supports%20the%20same%0D%0Asequential%20control%20constructs%20that%0D%0AModula-2%20does.%20%20Primitive%20data%20types%20in%0D%0AOrca%20include%20characters%2C%20integers%2C%20and%0D%0Areals.%0D%0AOrca%20also%20supports%20arrays%2C%20and%20a%20%0D%0Ahigh-level%20graph%20type.%20%20The%20programmer%0D%0Acan%20define%20new%20Abstract%20Data%20Types%20%28ADTs%29%2C%0D%0Awith%20data%20attributes%20and%20operations.%0D%0AOrca%20is%20a%20strongly-typed%20language%2C%20designed%0D%0Aso%20that%20the%20compiler%20can%20catch%20a%20wide%20variety%0D%0Aof%20semantic%20errors.%0D%0A%3Cbr%3E%0D%0AThe%20fundamental%20notion%20for%20parallelism%20in%0D%0AOrca%20is%20that%20running%20programs%20on%20%0D%0Adifferent%20processors%20can%20share%20arbitrary%0D%0Adata%20structures%2C%20but%20that%20operations%20on%0D%0Athose%20structures%20are%20automatically%0D%0Aindivisible.%20%20This%20is%20essentially%20a%0D%0Asimple%20model%20for%20distributed%20objects%2C%0D%0Aand%20provides%20the%20%0D%0Aprogrammer%20with%20a%20good%20deal%20of%20flexibility%0D%0Ain%20implementing%20the%20elements%20of%20a%20parallel%0D%0Asystem%2C%20while%20removing%20some%20of%20the%20low-level%0D%0Aworries%20encountered%20with%0D%0Amessage-passing%20systems.%0D%0A%3Cbr%3E%0D%0AAn%20alpha%20distribution%20of%20Orca%20can%20be%20%0D%0Aobtained%20from%20its%20principal%20developer%2C%0D%0ADr.%20H.E.%20Bal%20at%20Vrije%20University.%0D%0AInformation%20about%20the%20system%20on-line%20%0D%0Aconsists%20mostly%20of%20journal%20and%20conference%0D%0Apapers%20about%20Orca%20and%20its%20original%20target%0D%0Aplatform%2C%20Amoeba. origin=Bal%2C%20Kaashoek%2C%20Tannenbaum%20%3Ci%3Eet%20al%3C%2Fi%3E%2C%201985-90. seealso=Modula-2%2C%20SETL%2C%20Occam remark=Orca%20provides%20a%20high-level%20shared%20data%20model%0D%0Afor%20parallel%20programming%2C%20in%20contrast%20to%20%0D%0Asystems%20that%20employ%20explicit%0D%0Amessage%20passing%20%28e.g.%20Occam%29%0D%0Aand%20those%20that%20use%20paged%0D%0Ashared%20virtual%20memory.%0D%0AOrca%20is%20used%20as%20a%20research%20vehicle%20for%0D%0Aexploring%20parallel%20algorithms%20and%20%0D%0Amechanisms%20for%20efficient%20data%20handling%20in%0D%0Aparallel%20systems.%20%20%0D%0A%3Cbr%3E%0D%0AThe%20current%20implementations%20of%20the%20Orca%0D%0Arun-time%20environment%20are%20built%20to%20run%20on%0D%0Atop%20of%20a%20service%20layer%20named%20%3Ci%3EPanda%3C%2Fi%3E.%0D%0AThe%20Panda%20virtual%20machine%0D%0Aprovides%20communication%20and%20%0D%0Athread%20support%2C%20hiding%20the%20system-dependent%0D%0Adetails%20of%20these%20services%20from%20running%0D%0AOrca%20programs.%20%20Orca%20runs%20on%20a%20variety%0D%0Aof%20parallel%20computers%2C%20as%20well%20as%20%0D%0ASolaris%20and%20other%20general-purpose%20Unix%0D%0Asystems.%0D%0A%3Cbr%3E%0D%0AAn%20early%20version%20of%20Orca%20was%20used%20as%20the%0D%0Aexpository%20language%20in%20the%20book%0D%0A%3Ci%3EProgramming%20Distributed%20Systems%3C%2Fi%3E.%0D%0A links1=Download%20page%20for%20papers%20about%20Orca%3Dhttp%3A%2F%2Fwww.cs.vu.nl%2Fvakgroepen%2Fcs%2Forca_papers.html links2= links3= links4= links5= date=Last%20updated%202%2F15%2F98 sample=%3Cpre%3E%0D%0A%23%20An%20example%20object%20from%20the%20paper%0D%0A%23%20%22Experiences%20with%20the%20Orca%20Programming%20Language%22%0D%0A%23%20by%20Bal%20and%20Wilson%0D%0A%0D%0AOBJECT%20IMPLEMENTATION%20buffer%3B%20%0D%0ACONST%20MAXSIZE%20%3D%2010%3B%20%23%20Maximum%20size%20of%20the%20buffer%20%0D%0A%20%20%20%20%23%20Local%20state%20of%20the%20object%3A%0D%0A%20%20%20%20buf%3AARRAY%5Binteger%200..MAXSIZE-1%5D%20OF%20integer%3B%20%23%20the%20buffer%20itself%0D%0A%20%20%20%20in%2C%20out%3A%20integer%3B%20%23%20index%20of%20next%20element%20to%20put%2Fget%0D%0A%20%20%20%20size%3A%20integer%3B%20%23%20current%20size%0D%0A%0D%0A%20%20%20%20OPERATION%20put%28x%3A%20integer%29%3B%0D%0A%20%20%20%20BEGIN%20%0D%0A%09GUARD%20size%20%21%20MAXSIZE%20DO%20%23%20blocks%20until%20there%20is%20room%20%0D%0A%09%20%20%20%20buf%5Bin%5D%20%3A%3D%20x%3B%20%23%20store%20element%20%0D%0A%09%20%20%20%20in%20%3A%3D%20%28in%20%2B%201%29%20%25%20MAXSIZE%3B%20%23%20bump%20input%20index%20%0D%0A%09%20%20%20%20size%20%2B%3A%3D%201%3B%20%23%20increment%20size%20%0D%0A%09OD%3B%20%0D%0A%20%20%20%20END%3B%20%0D%0A%0D%0A%20%20%20%20OPERATION%20get%28x%3A%20OUT%20integer%29%3B%20%0D%0A%20%20%20%20BEGIN%20%0D%0A%09GUARD%20size%20%3F%200%20DO%20%23%20blocks%20while%20buffer%20is%20empty%20%0D%0A%09%20%20%20%20x%20%3A%3D%20buf%5Bout%5D%3B%20%23%20retrieve%20element%20%0D%0A%09%20%20%20%20out%20%3A%3D%20%28out%20%2B%201%29%20%25%20MAXSIZE%3B%20%23%20bump%20output%20index%20%0D%0A%09%20%20%20%20size%20-%3A%3D%201%3B%20%23%20decrement%20size%20%0D%0A%09OD%3B%20%0D%0A%20%20%20%20END%3B%20%0D%0AEND%3B%0D%0A%3C%2Fpre%3E _store=1 _add=Orca _usertab=1 _usersearch=0 _format=full = name=Oz nameURL=http%3A%2F%2Fwww.ps.uni-sb.de%2Fns3%2Foz%2F see= logo= type=P%20-%20Parallel%20or%20Dataflow desc=Oz%202%20is%20a%20declarative%20%0D%0Aconcurrent%20programming%20language%0D%0Athat%20supports%20object-oriented%20and%0D%0Afunctional%0D%0Aprogramming%20with%20constraint%20propagation.%20%20%0D%0AIt%20was%20created%20as%20a%20research%0D%0Avehicle%20for%20advanced%20language%20design%2C%20AI%2C%0D%0Aand%20concurrent%20system%20design.%0D%0A%3Cbr%3E%0D%0APrimitive%20simple%20data%20types%20in%20Oz%20include%0D%0Aintegers%2C%0D%0Areals%2C%20characters%2C%20strings%2C%20booleans%2C%20atoms%2C%0D%0Athreads%2C%20objects%2C%20and%20functions.%0D%0AThe%20language%20also%20supports%20a%20flexible%20set%20%0D%0Aof%20aggregate%20types%3A%20records%2C%20tuples%2C%20lists%2C%0D%0Aand%20arrays.%0D%0AAll%20predefined%20Oz%20types%20are%20arranged%20in%20a%0D%0Atype%20hierarchy%2C%20and%20inheritance%20relationships%0D%0Ain%20the%20hierarchy%20can%20be%20used%20as%20part%20of%20the%0D%0Atype%20system%20and%20constraint%20rules.%0D%0AOz%20supports%20the%20usual%20sequential%20control%0D%0Astructures%2C%20like%20conditionals%20and%20loops%2C%20as%0D%0Awell%20as%20parallel%20versions%20of%20them.%20It%20also%0D%0Ahas%20exception%20handling%20constructs.%0D%0AThe%20Oz%20object%20system%20supports%20encapsulation%2C%0D%0Ainheritance%2C%20generics%2C%20and%20other%20OOP%20features.%0D%0A%3Cbr%3E%0D%0ALike%20most%20functional%20languages%2C%20Oz%20has%0D%0Afull%20automatic%20memory%20management%20and%20%0D%0Agarbage%20collection.%20%20Like%20most%20%0D%0Aparallel%20programming%20languages%2C%20it%20has%0D%0Asynchronization%20primitives%20for%20serializing%0D%0Aaccess%20to%20objects.%20%20Thread%20creation%20in%0D%0AOz%202%20is%20always%20explicit.%0D%0A%3Cbr%3E%0D%0AOz%20uses%20a%20constraint%20programming%20system%0D%0Acalled%20finite%20domain%20constraint%20%0D%0Apropagation.%20%20Constraint%20propagation%0D%0Aruns%20concurrently%20with%20other%20program%0D%0Aactivities.%0D%0A%3Cbr%3E%0D%0AOz%202%20has%20been%20implemented%20on%20Unix%20systems%0D%0Aand%20Windows%2C%20a%20distribution%20may%20be%20obtained%0D%0Afrom%20DKFI%20in%20Germany.%20%20Good%20documentation%20is%0D%0Aavailable%20at%20the%20language%27s%20web%20site. origin=G.%20Smolka%20with%20Schulte%2C%20Henz%2C%20Muller%2C%20Wurtz%20%3Ci%3Eet%20al%3C%2Fi%3E%2C%20DFKI%2C%201994-97. seealso=Scheme%2C%20Sisal%2C%20C%2B%2B%2C%20Lucid%2C%20Java%2C%20Simula%2C%20Tcl remark=The%20current%20Oz%20language%20is%20Oz%202.0.%20%20The%0D%0Aoriginal%20Oz%201%20was%20less%20capable%20and%0D%0Asomewhat%20different%20than%20its%20successor%2C%0D%0Ain%20that%20it%20had%20an%20extremely%20fine-grain%0D%0Aconcurrency%20model%2C%20and%20a%20much%20less%0D%0Acapable%20constraint%20propagation%20system.%0D%0AOz%203%2C%20which%20is%20under%20development%2C%20is%0D%0Asupposed%20to%20be%20a%20lot%20like%20Oz%202.%0D%0A%3Cbr%3E%0D%0AOz%202%20supports%20GUI%20programming%20by%20allowing%0D%0Acalls%20to%20the%20Tk%20graphics%20toolkit.%0D%0A%3Cbr%3E%0D%0A links1=Oz%202.0%20Documentation%20area%3Dhttp%3A%2F%2Fwww.ps.uni-sb.de%2Fns3%2Foz2%2Fdocumentation%2F links2=Oz%202%20download%20area%3Dhttp%3A%2F%2Fwww.ps.uni-sb.de%2Fns3%2Foz2%2Fsystem%2F links3=Mozart%20implementation%20of%20Oz%203%3Dhttp%3A%2F%2Fwww.ps.uni-sb.de%2Fmozart%2F links4= links5= date=Last%20updated%209%2F3%2F98 sample=A%20procedure%20to%20do%20a%20lazy%20check%20of%20a%20binary%0D%0Atree%2C%20from%20%3Ci%3ETutorial%20of%20Oz%202%3C%2Fi%3E%20by%20S.%20Haridi.%0D%0A%3Cp%3E%0D%0A%3Cpre%3E%0D%0Alocal%0D%0A%20%20%20%20proc%20%7BAndThen%20BP1%20BP2%20%3FB%7D%0D%0A%20%20%20%20%20%20case%20%7BBP1%7D%20then%0D%0A%20%20%20%20%20%20%20%20case%20%7BBP2%7D%20then%20B%20%3D%20true%20else%20B%20%3D%20false%20end%0D%0A%20%20%20%20%20%20else%20B%20%3D%20false%20end%0D%0A%20%20%20%20end%0D%0Ain%20proc%20%7BBinaryTree%20T%20%3FB%7D%0D%0A%20%20%20%20%20%20case%20T%0D%0A%20%20%20%20%20%20of%20nil%20then%20B%20%3D%20true%0D%0A%20%20%20%20%20%20%5B%5D%20tree%28K%20V%20T1%20T2%29%20then%0D%0A%20%20%20%20%20%20%20%20%7BAndThen%20proc%20%7B%24%20B1%7D%7BBinaryTree%20T1%20B1%7D%20end%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20proc%20%7B%24%20B2%7D%7BBinaryTree%20T2%20B2%7D%20end%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20B%7D%0D%0A%20%20%20%20%20%20else%20B%20%3D%20false%20end%0D%0A%20%20%20%20end%0D%0Aend%0D%0A%3C%2Fpre%3E _store=1 _add=Oz _usertab=1 _usersearch=0 _format=full =