<?xml version="1.0" encoding="UTF-8"?>
<mods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.loc.gov/mods/v3" version="3.1" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-1.xsd">
  <titleInfo>
    <title>Programming languages</title>
    <subTitle>concepts and implementation</subTitle>
  </titleInfo>
  <name type="personal">
    <namePart>Perugini, Saverio</namePart>
    <role>
      <roleTerm authority="marcrelator" type="text">creator</roleTerm>
    </role>
    <role>
      <roleTerm type="text">author.</roleTerm>
    </role>
  </name>
  <typeOfResource>text</typeOfResource>
  <genre authority="marc">bibliography</genre>
  <originInfo>
    <place>
      <placeTerm type="code" authority="marccountry">mau</placeTerm>
    </place>
    <dateIssued encoding="marc">2023</dateIssued>
    <edition>First edition.</edition>
    <issuance>monographic</issuance>
  </originInfo>
  <language>
    <languageTerm authority="iso639-2b" type="code">eng</languageTerm>
  </language>
  <physicalDescription>
    <form authority="marcform">print</form>
    <extent>xxxix, 755 pages ; 24 cm.</extent>
  </physicalDescription>
  <abstract>"Programming Languages: Concepts and Implementation is a textbook on programming language concepts from an implementation-oriented perspective. The book teaches language concepts from two complementary perspectives: implementation and paradigms. It covers the implementation of concepts through the incremental construction of a progressive series of interpreters in Python and Racket Scheme, for purposes of its combined simplicity and power, and assessing the differences in the resulting languages. The language being interpreted is called ChAmElEoN, referring to the recurring theme of morphing the implementation of the concepts in the language (e.g., from static scoping to dynamic scoping, or from pass-by-value to pass-by-reference)"--</abstract>
  <tableOfContents>Part I. Fundamentals -- Introduction -- Formal languages and grammars -- Scanning and parsing -- Programming language implementation -- Functional programming in scheme -- Binding and scope -- Part II. Types -- Type systems -- Currying and higher-order functions -- Data abstraction -- Part III. Interpreter implementation -- Local binding and conditional evaluation -- Functions and closures -- Parameter passing -- Part IV. Other styles of programming -- Control and exception handling -- Logic programming -- Conclusion. Appendix A. Python primer -- Appendix B. Introduction to ML (online) -- Appendix C. Introduction to Haskell (online) -- Appendix D. Getting started with the Camille programming language (online) -- Appendix E. Camille grammar and language (online).</tableOfContents>
  <note type="statement of responsibility">Saverio Perugini.</note>
  <note>Includes bibliographical references and index.</note>
  <subject authority="lcsh">
    <topic>Computer programming</topic>
  </subject>
  <subject authority="lcsh">
    <topic>Programming languages (Electronic computers)</topic>
  </subject>
  <classification authority="lcc">QA76.6 .P47235 2023</classification>
  <classification authority="ddc" edition="23">005.13 P435p</classification>
  <identifier type="isbn">9781284222722</identifier>
  <identifier type="lccn">2021022692</identifier>
  <recordInfo>
    <recordContentSource authority="marcorg">DLC</recordContentSource>
    <recordCreationDate encoding="marc">210608</recordCreationDate>
    <recordChangeDate encoding="iso8601">20250814145432.0</recordChangeDate>
    <recordIdentifier source="CSPC">22071469</recordIdentifier>
    <languageOfCataloging>
      <languageTerm authority="iso639-2b" type="code">eng</languageTerm>
    </languageOfCataloging>
  </recordInfo>
</mods>
