소장자료
| LDR | 00000nam a2200000 a | ||
| 001 | 0100825112▲ | ||
| 005 | 20241105095358▲ | ||
| 007 | ta ▲ | ||
| 008 | 241002s2024 enka 001 eng d▲ | ||
| 020 | ▼a9781804618028▼q(pbk.)▲ | ||
| 040 | ▼a221016▼c221016▲ | ||
| 082 | 0 | 4 | ▼a005.453▼223▲ |
| 090 | ▼a005.453▼bJ45b▲ | ||
| 100 | 1 | ▼aJeffery, Clinton L.▲ | |
| 245 | 1 | 0 | ▼aBuild your own programming language :▼ba programmer's guide to designing compilers, interpreters, and DSLs for modern computing problems /▼cby Clinton L. Jeffery ; foreword by Imran Ahmad.▲ |
| 260 | ▼aBirmingham, UK :▼bPackt Publishing,▼c2024.▲ | ||
| 300 | ▼axxi, 526 p. :▼bill. ;▼c24 cm.▲ | ||
| 336 | ▼atext▼btxt▼2rdacontent▲ | ||
| 337 | ▼aunmediated▼bn▼2rdamedia▲ | ||
| 338 | ▼avolume▼bnc▼2rdacarrier▲ | ||
| 500 | ▼aIncludes index.▲ | ||
| 505 | 0 | ▼aCover -- Copyright -- Foreword -- Contributors -- Table of Contents -- Preface -- Section 1: Programming Language Frontends -- Chapter 1: Why Build Another Programming Language? -- Motivations for writing your own programming language -- Types of programming language implementations -- Organizing a bytecode language implementation -- Languages used in the examples -- The difference between programming languages and libraries -- Applicability to other software engineering tasks -- Establishing the requirements for your language -- Case study -- requirements that inspired the Unicon language -- Unicon requirement #1 -- preserve what people love about Icon -- Unicon requirement #2 -- support large-scale programs working on big data -- Unicon requirement #3 -- high-level input/output for modern applications -- Unicon requirement #4 -- provide universally implementable system interfaces -- Summary -- Questions -- Chapter 2: Programming Language Design -- Determining the kinds of words and punctuation to provide in your language -- Specifying the control flow -- Deciding on what kinds of data to support -- Atomic types -- Composite types -- Domain-specific types -- Overall program structure -- Completing the Jzero language definition -- Case study -- designing graphics facilities in Unicon -- Language support for 2D graphics -- Adding support for 3D graphics -- Summary -- Questions -- Chapter 3: Scanning Source Code -- Technical requirements -- Lexemes, lexical categories, and tokens -- Regular expressions -- Regular expression rules -- Regular expression examples -- Using UFlex and JFlex -- Header section -- Regular expressions section -- Writing a simple source code scanner -- Running your scanner -- Tokens and lexical attributes -- Expanding our example to construct tokens -- Writing a scanner for Jzero -- The Jzero flex specification -- Unicon Jzero code -- Java Jzero code -- Running the Jzero scanner -- Regular expressions are not always enough -- Summary -- Questions -- Chapter 4: Parsing -- Technical requirements -- Syntax analysis -- Context-free grammars -- Writing context-free grammar rules -- Writing rules for programming constructs -- Using iyacc and BYACC/J -- Declaring symbols in the header section -- Advanced yacc declarations -- Putting together the yacc context-free grammar section -- Understanding yacc parsers -- Fixing conflicts in yacc parsers -- Syntax error recovery -- Putting together a toy example -- Writing a parser for Jzero -- The Jzero lex specification -- The Jzero yacc specification -- Unicon Jzero code -- Java Jzero parser code -- Running the Jzero parser -- Improving syntax error messages -- Adding detail to Unicon syntax error messages -- Adding detail to Java syntax error messages -- Using Merr to generate better syntax error messages -- Summary -- Questions -- Chapter 5: Syntax Trees -- Technical requirements -- Using GNU Make -- Learning about trees -- Defining a syntax tree type -- Parse trees versus syntax trees.▲ | |
| 520 | ▼aThere are many reasons to build a programming language: out of necessity, as a learning exercise, or just for fun. Whatever your reasons, this book gives you the tools to succeed. You'll build the frontend of a compiler for your language and generate a lexical analyzer and parser using Lex and YACC tools. Then you'll explore a series of syntax tree traversals before looking at code generation for a bytecode virtual machine or native code. In this edition, a new chapter has been added to assist you in comprehending the nuances and distinctions between preprocessors and transpilers. Code examples have been modernized, expanded, and rigorously tested, and all content has undergone thorough refreshing. You'll learn to implement code generation techniques using practical examples, including the Unicon Preprocessor and transpiling Jzero code to Unicon. You'll move to domain-specific language features and learn to create them as built-in operators and functions. You'll also cover garbage collection. Dr. Jeffery's experiences building the Unicon language are used to add context to the concepts, and relevant examples are provided in both Unicon and Java so that you can follow along in your language of choice. By the end of this book, you'll be able to build and deploy your own domain-specific language.▲ | ||
| 650 | 0 | ▼aCompilers (Computer programs)▼xDesign.▲ | |
| 650 | 0 | ▼aProgramming languages (Electronic computers).▲ | |
| 700 | 1 | ▼aAhmad, Imran.▲ |
Build your own programming language : a programmer's guide to designing compilers, interpreters, and DSLs for modern computing problems
자료유형
국외단행본
서명/책임사항
Build your own programming language : a programmer's guide to designing compilers, interpreters, and DSLs for modern computing problems / by Clinton L. Jeffery ; foreword by Imran Ahmad.
발행사항
Birmingham, UK : Packt Publishing , 2024.
형태사항
xxi, 526 p. : ill. ; 24 cm.
일반주기
Includes index.
내용주기
Cover -- Copyright -- Foreword -- Contributors -- Table of Contents -- Preface -- Section 1: Programming Language Frontends -- Chapter 1: Why Build Another Programming Language? -- Motivations for writing your own programming language -- Types of programming language implementations -- Organizing a bytecode language implementation -- Languages used in the examples -- The difference between programming languages and libraries -- Applicability to other software engineering tasks -- Establishing the requirements for your language -- Case study -- requirements that inspired the Unicon language -- Unicon requirement #1 -- preserve what people love about Icon -- Unicon requirement #2 -- support large-scale programs working on big data -- Unicon requirement #3 -- high-level input/output for modern applications -- Unicon requirement #4 -- provide universally implementable system interfaces -- Summary -- Questions -- Chapter 2: Programming Language Design -- Determining the kinds of words and punctuation to provide in your language -- Specifying the control flow -- Deciding on what kinds of data to support -- Atomic types -- Composite types -- Domain-specific types -- Overall program structure -- Completing the Jzero language definition -- Case study -- designing graphics facilities in Unicon -- Language support for 2D graphics -- Adding support for 3D graphics -- Summary -- Questions -- Chapter 3: Scanning Source Code -- Technical requirements -- Lexemes, lexical categories, and tokens -- Regular expressions -- Regular expression rules -- Regular expression examples -- Using UFlex and JFlex -- Header section -- Regular expressions section -- Writing a simple source code scanner -- Running your scanner -- Tokens and lexical attributes -- Expanding our example to construct tokens -- Writing a scanner for Jzero -- The Jzero flex specification -- Unicon Jzero code -- Java Jzero code -- Running the Jzero scanner -- Regular expressions are not always enough -- Summary -- Questions -- Chapter 4: Parsing -- Technical requirements -- Syntax analysis -- Context-free grammars -- Writing context-free grammar rules -- Writing rules for programming constructs -- Using iyacc and BYACC/J -- Declaring symbols in the header section -- Advanced yacc declarations -- Putting together the yacc context-free grammar section -- Understanding yacc parsers -- Fixing conflicts in yacc parsers -- Syntax error recovery -- Putting together a toy example -- Writing a parser for Jzero -- The Jzero lex specification -- The Jzero yacc specification -- Unicon Jzero code -- Java Jzero parser code -- Running the Jzero parser -- Improving syntax error messages -- Adding detail to Unicon syntax error messages -- Adding detail to Java syntax error messages -- Using Merr to generate better syntax error messages -- Summary -- Questions -- Chapter 5: Syntax Trees -- Technical requirements -- Using GNU Make -- Learning about trees -- Defining a syntax tree type -- Parse trees versus syntax trees.
요약주기
There are many reasons to build a programming language: out of necessity, as a learning exercise, or just for fun. Whatever your reasons, this book gives you the tools to succeed. You'll build the frontend of a compiler for your language and generate a lexical analyzer and parser using Lex and YACC tools. Then you'll explore a series of syntax tree traversals before looking at code generation for a bytecode virtual machine or native code. In this edition, a new chapter has been added to assist you in comprehending the nuances and distinctions between preprocessors and transpilers. Code examples have been modernized, expanded, and rigorously tested, and all content has undergone thorough refreshing. You'll learn to implement code generation techniques using practical examples, including the Unicon Preprocessor and transpiling Jzero code to Unicon. You'll move to domain-specific language features and learn to create them as built-in operators and functions. You'll also cover garbage collection. Dr. Jeffery's experiences building the Unicon language are used to add context to the concepts, and relevant examples are provided in both Unicon and Java so that you can follow along in your language of choice. By the end of this book, you'll be able to build and deploy your own domain-specific language.
ISBN
9781804618028
청구기호
005.453 J45b
소장정보
예도서예약
서서가에없는책 신고
방방문대출신청
보보존서고신청
캠캠퍼스대출
우우선정리신청
배자료배달신청
문문자발송
출청구기호출력
학소장학술지 원문서비스
| 등록번호 | 청구기호 | 소장처 | 도서상태 | 반납예정일 | 서비스 |
|---|
북토크
자유롭게 책을 읽고
느낀점을 적어주세요
글쓰기
느낀점을 적어주세요
청구기호 브라우징
관련 인기대출 도서