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/ DOMAIN SPECIFIC LANGUAGES 2 June 2009 Many Different Domains Databases: SQL, PL/SQL,


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

  2. DOMAIN SPECIFIC LANGUAGES 2 June 2009

  3. Many Different Domains § Databases: § SQL, PL/SQL, PL/pgSQL, … § not PL/Python, PL/Perl, PL/TCL, PL/Ruby, … § Mathematics & Science: § Maple, Matlab, Mathematica, … § not Numpy, Scipy, Sage, … § Hardware: VHDL, Verilog, … § Parsing: Yacc, SableCC, ANTLR, JavaCC, … § Graphics: POV, SVG, … § Graphs: Graphviz, … § Sound: Csound, … 3 June 2009

  4. Characteristics § No common features § Usually expressed in plain text § Special parsers and compilers / interpreters needed § Available language constructs depending on domain § Often embedded into host application or as application input § Often NOT turing-complete 4 June 2009

  5. Applicability § Cost-benefit analysis § Often needed when users are NOT programmers § Also make sense when expressivity very high § Make only sense for recurring tasks 5 June 2009

  6. Example: PL/pgSQL § Domain specific language for database interaction § Procedural programming mixed with queries and updates § Extends possibilities of SQL § Advantages w.r.t. SQL: § Modularity, identifiers, loops, error handling, … § Advantages w.r.t. traditional database adapters: § Improved performance (executed on server, no communication overhead with repeated SQL statements) § Code reuse (stored procedures available to all clients) § Portable (no dependence on client platform) § Disadvantages: § No user interaction possible 6 June 2009

  7. Hands-On § Using regular expressions to check text § Generating data § Aggregating data § Memoizing function values 7 June 2009

  8. Example: Csound § Domain specific language for sound generation & processing § Works on audio streams as “variables” § Basic units are instruments and tables § Contains many sources and sinks: § Oscillators § Sound card input / output § Sound file input / output § FFT -based convolution § … § Used as backend of many software synthesizers 8 June 2009

  9. Hands-On § Single Oscillator for sine wave § Attack-Decay envelope § Chorusing § Soundin § Room “correction” 9 June 2009

Recommend


More recommend