文档介绍:?Definition: Amultiparadigmprogramminglanguageprovides“aframeworkinwhichprogrammerscanworkinavarietyofstyles,freelyintermixingconstructsfromdifferentparadigms.”[TimBudd]Programmingparadigms:imperativeversusdeclarative(.,functional,logic)otherdimensions–object-ponent-oriented,concurrency-oriented,(Prasad)*WhyLearnMultiparadigmProgramming?TimBudd: “Researchresultsfromthepsychologyofprogrammingindicatethatexpertiseinprogrammingisfarmorestronglyrelatedtothenumberofdifferentprogrammingstylesunderstoodbyanindividualthanitisthenumberofyearsofexperienceinprogramming.” The“putingistoprovide...anumberofdifferentproblem-solvingstyles”sothataprogrammercan“selectasolutiontechniquethatbestmatchesthecharacteristicsoftheproblem”.ScalaMultiCS3180(Prasad)*WhyTeachMultiparadigmProgramming?Contemporaryimperativeandobject-orientedlanguagesincreasinglyhavefunctionalprogrammingfeatures,.,higherorderfunctions(closures)prehensionsNewexplicitlymultiparadigm(object-oriented/functional)languagesareappearing,.,ScalaontheJavaplatform(infuture)F#platformScalaMultiCS3180(Prasad)*ScalaProgramminglanguagedevelopedbyMartinOdersky’steamatEPFLinSwitzerlandExecutesontheJavaplatformIntegrateswithJavaHasgrowingusage(.,***,Foursquare,andLinkedin)MultiparadigmlanguageObject-oriented(withgenericsandmixins)Functional(similartoHaskellandSML)Extensible(methodcallsasoperators,currying,closures,by-nameparameters)Actor-basedconcurrency-orientedprogrammingLanguage-orientedprogrammingStaticallytypedwithHindley-MilnertypeinferenceScalaMultiCS3180(Prasad)**WhyScala?(ComingfromJava/C++)RunsontheJVMCanuseanyJavacodeinScalaAlmostasfastasJava(within10%)MuchshortercodeOderskyreports50%,LexSpoon,:AComprehensiveStep-By-StepGuide,2ndEditi