domain-specific language

back to index

description: computer language specialized to a particular application domain

61 results

Real World Haskell

by Bryan O'Sullivan, John Goerzen, Donald Stewart and Donald Bruce Stewart  · 2 Dec 2008  · 1,065pp  · 229,099 words

accumulate garbage file handles, while the latter gets rid of exceptions. Exercise Is the order in which we call bracket and handle important? Why? A Domain-Specific Language for Predicates Let’s take a stab at writing a predicate that will check for a C++ source file that is over 128 KB in

better. Let’s create some code that will help us write more concise predicates. Sometimes, this kind of library is referred to as an embedded domain-specific language: we use our programming language’s native facilities (hence embedded) to write code that lets us solve some narrow problem (hence domain-specific) particularly elegantly

` 131072) We’ve added one final combinator, liftPath, since manipulating filenames is such a common activity. Defining and Using New Operators We can take our domain-specific language further by defining new infix operators: -- file: ch09/BetterPredicate.hs (==?) = equalP (&&?) = andP (>?) = greaterP myTest3 = (liftPath takeExtension ==? ".cpp") &&? (sizeP >? 131072) We chose names such as (==?) for

of Either elem function, Searching Lists elements function, Generating Test Data ELF object files, Binary I/O and Qualified Imports else keyword, Conditional Evaluation embedded domain specific languages, A Domain-Specific Language for Predicates–Controlling Traversal EmptyDataDecls language extension, Typed Pointers enclose function, Pretty Printing a String endBy function, The sepBy and endBy Combinators #enum construct

Handles–Extended Example: Functional I/O and Temporary Files, Deleting and Renaming Files, Temporary Files, Efficient File Processing, Filename Matching, Sizing a File Safely–A Domain-Specific Language for Predicates, Directory and File Information, File Modification Times deleting/renaming, Deleting and Renaming Files filename matching, Filename Matching modification times, File Modification Times processing

, Efficient File Processing (see file processing) sizing safely, Sizing a File Safely–A Domain-Specific Language for Predicates System.Directory module, using, Directory and File Information temporary, Temporary Files filesystems, I/O Case Study: A Library for Searching the Filesystem–Common

case, Explicit Recursion infix form, using arithmetic operators and, Simple Arithmetic infix functions, Infix Functions :info command (ghci), Operator Precedence and Associativity InfoP type, A Domain-Specific Language for Predicates, Controlling Traversal init function, Basic List Manipulation “injector” functions, Looking for Shared Patterns input/output, I/O (see I/O) insert function, Getting

HTTP Request PostgreSQL, Overview of HDBC predicates, Conditional Evaluation, Predicates: From Poverty to Riches, While Remaining Pure–Sizing a File Safely, A Domain-Specific Language for Predicates–Controlling Traversal domain-specific language for, A Domain-Specific Language for Predicates–Controlling Traversal I/O, Predicates: From Poverty to Riches, While Remaining Pure–Sizing a File Safely prefix form, Simple Arithmetic

Hands-On Functional Programming in RUST

by Andrew Johnson  · 29 May 2018  · 303pp  · 57,177 words

the macros, so of course we can call into the macro that we are defining. Recursive macros could be a quick way to define a domain-specific language. Consider the following code snippet, in intro_metaprogramming.rs: enum DSLTerm { TVar { symbol: String }, TAbs { param: String, body: Box<DSLTerm> }, TApp { f: Box<DSLTerm>, x

, what would we do if we wanted to separate the code step from the execution step? To accomplish this, we start building something called a domain-specific language. For a concrete example, consider that you are building a JIT (dynamically compiled) interpreter for JavaScript. The Mozilla project has several projects dedicated to JS

PostGIS in Action, 2nd Edition

by Regina O. Obe and Leo S. Hsu  · 2 May 2015

process. In the next sections, we’ll explore PL languages. The marriage of PL languages and SQL combines the expressiveness of an all-purpose or domain-specific language suited for certain classes of problems with the power of SQL. 16.2 Extending PostgreSQL with PLs One thing that makes PostgreSQL unique among the

The Architecture of Open Source Applications

by Amy Brown and Greg Wilson  · 24 May 2011  · 834pp  · 180,700 words

configuration system, tailored to their own build and test systems, and then layers on the same set of features above that system. Therefore, building a domain-specific language (DSL) capable of representing the options used by the few dozen commonly used build and test tool chains would go a long way toward simplifying

that exist between instructions and their register operands. LLVM's solution to this is for each target to provide a target description in a declarative domain-specific language (a set of .td files) processed by the tblgen tool. The (simplified) build process for the x86 target is shown in Figure 11.5. Figure

ZeroMQ

by Pieter Hintjens  · 12 Mar 2013  · 1,025pp  · 150,187 words

interface description language and code generators? When we write a GSL model, we can use any semantics we like. In other words, we can invent domain-specific languages on the spot. I’ll invent a couple—see if you can guess what they represent: slideshow name = Cookery level 3 page title = French Cuisine

Exploring ES6 - Upgrade to the next version of JavaScript

by Axel Rauschmayer  · 3 Oct 2015

good for, let’s look at examples. You’ll find that tagged templates allow you to implement custom embedded sub-languages (which are sometimes called domain-specific languages) with little effort, because JavaScript does much of the parsing for you. You only have to write a function that receives the results. Some of

The Art of UNIX Programming

by Eric S. Raymond  · 22 Sep 2003  · 612pp  · 187,431 words

tradition of hosting little languages specialized for a particular application domain, languages that can enable you to drastically reduce the line count of your programs. Domain-specific language examples include the numerous Unix typesetting languages (troff, eqn, tbl, pic, grap), shell utilities (awk, sed, dc, bc), and software development tools (make, yacc, lex

). There is a fuzzy boundary between domain-specific languages and the more flexible sort of application run-control file (sendmail, BIND, X); another with data-file formats; and another with scripting languages (which we

'll survey in Chapter 14). Historically, domain-specific languages of this kind have been called ‘little languages’ or ‘minilanguages’ in the Unix world, because early examples were small and low in complexity relative to

Alternate Hard And Soft Layers and Scripted Components design patterns. An interesting survey of design styles and techniques in minilanguages is Notable Design Patterns for Domain-Specific Languages [Spinellis]. Choosing the Right Complexity Level The first important thing to bear in mind when designing a minilanguage is, as usual, to keep it as

your application design with the proper implementation language(s) can make an immense difference in your productivity. Therefore the Unix tradition encourages the design of domain-specific languages (as we mentioned in Chapter 7 and Chapter 9) and what are now generally called scripting languages—those designed specifically to glue together other applications

now-standard language for controlling imaging printers) with enthusiasm as soon as the language documentation became available; it fits neatly in the Unix tradition of domain-specific languages. Modern open-source Unix systems have excellent PostScript and Portable Document Format (PDF) tools. Another consequence of this history is that Unix documentation tools have

. Learning Perl. 3rd Edition. O'Reilly & Associates. 2001. ISBN 0-596-00132-0. [Spinellis] Journal of Systems and Software. Diomidis Spinellis. “Notable Design Patterns for Domain-Specific Languages”. 56. (1). February 2001. p. 91-99. Available on the Web. [Stallman] Richard M. Stallman. The GNU Manifesto. Available on the Web. [Stephenson] Neal Stephenson

Developing Web Applications with Haskell and Yesod

by Michael Snoyman  · 22 Apr 2012  · 485pp  · 74,211 words

a type-safe URL) and creates two-way conversion functions. Coding this more advanced system manually is tedious and error prone. Therefore, Yesod defines a Domain Specific Language (DSL) for specifying routes, and provides Template Haskell functions to convert this DSL to Haskell code. This chapter will explain the syntax of the routing

Monadic Design Patterns for the Web

by L.G. Meredith  · 214pp  · 14,382 words

the category theory literature) provided a language-level abstraction for structuring side-effecting computations in a functional setting. In today’s parlance, Moggi found a domain-specific language (DSL) for organizing side-effecting computations in an ambient (or hosting) functional language. Once Moggi made this discovery, another researcher named Phil Wadler realized that

Eloquent JavaScript: A Modern Introduction to Programming

by Marijn Haverbeke  · 15 Nov 2018  · 560pp  · 135,629 words

-foot move right-foot behavior attack perform when Godzilla in-view actions fire laser-eyes launch arm-rockets This is what is usually called a domain-specific language, a language tailored to express a narrow domain of knowledge. Such a language can be more expressive than a general-purpose language because it is

, 273–276, 287, 288, 305 interface, 229–230 modification, 232–233 querying, 231–232, 239 tree, 229 dom property, 335 domain, 221, 313, 316, 327 domain-specific language, 84, 132, 145, 214, 239 DOMDisplay class, 273, 301 dominant direction (exercise), 95, 411 done property, 346 doneAt property, 346 dot character, see period character

Scala in Depth

by Tom Kleenex and Joshua Suereth  · 2 Jan 2010  · 554pp  · 108,035 words

Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement

by Eric Redmond, Jim Wilson and Jim R. Wilson  · 7 May 2012  · 713pp  · 93,944 words

The Linux kernel primer: a top-down approach for x86 and PowerPC architectures

by Claudia Salzberg Rodriguez, Gordon Fischer and Steven Smolski  · 15 Nov 2005  · 1,202pp  · 144,667 words

Reactive Messaging Patterns With the Actor Model: Applications and Integration in Scala and Akka

by Vaughn Vernon  · 16 Aug 2015

HBase: The Definitive Guide

by Lars George  · 29 Aug 2011

Programming Android

by Zigurd Mednieks, Laird Dornin, G. Blake Meike and Masumi Nakamura  · 15 Jul 2011

The Practice of Cloud System Administration: DevOps and SRE Practices for Web Services, Volume 2

by Thomas A. Limoncelli, Strata R. Chalup and Christina J. Hogan  · 27 Aug 2014  · 757pp  · 193,541 words

Programming Scala

by Unknown  · 2 Jan 2010  · 448pp  · 71,301 words

Scala in Action

by Nilanjan Raychaudhuri  · 27 Mar 2012

The Art of Monitoring

by James Turnbull  · 1 Dec 2014  · 514pp  · 111,012 words

Programming in Haskell

by Graham Hutton  · 31 Aug 2016

Programming in Scala

by Martin Odersky, Lex Spoon and Bill Venners  · 15 Jan 2008  · 754pp  · 48,930 words

Practical OCaml

by Joshua B. Smith  · 30 Sep 2006

Masterminds of Programming: Conversations With the Creators of Major Programming Languages

by Federico Biancuzzi and Shane Warden  · 21 Mar 2009  · 496pp  · 174,084 words

Engineering Security

by Peter Gutmann

Hands-On RESTful API Design Patterns and Best Practices

by Harihara Subramanian  · 31 Jan 2019  · 422pp  · 86,414 words

Mastering Blockchain, Second Edition

by Imran Bashir  · 28 Mar 2018

Mastering Ethereum: Building Smart Contracts and DApps

by Andreas M. Antonopoulos and Gavin Wood Ph. D.  · 23 Dec 2018  · 960pp  · 125,049 words

Software Design for Flexibility

by Chris Hanson and Gerald Sussman  · 17 Feb 2021

Solr 1.4 Enterprise Search Server

by David Smiley and Eric Pugh  · 15 Nov 2009  · 648pp  · 108,814 words

Coders at Work

by Peter Seibel  · 22 Jun 2009  · 1,201pp  · 233,519 words

The Pragmatic Programmer

by Andrew Hunt and Dave Thomas  · 19 Oct 1999  · 509pp  · 92,141 words

Clojure Programming

by Chas Emerick, Brian Carper and Christophe Grand  · 15 Aug 2011  · 999pp  · 194,942 words

Hadoop: The Definitive Guide

by Tom White  · 29 May 2009  · 933pp  · 205,691 words

Relevant Search: With Examples Using Elasticsearch and Solr

by Doug Turnbull and John Berryman  · 30 Apr 2016  · 593pp  · 118,995 words

The Productive Programmer

by Neal Ford  · 8 Dec 2008  · 224pp  · 48,804 words

The Joy of Clojure

by Michael Fogus and Chris Houser  · 28 Nov 2010  · 706pp  · 120,784 words

Zero to Sold: How to Start, Run, and Sell a Bootstrapped Business

by Arvid Kahl  · 24 Jun 2020  · 461pp  · 106,027 words

Essential SQLAlchemy

by Rick Copeland  · 4 Jun 2008  · 357pp  · 63,071 words

PostGIS in Action

by Regina O. Obe and Leo S. Hsu  · 2 May 2015

Clean Code: A Handbook of Agile Software Craftsmanship

by Robert C. Martin  · 1 Jan 2007  · 462pp  · 172,671 words

Python Tricks: The Book

by Dan Bader  · 14 Oct 2017  · 262pp  · 60,248 words

Rise of the Machines: A Cybernetic History

by Thomas Rid  · 27 Jun 2016  · 509pp  · 132,327 words

97 Things Every Programmer Should Know

by Kevlin Henney  · 5 Feb 2010  · 292pp  · 62,575 words

Programming Scala: tackle multicore complexity on the JVM

by Venkat Subramaniam  · 1 May 2009  · 226pp  · 17,533 words

Programming in Lua, Fourth Edition

by Roberto Ierusalimschy  · 14 Jul 2016  · 489pp  · 117,470 words

Seeking SRE: Conversations About Running Production Systems at Scale

by David N. Blank-Edelman  · 16 Sep 2018

Puppet Essentials

by Felix Frank  · 20 Nov 2014  · 234pp  · 63,522 words

Pragmatic Guide to JavaScript

by Christophe Porteneuve  · 15 Nov 2010  · 141pp  · 9,896 words

Creating Development Environments With Vagrant - Second Edition

by Michael Peacock  · 26 Feb 2015  · 161pp  · 30,412 words

CTOs at Work

by Scott Donaldson, Stanley Siegel and Gary Donaldson  · 13 Jan 2012  · 458pp  · 135,206 words

Programming Ruby 1.9: The Pragmatic Programmer's Guide

by Dave Thomas, Chad Fowler and Andy Hunt  · 15 Dec 2000  · 936pp  · 85,745 words

Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design

by Diomidis Spinellis and Georgios Gousios  · 30 Dec 2008  · 680pp  · 157,865 words

Functional Programming in Scala

by Paul Chiusano and Rúnar Bjarnason  · 13 Sep 2014

Architecting Modern Data Platforms: A Guide to Enterprise Hadoop at Scale

by Jan Kunigk, Ian Buss, Paul Wilkinson and Lars George  · 8 Jan 2019  · 1,409pp  · 205,237 words

Kanban: Successful Evolutionary Change for Your Technology Business

by David J. Anderson  · 6 Apr 2010  · 318pp  · 78,451 words

ClojureScript: Up and Running

by Stuart Sierra and Luke Vanderhart  · 24 Oct 2012  · 135pp  · 31,098 words

Ansible: Up and Running: Automating Configuration Management and Deployment the Easy Way

by Lorin Hochstein  · 8 Dec 2014  · 761pp  · 80,914 words

This Machine Kills Secrets: Julian Assange, the Cypherpunks, and Their Fight to Empower Whistleblowers

by Andy Greenberg  · 12 Sep 2012  · 461pp  · 125,845 words

The Docker Book

by James Turnbull  · 13 Jul 2014  · 265pp  · 60,880 words

Managing Infrastructure With Puppet

by James Loope  · 15 Jun 2011  · 46pp  · 6,267 words