dm820 advanced t opics in programming languages peter
play

DM820 Advanced T opics in Programming Languages Peter - PowerPoint PPT Presentation

DM820 Advanced T opics in Programming Languages Peter Schneider-Kamp petersk@imada.sdu.dk http://imada.sdu.dk/~petersk/DM820/ MULTI-PARADIGM & CONSTRAINT PROGRAMMING 2 June 2009 Programming Paradigms Actor programming


  1. DM820 Advanced T opics in Programming Languages Peter Schneider-Kamp petersk@imada.sdu.dk � http://imada.sdu.dk/~petersk/DM820/ �

  2. MULTI-PARADIGM & CONSTRAINT PROGRAMMING 2 June 2009

  3. Programming Paradigms § Actor programming § Generic programming § Concurrent programming § Imperative programming § Constraint programming § Logic Programming § Dataflow programming § Metaprogramming § Declarative programming § Object-oriented programming § Distributed programming § Rule-based programming § Functional programming § Visual programming 3 June 2009

  4. Multi-Paradigm Languages § Many languages use more than one paradigm: § Java: imperative, object-oriented, reflective, generic § Python: imperative, object-oriented, reflective, functional § C#: imperative, object-oriented, functional, reflective, generic § These combinations are quite straightforward § Multi-paradigm languages combine less obviously combinable programming paradigms: § Curry: constraint, functional, logic, concurrent § Oz: imperative, object-oriented, functional, logic, constraint, distributed, concurrent § How to combine functional and logic programming? § How to integrate constraint programming? 4 June 2009

  5. Declarative Programming § Imperative programming: § commands for HOW to achieve a goal § Declarative programming: § Express WHAT exactly should be achieved § Functional programming (lambda calculus) § Logic programming (predicate calculus) § Constraint programming (constraint satisfaction) 5 June 2009

  6. Constraint Programming § Just provide constraints on a solution § Let the computer figure out how to find solutions § Example (constraint logic programming): puzzle([S,E,N,D] + [M,O,R,E] = [M,O,N,E,Y]) :- Vars = [S,E,N,D,M,O,R,Y], Vars ins 0..9, all_different(Vars), S*1000 + E*100 + N*10 + D + M*1000 + O*100 + R*10 + E #= M*10000 + O*1000 + N*100 + E*10 + Y, M #\= 0, S #\= 0, label(Vars). 6 June 2009

  7. Example: Curry § Belongs to the class of constraint functional logic languages § Syntax very close to Haskell § Named after mathematician Haskell B. Curry § Implementation developed in Portland, Aachen, Kiel (PAKCS) § Applications: § Bibliographic database, Wine manager, Recipe database § Music composition § Web-based learning, Web server scripting § Ecological simulation § Course assignment, Study program management § Graph grammar parsers § … 7 June 2009

  8. Hands-On § Functional programming § Logic programming § Mixed functional-logic programming § Send + more = money 8 June 2009

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend