Cantitate/Preț
Produs

Software Languages: Syntax, Semantics, and Metaprogramming

Autor Ralf Lämmel
en Limba Engleză Paperback – 22 dec 2018

Considerăm că un punct de plecare excelent pentru a înțelege rigoarea acestei lucrări este capitolul dedicat implementării sintaxei concrete textuale, unde autorul demonstrează cum pot fi procesate și transformate artefactele software în diferite limbaje. Spre deosebire de manualele care se limitează la teoria compilatoarelor, Software Languages adoptă o perspectivă de inginerie software aplicată, axată pe scenarii de metaprogramare și sisteme de tipuri. Structura celor 12 capitole este proiectată progresiv, începând de la noțiunea fundamentală de limbaj software, trecând prin sintaxa abstractă bazată pe grafuri și arbori, până la concepte avansate de semantică operațională și calcul lambda. Recomandăm atenție sporită capitolului despre compoziționalitate, pe care autorul îl numește pe bună dreptate o „odă”, esențial pentru modularitatea în dezvoltarea modernă. Pe linia practică a volumului Domain-Specific Languages de Andrzej Wąsowski, dar cu un focus mult mai pronunțat pe ingineria sistematică a limbajelor (SLE), lucrarea lui Ralf Lämmel folosește Haskell ca motor principal de demonstrație, oferind o precizie matematică greu de egalat. Această abordare continuă munca autorului documentată în seria Grand Timely Topics in Software Engineering, unde a explorat tehnici generative și transformaționale. Este o resursă care organizează cunoștințe adesea fragmentate despre DSL-uri, re-engineering și analiză software într-un cadru unitar și coerent.

Citește tot Restrânge

Preț: 32736 lei

Preț vechi: 40920 lei
-20%

Puncte Express: 491

Carte tipărită la comandă

Livrare economică 23 mai-06 iunie


Specificații

ISBN-13: 9783030081041
ISBN-10: 3030081044
Pagini: 424
Ilustrații: XXX, 424 p. 49 illus., 32 illus. in color.
Dimensiuni: 155 x 235 mm
Greutate: 0.64 kg
Ediția:Softcover reprint of the original 1st ed. 2018
Editura: Springer International Publishing
Colecția Springer
Locul publicării:Cham, Switzerland

De ce să citești această carte

Recomandăm această carte inginerilor software și studenților avansați care doresc să stăpânească mecanismele din spatele limbajelor de programare. Cititorul câștigă capacitatea de a construi propriile limbaje specifice domeniului (DSL) și de a automatiza transformări complexe de cod. Este un instrument esențial pentru cei care lucrează în analiză programatică sau refactorizare la scară largă, oferind rigoarea academică premiată de Choice în 2019.


Despre autor

Ralf Lämmel este un expert recunoscut la nivel internațional în ingineria limbajelor software, fiind profesor de informatică și autor cu o vastă experiență în cercetare și mediul academic. Activitatea sa este strâns legată de seria de școli de vară GTTSE, unde a editat multiple volume precum Generative and Transformational Techniques in Software Engineering. Expertiza sa se concentrează pe metaprogramare, sisteme de tipuri și tehnici de transformare a programelor, fiind unul dintre promotorii utilizării programării funcționale (în special Haskell) pentru rezolvarea problemelor complexe de inginerie software.


Descriere scurtă

This book identifies, defines and illustrates the fundamental concepts and engineering techniques relevant to applications of software languages in software development. It presents software languages primarily from a software engineering perspective, i.e., it addresses how to parse, analyze, transform, generate, format, and otherwise process software artifacts in different software languages, as they appear in software development. To this end, it covers a wide range of software languages – most notably programming languages, domain-specific languages, modeling languages, exchange formats, and specifically also language definition languages. Further, different languages are leveraged to illustrate software language engineering concepts and techniques. The functional programming language Haskell dominates the book, while the mainstream programming languages Python and Java are additionally used for illustration.

By doing this, the book collects and organizes scattered knowledge from software language engineering, focusing on application areas such as software analysis (software reverse engineering), software transformation (software re-engineering), software composition (modularity), and domain-specific languages. It is designed as a textbook for independent study as well as for bachelor’s (advanced level) or master’s university courses in Computer Science. An additional website provides complementary material, for example, lecture slides and videos.

This book is a valuable resource for anyone wanting to understand the fundamental concepts and important engineering principles underlying software languages, allowing them to acquire much of the operational intelligence needed for dealing with software languages in software development practice. This is an important skill set for software engineers, as languages are increasingly permeating software development.

Cuprins

1 The Notion of a Software Language.- 2 A Story of a Domain-Specific Language.- 3 Foundations of Tree- and Graph-Based Abstract Syntax.- 4 Representation of Object Programs in Metaprograms.- 5 A Suite of Metaprogramming Scenarios.- 6 Foundations of Textual Concrete Syntax.- 7 Implementation of Textual Concrete Syntax.- 8 A Primer on Operational Semantics.- 9 A Primer on Type Systems.- 10 An Excursion into the Lambda Calculus.- 11 An Ode to Compositionality.- 12 A Suite of Metaprogramming Techniques.

Recenzii

Selected by Choice magazine as an Outstanding Academic Title for 2019  “The book’s 12 chapters cover a wealth of information by adopting a formal point of view that supplies the rigor needed for such an extensive treatment while offering plenty of self-learning opportunities through exercises and additional references. … This book is also useful as the first step in a more in-depth exploration of specific topics, such as metaprogramming, as it provides the references needed for a comprehensive literature review. … Summing Up: Highly recommended. Advanced undergraduates through faculty and professionals.” (L. Benedicenti, Choice, Vol. 56 (9), May, 2019)

Notă biografică

​Ralf Lämmel is Software Engineer at Facebook since 2018 and Professor of Computer Science (currently on leave of absence) at the University of Koblenz-Landau in Germany since 2007. In the past, he had held positions at the University of l'Aquila, Microsoft, the Free University of Amsterdam, CWI (Dutch Center for Mathematics and Computer Science), and the University of Rostock, Germany. His research and teaching interests include software language engineering, software reverse engineering, software re-engineering, mining software repositories, functional programming, grammar-based and model-based techniques, and, more recently, megamodeling. He is one of the founding fathers of the international summer school series on Generative and Transformational Techniques on Software Engineering (GTTSE) and the international conference on Software Language Engineering (SLE).

Caracteristici

The first textbook on software language engineering, with a strong focus on application areas such as domain-specific languages, software composition, and software reverse engineering Covers a wide range of languages, from functional languages like Haskell to mainstream programming languages like Java and modeling languages like UML Complemented by a website providing additional teaching material such as lecture slides, software artifacts, and videos