Advanced Functional Programming: Third International School, Afp'98, Braga, Portugal, September 12-19, 1998, Revised Lectures 1999 Edition Contributor(s): Swierstra, S. Doaitse (Editor), Henriques, Pedro R. (Editor), Oliveira, Jose N. (Editor) |
|
ISBN: 3540662413 ISBN-13: 9783540662419 Publisher: Springer OUR PRICE: $52.24 Product Type: Paperback Published: July 1999 |
Additional Information |
BISAC Categories: - Computers | Programming - Object Oriented - Computers | Software Development & Engineering - General - Computers | Programming Languages - General |
Dewey: 005.11 |
LCCN: 99-38268 |
Series: Lecture Notes in Computer Science |
Physical Information: 0.65" H x 8.5" W x 11" (1.60 lbs) 298 pages |
Descriptions, Reviews, Etc. |
Publisher Description: Inthisvolumeyouwill?ndthelecturenotescorrespondingtothepres- rd tationsgivenatthe3 summerschoolonAdvancedFunctionalProgramming, heldinBraga, PortugalfromSeptember12-19,1998. ThisschoolwasprecededbyearlieronesinB?astad(1995, Sweden, LNCS925) andOlympia, WA(1996, USA, LNCS1129). Thegoalofthisseriesofschoolsis tobringrecentdevelopmentsintheareaoffunctionalprogrammingtoalarge groupofstudents. Thenotesarepublishedinordertoenableindividuals, small studygroups, andlecturerstobecomeacquaintedwithrecentworkinthefast developingareaoffunctionalprogramming. Whatmadethisschoolparticularlyinterestingwasthefactthatalllectures introducedusefulsoftware, thatwasusedbythestudentsintheclassestoget hands-onexperiencewiththesubjectstaught. Weurgereadersofthisvolumeto downloadthelatestversionofthissoftwarefromtheInternetandtrytodothe exercisesfromthetextthemselves;theproofoftheprogramisinthetyping. The?rstlecture, onSortingMorphisms, servesasagentleintroductiontothe thingstocome. Ifyouhavealwaysbeenafraidoftheword"morphism", andyou havebeenwonderingwhatcatamorphisms, anamorphisms, hylomorphims, and paramorphimswereabout, thisisthepapertoread?rst;youwilldiscoverthat theyaremerelynamesforrecursionpatternsthatoccuroverandoveragainwhen writingfunctionalprograms. Thealgorithmsinthepaperareallaboutsorting, andsinceyouarelikelytoknowthosealgorithmsbyheartalready, seeingthem structuredandanalyzedinanovelwayshouldserveasamotivationtoreadon tothesecondlecture. Thesecondlecture, onGenericProgramming, isalmostabookinabook. ThenotescanbeseenastheculminatingpointoftheSTOP-project, sponsored bytheDutchgovernmentattheendofthe80'sandthebeginningofthe90's. Its overallgoalwasthedevelopmentofacalculationalwayofderivingprograms. The projecthasprovideddeeperinsightintorealfunctionalprogrammingandinto thetheorybehindmanythingscommonlywrittenbyfunctionalprogrammers. Oneofthemainachievementsoftheprojecthasbeentomakepeopleaware ofthefactthatmanyalgorithmscanbedescribedinadata-independentway. ThePolyPsystemintroducedinthesenotesisoneofthetranslationstothe Haskell-worldofthistheoreticalunderpinning. Thethirdlecture, onGenericProgramTransformation, canalsobeseenas anapplicationofthetheoryintroducedinlecturetwo. Manye?ciency-improving programtransformationscanbeperformedinamechanicalway, andthesewould nothavebeenpossiblewithoutinsightintothecorrectnessofsuchtransfor- tionsgainedinthelectureonGenericProgramming. Thefourthlecture, onDesigningandImplementingCombinatorLanguages, introducesaneasytowriteformalismforwritingdownthecatamorphismsint- ducedinearlierchapters. Itisshownhowquitecomplicatedcatamorphisms, that at?rstsightseemratherforbiddingbymakingextensiveuseofhigher-orderdo- VI Preface mains, canactuallybedevelopedinastep-wisefashion, usinganattributegr- marview;itisfurthermoreshownhowtorelatethiswayofprogrammingwith conceptsfromtheobject-orientedworldthusmakingclearwhatthestrengths andweaknessesofeachworldare. The?fthlecture, titledUsingMetaML: AStagedProgrammingLanguage, introducestheconceptofpartialevaluation. Itservesasanotherinstanceof thequestfor"themostgenericofwritingprogramsatthelowestcost". The stagingtechniquesshowhowcoststhatwereintroducedbyaddingextralevels ofabstraction, maybemovedfromrun-timetocompile-time. Ithasbeencommonknowledgetousersofmodernfunctionallanguagesthat thetypesystemcanbeagreathelpinshorteningprogramsandreducingerrors. Intheextremeonemightseeatypeasapredicatecapturingtheproperties ofanyexpressionwiththattype. InthesixthlectureonCayenne-Spiceup yourProgrammingwithDependentTypesitisshowninwhatdirectionfunct |