Vai al contenuto principale
Oggetto:

Meta-programming

Oggetto:

Meta-programming

Oggetto:

Academic year 2014/2015

Course ID
MP1415
Teacher
Dott. Gianluca Torta (Titolare del corso)
Year
1° anno 2° anno 3° anno
Type
A scelta dello studente
Credits/Recognition
2
Course disciplinary sector (SSD)
INF/01 - informatica
Delivery
Tradizionale
Language
Italiano
Attendance
Obbligatoria
Type of examination
Relazione finale
Oggetto:

Sommario del corso

Oggetto:

Course objectives

Meta-programming is a higher-level programming paradigm with the goal of constructing programs automatically. From this point of view, meta-programming is then just a special sub-field of programming.
Meta-programming is interesting because it can be considered as a higher-level thinking paradigm in programming, much needed as the complexity of software environments and applications keeps on with its fast growth.
There are too many forms and applications of meta-programming for hoping to cover all of them in one course: from higher-order functions to template-based programming, from DSLs (Domain Specific Languages) to various forms of reflection.
In our lessons we will cover in some detail macros, introduced in Lisp as a means to "make Lisp a programmable programming language" [1], and Meta-Object Protocols, also introduced in Lisp, as a way to define an extensibile, and yet efficient, OO system on top of Lisp [2].
Macros and MOPs are used in today popular languages such as Clojure (a Lisp derivative that runs on the JVM [3]) and Perl [4,5], and we will look at some of their applications in these languages.

Oggetto:

Program

1 Introduction to Meta Programming
1.1 What is MP
1.2 Forms and Applications of MP
2 Meta Programming with Macros
2.1 Functional Programming and Higher-Order Functions
2.2 Macros
2.3 Applications of Macros in Clojure
3 Meta Object Protocols
3.1 Definition of Meta-Object Protocol
3.2 MOPs in Functional Programming
3.3 MOPs in Perl
3.4 Applications of MOPs in Perl

Suggested readings and bibliography

Oggetto:

[1] P. Graham, "On Lisp: Advanced Techniques for Common Lisp", Prentice Hall (1993)
[2] G. Kiczales, J. des Rivieres, D. Bobrow, "The Art of the Metaobject Protocol", MIT Press (1991)
[3] D. Higginbotham, "Clojure for the Brave and True ", http://www.braveclojure.com/
[4] chromatic, "Modern Perl", Onyx Neon Press (2011)
[5] M.J. Dominus, "Higher-Order Perl", Morgan Kaufman (2005)



Oggetto:

Note

The course will be held in february, 2015.

Oggetto:
Last update: 23/09/2016 10:34
Location: https://dott-informatica.campusnet.unito.it/robots.html
Non cliccare qui!