Cart (0)
Digital Cart (0)

Add Another Item

Add Another Item

Add Another Item

Add Another Item

Compare
You can't compare with the above items. (Clear all items in the Compare list)

Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages (English)

(Paperback)
★★★★★ ★★★★★
1
Paperback
Author: Terence Parr
Language: English
Length: 400 pages
Publisher: Shroff/pragmatic Bookshelf
Check Availability at
Invalid Pincode Entered
Available with 3 Sellers at Change
Rs. 600 13% OFF
Rs. 522
(Free delivery)

Sold by

WS Retail 4.3 / 5
84% positive feedback (3,758,139) ratings)
  • 5 star
    2,379,611
  • 4 star
    798,197
  • 3 star
    217,935
  • 2 star
    91,590
  • 1 star
    270,806
Positive
Neutral
Negative
?
Buy with confidence when you see the 'Flipkart Advantage' badge. Products tagged with the Flipkart Advantage badge are quality checked, stocked and shipped by Flipkart. They are also backed by our Friendly Returns Policy, which allows for 30 Day Returns. Expedited delivery options such as Same Day/In-a-Day Guarantee Delivery are an added bonus. Read More

* Shipments from locations where relevant permissions have been obtained.

Delivered By

?
  • Usually Delivered in 2-3 business days.
  • Delivery times may be longer than usual due to festive demand

What is the estimated delivery time?

Sellers generally procure and ship the items within the time specified on the product page. Business days exclude public holidays and Sundays.
Estimated delivery time depends on the following factors:
  • The Seller offering the product
  • Product's availability with the Seller
  • The destination to which you want the order shipped to and the Seller's location

Why does the delivery date not correspond to the delivery timeline of X-Y business days?

It is possible that the Seller or our courier partners observe a holiday between the day you placed your order and the date of delivery, which is based on the timelines shown on the product page. In this case, we add a day to the estimated date. Some courier partners and Sellers do not work on Sundays and this is factored in to the delivery dates.

What do the different tags like "In Stock", "Available" mean?

'In Stock'

For items listed as "In Stock", Sellers will mention the delivery time based on your location pincode (usually 2-3 business days, 4-5 business days or 4-6 business days in areas where standard courier service is available). For other areas, orders will be sent by Registered Post through the Indian Postal Service which may take 1-2 weeks depending on the location.

'Available'

For items listed as "In Stock", Sellers will mention the delivery time based on your location pincode (usually 2-3 business days, 4-5 business days or 4-6 business days in areas where standard courier service is available). For other areas, orders will be sent by Registered Post through the Indian Postal Service which may take 1-2 weeks depending on the location.

'Preorder' or 'Forthcoming'

For items listed as "In Stock", Sellers will mention the delivery time based on your location pincode (usually 2-3 business days, 4-5 business days or 4-6 business days in areas where standard courier service is available). For other areas, orders will be sent by Registered Post through the Indian Postal Service which may take 1-2 weeks depending on the location.

'Out of Stock'

Currently, the item is not available for sale. Use the 'Notify Me' feature to know once it is available for purchase.

'Imported'

Sometimes, items have to be sourced by Sellers from outside India. These items are mentioned as 'Imported' on the product page and can take at least 10 days or more to be delivered to you.

'Back In Stock Soon'

The item is popular and is sold out. You can however 'book' an order for the product and it will be shipped according to the timelines mentioned by the Seller.

'Temporarily Unavailable'

The product is currently out of stock and is not available for purchase. The product could to be in stock soon. Use the 'Notify Me' feature to know when it is available for purchase.

'Permanently Discontinued'

This product is no longer available because it is obsolete and/or its production has been discontinued.

'Out of Print'

This product is not available because it is no longer published and has been permanently discontinued.

Why does the estimated delivery time vary for each seller?

You have probably noticed varying estimated delivery times for Sellers of the product you are interested in. Delivery times are influenced by product availability, geographic location of the Seller, your shipping destination and the courier partner's time-to-deliver to your location.

Please enter your default pin code on the product page (you don't have to enter it every single time) to know more accurate delivery times on the product page itself.

Seller does not/cannot ship to my area. Why?

Enter your pincode on the product page (you don't have to enter it every single time) to know whether the product can be delivered to your location.

If you haven't provided your pincode until the checkout stage, the pincode in your last used shipping address will be used to check for serviceability.

Whether your location can be serviced or not depends on:

  • Whether the Seller actually ships to your location
  • Legal restrictions, if any, in shipping particular products to your location
  • The availability of reliable courier partners in your location

At times Sellers prefer not to ship to certain locations. This is entirely at their discretion.

More answers in our Shipping FAQs »

Cash On Delivery

?

How do I place a Cash on Delivery (C-o-D) order?

All items that have the "Cash on Delivery Available" icon are valid for order by Cash on Delivery.
Add the item(s) to your cart and proceed to checkout. When prompted to choose a payment option, select "Pay By Cash on Delivery". Enter the CAPTCHA text as shown, for validation.
Once verified and confirmed, your order will be processed for shipment in the time specified, from the date of confirmation. You will be required to make a cash-only payment to our courier partner at the time of delivery of your order to complete the payment.

Terms & Conditions

  • The maximum order value for C-o-D is ₹50,000.
  • e-Gift Vouchers or Store Credit cannot be used for C-o-D orders.
  • Cash-only payment at the time of delivery.
More answers in our Shipping FAQs »
May be available! Enter Pincode to confirm.
30 day Replacement Guarantee. ?
Validity Covers Type Accepted
10 days from delivery Damaged, Defective, Item not as described Replacement
If you have received a damaged or defective product or it is not as described, you can get a replacement within 10 days of delivery at no extra cost.

When does this guarantee not apply?

The guarantee does not extend to:
  • Digital products and services (Flipkart eBooks & music downloads).
  • Innerwear, Lingerie, Socks, Jewellery Freebies and Clothing Freebies
  • Damages due to misuse of product or Incidental damage due to malfunctioning of product.
  • Any consumable item which has been used or installed.
  • Products with tampered or missing serial numbers.
  • Items that are returned without original packaging, freebies or accessories.
  • Any damage / defect which are not covered under the manufacturer's warranty.
  • Made-to-order/Custom Jewellery.
More answers in our Cancellations & Returns »
Validity Covers Type Accepted
30 days from delivery Damaged, Defective, Item not as described Replacement
If you have received a damaged or defective product or it is not as described, you can get a replacement within 30 days of delivery at no extra cost.

When does this guarantee not apply?

The guarantee does not extend to:
  • Digital products and services (Flipkart eBooks & music downloads).
  • Innerwear, Lingerie, Socks, Jewellery Freebies and Clothing Freebies
  • Damages due to misuse of product or Incidental damage due to malfunctioning of product.
  • Any consumable item which has been used or installed.
  • Products with tampered or missing serial numbers.
  • Items that are returned without original packaging, freebies or accessories.
  • Any damage / defect which are not covered under the manufacturer's warranty.
  • Made-to-order/Custom Jewellery.
More answers in our Cancellations & Returns »
Validity Covers Type Accepted
10 days from delivery Exchange for colors and size, Does not fit Exchange
If you have received a damaged or defective product or it is not as described, you can get an exchange within 10 days of delivery at no extra cost.

When does this guarantee not apply?

The guarantee does not extend to:
  • Digital products and services (Flipkart eBooks & music downloads).
  • Innerwear, Lingerie, Socks, Jewellery Freebies and Clothing Freebies
  • Damages due to misuse of product or Incidental damage due to malfunctioning of product.
  • Any consumable item which has been used or installed.
  • Products with tampered or missing serial numbers.
  • Items that are returned without original packaging, freebies or accessories.
  • Any damage / defect which are not covered under the manufacturer's warranty.
  • Made-to-order/Custom Jewellery.
More answers in our Cancellations & Returns »
Validity Covers Type Accepted
30 days from delivery Exchange for colors and size, Does not fit Exchange
If you have received a damaged or defective product or it is not as described, you can get an exchange within 30 days of delivery at no extra cost.

When does this guarantee not apply?

The guarantee does not extend to:
  • Digital products and services (Flipkart eBooks & music downloads).
  • Innerwear, Lingerie, Socks, Jewellery Freebies and Clothing Freebies
  • Damages due to misuse of product or Incidental damage due to malfunctioning of product.
  • Any consumable item which has been used or installed.
  • Products with tampered or missing serial numbers.
  • Items that are returned without original packaging, freebies or accessories.
  • Any damage / defect which are not covered under the manufacturer's warranty.
  • Made-to-order/Custom Jewellery.
More answers in our Cancellations & Returns»

Buy any book and get Free Delivery. View Details

This offer is valid for Seller: 'WS Retail' till the offer ends.
Sold by 3 Sellers
Sorted By:
WS Retail
?
30 day Replacement Guarantee. ?
Cash on Delivery may be available! ?
4.3 / 5
84% positive feedback (3,758,139) ratings)
  • 5 star
    2,379,611
  • 4 star
    798,197
  • 3 star
    217,935
  • 2 star
    91,590
  • 1 star
    270,806
Positive
Neutral
Negative
  • Usually Delivered in 2-3 business days.

What is the estimated delivery time?

Sellers generally procure and ship the items within the time specified on the product page. Business days exclude public holidays and Sundays.
Estimated delivery time depends on the following factors:
  • The Seller offering the product
  • Product's availability with the Seller
  • The destination to which you want the order shipped to and the Seller's location

Why does the delivery date not correspond to the delivery timeline of X-Y business days?

It is possible that the Seller or our courier partners observe a holiday between the day you placed your order and the date of delivery, which is based on the timelines shown on the product page. In this case, we add a day to the estimated date. Some courier partners and Sellers do not work on Sundays and this is factored in to the delivery dates.

What do the different tags like "In Stock", "Available" mean?

'In Stock'

For items listed as "In Stock", Sellers will mention the delivery time based on your location pincode (usually 2-3 business days, 4-5 business days or 4-6 business days in areas where standard courier service is available). For other areas, orders will be sent by Registered Post through the Indian Postal Service which may take 1-2 weeks depending on the location.

'Available'

For items listed as "In Stock", Sellers will mention the delivery time based on your location pincode (usually 2-3 business days, 4-5 business days or 4-6 business days in areas where standard courier service is available). For other areas, orders will be sent by Registered Post through the Indian Postal Service which may take 1-2 weeks depending on the location.

'Preorder' or 'Forthcoming'

For items listed as "In Stock", Sellers will mention the delivery time based on your location pincode (usually 2-3 business days, 4-5 business days or 4-6 business days in areas where standard courier service is available). For other areas, orders will be sent by Registered Post through the Indian Postal Service which may take 1-2 weeks depending on the location.

'Out of Stock'

Currently, the item is not available for sale. Use the 'Notify Me' feature to know once it is available for purchase.

'Imported'

Sometimes, items have to be sourced by Sellers from outside India. These items are mentioned as 'Imported' on the product page and can take at least 10 days or more to be delivered to you.

'Back In Stock Soon'

The item is popular and is sold out. You can however 'book' an order for the product and it will be shipped according to the timelines mentioned by the Seller.

'Temporarily Unavailable'

The product is currently out of stock and is not available for purchase. The product could to be in stock soon. Use the 'Notify Me' feature to know when it is available for purchase.

'Permanently Discontinued'

This product is no longer available because it is obsolete and/or its production has been discontinued.

'Out of Print'

This product is not available because it is no longer published and has been permanently discontinued.

Why does the estimated delivery time vary for each seller?

You have probably noticed varying estimated delivery times for Sellers of the product you are interested in. Delivery times are influenced by product availability, geographic location of the Seller, your shipping destination and the courier partner's time-to-deliver to your location.

Please enter your default pin code on the product page (you don't have to enter it every single time) to know more accurate delivery times on the product page itself.

Seller does not/cannot ship to my area. Why?

Enter your pincode on the product page (you don't have to enter it every single time) to know whether the product can be delivered to your location.

If you haven't provided your pincode until the checkout stage, the pincode in your last used shipping address will be used to check for serviceability.

Whether your location can be serviced or not depends on:

  • Whether the Seller actually ships to your location
  • Legal restrictions, if any, in shipping particular products to your location
  • The availability of reliable courier partners in your location

At times Sellers prefer not to ship to certain locations. This is entirely at their discretion.

More answers in our Shipping FAQs »
Rs. 522
BOOKSWAGON
30 day Replacement Guarantee. ?
Cash on Delivery may be available! ?
New Seller!
  • Usually Delivered in 9-10 business days.

What is the estimated delivery time?

Sellers generally procure and ship the items within the time specified on the product page. Business days exclude public holidays and Sundays.
Estimated delivery time depends on the following factors:
  • The Seller offering the product
  • Product's availability with the Seller
  • The destination to which you want the order shipped to and the Seller's location

Why does the delivery date not correspond to the delivery timeline of X-Y business days?

It is possible that the Seller or our courier partners observe a holiday between the day you placed your order and the date of delivery, which is based on the timelines shown on the product page. In this case, we add a day to the estimated date. Some courier partners and Sellers do not work on Sundays and this is factored in to the delivery dates.

What do the different tags like "In Stock", "Available" mean?

'In Stock'

For items listed as "In Stock", Sellers will mention the delivery time based on your location pincode (usually 2-3 business days, 4-5 business days or 4-6 business days in areas where standard courier service is available). For other areas, orders will be sent by Registered Post through the Indian Postal Service which may take 1-2 weeks depending on the location.

'Available'

For items listed as "In Stock", Sellers will mention the delivery time based on your location pincode (usually 2-3 business days, 4-5 business days or 4-6 business days in areas where standard courier service is available). For other areas, orders will be sent by Registered Post through the Indian Postal Service which may take 1-2 weeks depending on the location.

'Preorder' or 'Forthcoming'

For items listed as "In Stock", Sellers will mention the delivery time based on your location pincode (usually 2-3 business days, 4-5 business days or 4-6 business days in areas where standard courier service is available). For other areas, orders will be sent by Registered Post through the Indian Postal Service which may take 1-2 weeks depending on the location.

'Out of Stock'

Currently, the item is not available for sale. Use the 'Notify Me' feature to know once it is available for purchase.

'Imported'

Sometimes, items have to be sourced by Sellers from outside India. These items are mentioned as 'Imported' on the product page and can take at least 10 days or more to be delivered to you.

'Back In Stock Soon'

The item is popular and is sold out. You can however 'book' an order for the product and it will be shipped according to the timelines mentioned by the Seller.

'Temporarily Unavailable'

The product is currently out of stock and is not available for purchase. The product could to be in stock soon. Use the 'Notify Me' feature to know when it is available for purchase.

'Permanently Discontinued'

This product is no longer available because it is obsolete and/or its production has been discontinued.

'Out of Print'

This product is not available because it is no longer published and has been permanently discontinued.

Why does the estimated delivery time vary for each seller?

You have probably noticed varying estimated delivery times for Sellers of the product you are interested in. Delivery times are influenced by product availability, geographic location of the Seller, your shipping destination and the courier partner's time-to-deliver to your location.

Please enter your default pin code on the product page (you don't have to enter it every single time) to know more accurate delivery times on the product page itself.

Seller does not/cannot ship to my area. Why?

Enter your pincode on the product page (you don't have to enter it every single time) to know whether the product can be delivered to your location.

If you haven't provided your pincode until the checkout stage, the pincode in your last used shipping address will be used to check for serviceability.

Whether your location can be serviced or not depends on:

  • Whether the Seller actually ships to your location
  • Legal restrictions, if any, in shipping particular products to your location
  • The availability of reliable courier partners in your location

At times Sellers prefer not to ship to certain locations. This is entirely at their discretion.

More answers in our Shipping FAQs »
Rs. 570
POSYA
30 day Replacement Guarantee. ?
Cash on Delivery may be available! ?
4.1 / 5
  • Usually Delivered in 15-16 business days.

What is the estimated delivery time?

Sellers generally procure and ship the items within the time specified on the product page. Business days exclude public holidays and Sundays.
Estimated delivery time depends on the following factors:
  • The Seller offering the product
  • Product's availability with the Seller
  • The destination to which you want the order shipped to and the Seller's location

Why does the delivery date not correspond to the delivery timeline of X-Y business days?

It is possible that the Seller or our courier partners observe a holiday between the day you placed your order and the date of delivery, which is based on the timelines shown on the product page. In this case, we add a day to the estimated date. Some courier partners and Sellers do not work on Sundays and this is factored in to the delivery dates.

What do the different tags like "In Stock", "Available" mean?

'In Stock'

For items listed as "In Stock", Sellers will mention the delivery time based on your location pincode (usually 2-3 business days, 4-5 business days or 4-6 business days in areas where standard courier service is available). For other areas, orders will be sent by Registered Post through the Indian Postal Service which may take 1-2 weeks depending on the location.

'Available'

For items listed as "In Stock", Sellers will mention the delivery time based on your location pincode (usually 2-3 business days, 4-5 business days or 4-6 business days in areas where standard courier service is available). For other areas, orders will be sent by Registered Post through the Indian Postal Service which may take 1-2 weeks depending on the location.

'Preorder' or 'Forthcoming'

For items listed as "In Stock", Sellers will mention the delivery time based on your location pincode (usually 2-3 business days, 4-5 business days or 4-6 business days in areas where standard courier service is available). For other areas, orders will be sent by Registered Post through the Indian Postal Service which may take 1-2 weeks depending on the location.

'Out of Stock'

Currently, the item is not available for sale. Use the 'Notify Me' feature to know once it is available for purchase.

'Imported'

Sometimes, items have to be sourced by Sellers from outside India. These items are mentioned as 'Imported' on the product page and can take at least 10 days or more to be delivered to you.

'Back In Stock Soon'

The item is popular and is sold out. You can however 'book' an order for the product and it will be shipped according to the timelines mentioned by the Seller.

'Temporarily Unavailable'

The product is currently out of stock and is not available for purchase. The product could to be in stock soon. Use the 'Notify Me' feature to know when it is available for purchase.

'Permanently Discontinued'

This product is no longer available because it is obsolete and/or its production has been discontinued.

'Out of Print'

This product is not available because it is no longer published and has been permanently discontinued.

Why does the estimated delivery time vary for each seller?

You have probably noticed varying estimated delivery times for Sellers of the product you are interested in. Delivery times are influenced by product availability, geographic location of the Seller, your shipping destination and the courier partner's time-to-deliver to your location.

Please enter your default pin code on the product page (you don't have to enter it every single time) to know more accurate delivery times on the product page itself.

Seller does not/cannot ship to my area. Why?

Enter your pincode on the product page (you don't have to enter it every single time) to know whether the product can be delivered to your location.

If you haven't provided your pincode until the checkout stage, the pincode in your last used shipping address will be used to check for serviceability.

Whether your location can be serviced or not depends on:

  • Whether the Seller actually ships to your location
  • Legal restrictions, if any, in shipping particular products to your location
  • The availability of reliable courier partners in your location

At times Sellers prefer not to ship to certain locations. This is entirely at their discretion.

More answers in our Shipping FAQs »
Rs. 570
Buy with confidence when you see the 'Flipkart Advantage' badge. Products tagged with the Flipkart Advantage badge are quality checked, stocked and shipped by Flipkart. They are also backed by our Friendly Returns Policy, which allows for 30 Day Returns. Expedited delivery options such as Same Day/In-a-Day Guarantee Delivery are an added bonus. Read More

* Shipments from locations where relevant permissions have been obtained.

How do I place a Cash on Delivery (C-o-D) order?

All items that have the "Cash on Delivery Available" icon are valid for order by Cash on Delivery.
Add the item(s) to your cart and proceed to checkout. When prompted to choose a payment option, select "Pay By Cash on Delivery". Enter the CAPTCHA text as shown, for validation.
Once verified and confirmed, your order will be processed for shipment in the time specified, from the date of confirmation. You will be required to make a cash-only payment to our courier partner at the time of delivery of your order to complete the payment.

Terms & Conditions

  • The maximum order value for C-o-D is ₹50,000.
  • e-Gift Vouchers or Store Credit cannot be used for C-o-D orders.
  • Cash-only payment at the time of delivery.
More answers in our Shipping FAQs »
Validity Covers Type Accepted
10 days from delivery Damaged, Defective, Item not as described Replacement
If you have received a damaged or defective product or it is not as described, you can get a replacement within 10 days of delivery at no extra cost.

When does this guarantee not apply?

The guarantee does not extend to:
  • Digital products and services (Flipkart eBooks & music downloads).
  • Innerwear, Lingerie, Socks, Jewellery Freebies and Clothing Freebies
  • Damages due to misuse of product or Incidental damage due to malfunctioning of product.
  • Any consumable item which has been used or installed.
  • Products with tampered or missing serial numbers.
  • Items that are returned without original packaging, freebies or accessories.
  • Any damage / defect which are not covered under the manufacturer's warranty.
  • Made-to-order/Custom Jewellery.
More answers in our Cancellations & Returns »
Validity Covers Type Accepted
30 days from delivery Damaged, Defective, Item not as described Replacement
If you have received a damaged or defective product or it is not as described, you can get a replacement within 30 days of delivery at no extra cost.

When does this guarantee not apply?

The guarantee does not extend to:
  • Digital products and services (Flipkart eBooks & music downloads).
  • Innerwear, Lingerie, Socks, Jewellery Freebies and Clothing Freebies
  • Damages due to misuse of product or Incidental damage due to malfunctioning of product.
  • Any consumable item which has been used or installed.
  • Products with tampered or missing serial numbers.
  • Items that are returned without original packaging, freebies or accessories.
  • Any damage / defect which are not covered under the manufacturer's warranty.
  • Made-to-order/Custom Jewellery.
More answers in our Cancellations & Returns »
Validity Covers Type Accepted
10 days from delivery Exchange for colors and size, Does not fit Exchange
If you have received a damaged or defective product or it is not as described, you can get an exchange within 10 days of delivery at no extra cost.

When does this guarantee not apply?

The guarantee does not extend to:
  • Digital products and services (Flipkart eBooks & music downloads).
  • Innerwear, Lingerie, Socks, Jewellery Freebies and Clothing Freebies
  • Damages due to misuse of product or Incidental damage due to malfunctioning of product.
  • Any consumable item which has been used or installed.
  • Products with tampered or missing serial numbers.
  • Items that are returned without original packaging, freebies or accessories.
  • Any damage / defect which are not covered under the manufacturer's warranty.
  • Made-to-order/Custom Jewellery.
More answers in our Cancellations & Returns »
Validity Covers Type Accepted
30 days from delivery Exchange for colors and size, Does not fit Exchange
If you have received a damaged or defective product or it is not as described, you can get an exchange within 30 days of delivery at no extra cost.

When does this guarantee not apply?

The guarantee does not extend to:
  • Digital products and services (Flipkart eBooks & music downloads).
  • Innerwear, Lingerie, Socks, Jewellery Freebies and Clothing Freebies
  • Damages due to misuse of product or Incidental damage due to malfunctioning of product.
  • Any consumable item which has been used or installed.
  • Products with tampered or missing serial numbers.
  • Items that are returned without original packaging, freebies or accessories.
  • Any damage / defect which are not covered under the manufacturer's warranty.
  • Made-to-order/Custom Jewellery.
More answers in our Cancellations & Returns»

Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages (English) (Paperback) Price: Rs. 522

Knowing how to create domain-specific languages (DSLs) can give you a huge productivity boost. Instead of writing code in a general-purpose programming language, you can first build a custom language tailored to make you efficient in a particular domain.

The key is understanding the common patterns found across language implementations. Language Implementation Patterns identifies and condenses the most common design patterns, providing sample implementations of each.

The pattern implementations use Java, but the patterns themselves are completely general. Some of the implementations use the well-known ANTLR parser generator, so readers will find this book an excellent source of ANTLR examples as well. But this book will benefit anyone interested in implementing languages, regardless of their tool of choice. Other language implementation books focus on compilers, which you rarely need in your daily life. Instead, Language Design Patterns shows you patterns you can use for all kinds of language applications.

You’ll learn to create configuration file readers, data readers, model-driven code generators, source-to-source translators, source analyzers, and interpreters. Each chapter groups related design patterns and, in each pattern, you’ll get hands-on experience by building a complete sample implementation. By the time you finish the book, you’ll know how to solve most common language implementation problems.

About the Author
Terence Parr is a professor of computer science and graduate program director at the University of San Francisco, where he continues to work on his ANTLR parser generator (http://www.antlr.org) and template engine (http://www.stringtemplate.org). Terence has consulted for and held various technical positions at companies such as IBM, Lockheed Missiles and Space, NeXT, and Renault Automation. Terence holds a Ph.D. in computer engineering from Purdue University and was a postdoctoral fellow at the Army High-Performance Computing Research Center at the University of Minnesota, where he built parallelizing FORTRAN source-to-source translators. He is the author of The Definitive ANTLR Reference.

Table of Contents
Acknowledgments

Preface

  • What to Expect from This Book
  • How This Book Is Organized
  • What You’ll Find in the Patterns
  • Who Should Read This Book
  • How to Read This Book
  • Languages and Tools Used in This Book

I Getting Started with Parsing

1 Language Applications Cracked Open

  • 1.1 The Big Picture
  • 1.2 A Tour of the Patterns
  • 1.3 Dissecting a Few Applications
  • 1.4 Choosing Patterns and Assembling Applications

2 Basic Parsing Patterns

  • 2.1 Identifying Phrase Structure
  • 2.2 Building Recursive-Descent Parsers
  • 2.3 Parser Construction Using a Grammar DSL
  • 2.4 Tokenizing Sentences
  • P.1. Mapping Grammars to Recursive-Descent Recognizers
  • P.2. LL(1) Recursive-Descent Lexer
  • P.3. LL(1) Recursive-Descent Parser
  • P.4. LL(k) Recursive-Descent Parser

3 Enhanced Parsing Patterns

  • 3.1 Parsing with Arbitrary Lookahead
  • 3.2 Parsing like a Pack Rat
  • 3.3 Directing the Parse with Semantic Information
  • P.5. Backtracking Parser
  • P.6. Memoizing Parser
  • P.7. Predicated Parser

II Analyzing Languages

4 Building Intermediate Form Trees

  • 4.1 Why We Build Trees
  • 4.2 Building Abstract Syntax Trees
  • 4.3 Quick Introduction to ANTLR
  • 4.4 Constructing ASTs with ANTLR Grammars
  • P.8. Parse Tree
  • P.9. Homogeneous AST
  • P.10. Normalized Heterogeneous AST
  • P.11. Irregular Heterogeneous AST

5 Walking and Rewriting Trees

  • 5.1 Walking Trees and Visitation Order
  • 5.2 Encapsulating Node Visitation Code
  • 5.3 Automatically Generating Visitors from Grammars
  • 5.4 Decoupling Tree Traversal from Pattern Matching
  • P.12. Embedded Heterogeneous Tree Walker
  • P.13. External Tree Visitor
  • P.14. Tree Grammar
  • P.15. Tree Pattern Matcher

6 Tracking and Identifying Program Symbols

  • 6.1 Collecting Information About Program Entities
  • 6.2 Grouping Symbols into Scopes
  • 6.3 Resolving Symbols
  • P.16. Symbol Table for Monolithic Scope
  • P.17. Symbol Table for Nested Scopes

7 Managing Symbol Tables for Data Aggregates

  • 7.1 Building Scope Trees for Structs
  • 7.2 Building Scope Trees for Classes
  • P.18. Symbol Table for Data Aggregates
  • P.19. Symbol Table for Classes

8 Enforcing Static Typing Rules

  • P.20. Computing Static Expression Types
  • P.21. Automatic Type Promotion
  • P.22. Enforcing Static Type Safety
  • P.23. Enforcing Polymorphic Type Safety

III Building Interpreters

9 Building High-Level Interpreters

  • 9.1 Designing High-Level Interpreter Memory Systems
  • 9.2 Tracking Symbols in High-Level Interpreters
  • 9.3 Processing Instructions
  • P.24. Syntax-Directed Interpreter
  • P.25. Tree-Based Interpreter

10 Building Bytecode Interpreters

  • 10.1 Programming Bytecode Interpreters
  • 10.2 Defining an Assembly Language Syntax
  • 10.3 Bytecode Machine Architecture
  • 10.4 Where to Go from Here
  • P.26. Bytecode Assembler
  • P.27. Stack-Based Bytecode Interpreter
  • P.28. Register-Based Bytecode Interpreter

IV Translating and Generating Languages

11 Translating Computer Languages

  • 11.1 Syntax-Directed Translation
  • 11.2 Rule-Based Translation
  • 11.3 Model-Driven Translation
  • 11.4 Constructing a Nested Output Model
  • P.29. Syntax-Directed Translator
  • P.30. Rule-Based Translator
  • P.31. Target-Specific Generator Classes

12 Generating DSLs with Templates

  • 12.1 Getting Started with StringTemplate
  • 12.2 Characterizing StringTemplate
  • 12.3 Generating Templates from a Simple Input Model
  • 12.4 Reusing Templates with a Different Input Model
  • 12.5 Using a Tree Grammar to Create Templates
  • 12.6 Applying Templates to Lists of Data
  • 12.7 Building Retargetable Translators

13 Putting It All Together

  • 13.1 Finding Patterns in Protein Structures
  • 13.2 Using a Script to Build 3D Scenes
  • 13.3 Processing XML
  • 13.4 Reading Generic Configuration Files
  • 13.5 Tweaking Source Code
  • 13.6 Adding a New Type to Java
  • 13.7 Pretty Printing Source Code
  • 13.8 Compiling to Machine Code

A. Bibliography

Index

 

Specifications of Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages (English) (Paperback)

Book Details
Publisher Shroff/pragmatic Bookshelf
ISBN-10 9350234266
Number of Pages 400 Pages
Publication Year 2011
Language English
ISBN-13 9789350234266
Binding Paperback
Contributors
Author Info Terence Parr is a professor of computer science and graduate program director at the University of San Francisco, where he continues to work on his ANTLR parser generator (http://www.antlr.org) and template engine (http://www.stringtemplate.org). Terence has consulted for and held various technical positions at companies such as IBM, Lockheed Missiles and Space, NeXT, and Renault Automation. Terence holds a Ph.D. in computer engineering from Purdue University and was a postdoctoral fellow at the Army High-Performance Computing Research Center at the University of Minnesota, where he built parallelizing FORTRAN source-to-source translators. He is the author of The Definitive ANTLR Reference.
Author Terence Parr

Please Note: All products sold on Flipkart are brand new and 100% genuine

Reviews of Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages (English) (Paperback)

Have you used this product?

Rate it now.

Write a Review

Recent top reviews

View all
★★★★★
★★★★★

Abhijith Reddy

Aug 25, 2012

First to review
The 'certified buyer' badge indicates that this user has purchased this product on flipkart.com.
certified buyer

A Great Buy

Provides a really good introduction for building domain specific languages, only caveat is that you would need to be acquainted with Antlr. The best thing about this book is it assumes no previous experience with any formal theory and starts right from the fundamentals. Building a language is an eno… (View complete review)

Top reviews

View all top reviews (1)

'Top Reviews' lists the most relevant product reviews only. Show ALL instead?

★★★★★
★★★★★

Abhijith Reddy

Aug 25, 2012

First to review
The 'certified buyer' badge indicates that this user has purchased this product on flipkart.com.
certified buyer

A Great Buy

Provides a really good introduction for building domain specific languages, only caveat is that you would need to be acquainted with Antlr. The best thing about this book is it assumes no previous experience with any formal theory and starts right from the fundamentals. Building a language is an enormously rewarding experience and any one who is beginning should definitely get this book.
 

PAYMENT METHOD

POWERED BY
Loading ...