Submit Search
Upload
Writing DSL in Clojure
•
8 likes
•
6,539 views
Misha Kozik
Follow
clojure, dsl, tree, programming
Read less
Read more
Software
Report
Share
Report
Share
1 of 24
Download now
Download to read offline
Recommended
Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...
Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...
Srinath Reddy
Lift SSIS package to Azure Data Factory V2
Lift SSIS package to Azure Data Factory V2
Manjeet Singh
Inside open metadata—the deep dive
Inside open metadata—the deep dive
DataWorks Summit
Open Source SQL - beyond parsers: ZetaSQL and Apache Calcite
Open Source SQL - beyond parsers: ZetaSQL and Apache Calcite
Julian Hyde
Apache cassandra
Apache cassandra
MARTINILDEFONSOTORRES
OSA Con 2022 - Apache Iceberg_ An Architectural Look Under the Covers - Alex ...
OSA Con 2022 - Apache Iceberg_ An Architectural Look Under the Covers - Alex ...
Altinity Ltd
Secure, Build and Deduplicate Your Data Lake Data with Amazon Lake Formation
Secure, Build and Deduplicate Your Data Lake Data with Amazon Lake Formation
Amazon Web Services
Hudi architecture, fundamentals and capabilities
Hudi architecture, fundamentals and capabilities
Nishith Agarwal
Recommended
Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...
Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...
Srinath Reddy
Lift SSIS package to Azure Data Factory V2
Lift SSIS package to Azure Data Factory V2
Manjeet Singh
Inside open metadata—the deep dive
Inside open metadata—the deep dive
DataWorks Summit
Open Source SQL - beyond parsers: ZetaSQL and Apache Calcite
Open Source SQL - beyond parsers: ZetaSQL and Apache Calcite
Julian Hyde
Apache cassandra
Apache cassandra
MARTINILDEFONSOTORRES
OSA Con 2022 - Apache Iceberg_ An Architectural Look Under the Covers - Alex ...
OSA Con 2022 - Apache Iceberg_ An Architectural Look Under the Covers - Alex ...
Altinity Ltd
Secure, Build and Deduplicate Your Data Lake Data with Amazon Lake Formation
Secure, Build and Deduplicate Your Data Lake Data with Amazon Lake Formation
Amazon Web Services
Hudi architecture, fundamentals and capabilities
Hudi architecture, fundamentals and capabilities
Nishith Agarwal
Building Data Quality Audit Framework using Delta Lake at Cerner
Building Data Quality Audit Framework using Delta Lake at Cerner
Databricks
Part 3 - Modern Data Warehouse with Azure Synapse
Part 3 - Modern Data Warehouse with Azure Synapse
Nilesh Gule
RDBMS vs NoSQL
RDBMS vs NoSQL
Murat Çakal
Apache Iceberg: An Architectural Look Under the Covers
Apache Iceberg: An Architectural Look Under the Covers
ScyllaDB
Apache hive
Apache hive
pradipbajpai68
Data Lake Overview
Data Lake Overview
James Serra
Espresso: LinkedIn's Distributed Data Serving Platform (Paper)
Espresso: LinkedIn's Distributed Data Serving Platform (Paper)
Amy W. Tang
Apache Iceberg Presentation for the St. Louis Big Data IDEA
Apache Iceberg Presentation for the St. Louis Big Data IDEA
Adam Doyle
Strata NY 2018: The deconstructed database
Strata NY 2018: The deconstructed database
Julien Le Dem
Facebook Presto presentation
Facebook Presto presentation
Cyanny LIANG
Hadoop Strata Talk - Uber, your hadoop has arrived
Hadoop Strata Talk - Uber, your hadoop has arrived
Vinoth Chandar
Zookeeper vs Raft: Stateful distributed coordination with HA and Fault Tolerance
Zookeeper vs Raft: Stateful distributed coordination with HA and Fault Tolerance
Alluxio, Inc.
Overview SQL Server 2019
Overview SQL Server 2019
Juan Fabian
Apache Hudi: The Path Forward
Apache Hudi: The Path Forward
Alluxio, Inc.
A Thorough Comparison of Delta Lake, Iceberg and Hudi
A Thorough Comparison of Delta Lake, Iceberg and Hudi
Databricks
Dynamic filtering for presto join optimisation
Dynamic filtering for presto join optimisation
Ori Reshef
HA/DR options with SQL Server in Azure and hybrid
HA/DR options with SQL Server in Azure and hybrid
James Serra
Apache Hadoop 3
Apache Hadoop 3
Cloudera, Inc.
Apache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic Datasets
Alluxio, Inc.
Hive User Meeting August 2009 Facebook
Hive User Meeting August 2009 Facebook
ragho
DSL in Clojure
DSL in Clojure
Misha Kozik
Clojure for Java developers
Clojure for Java developers
John Stevenson
More Related Content
What's hot
Building Data Quality Audit Framework using Delta Lake at Cerner
Building Data Quality Audit Framework using Delta Lake at Cerner
Databricks
Part 3 - Modern Data Warehouse with Azure Synapse
Part 3 - Modern Data Warehouse with Azure Synapse
Nilesh Gule
RDBMS vs NoSQL
RDBMS vs NoSQL
Murat Çakal
Apache Iceberg: An Architectural Look Under the Covers
Apache Iceberg: An Architectural Look Under the Covers
ScyllaDB
Apache hive
Apache hive
pradipbajpai68
Data Lake Overview
Data Lake Overview
James Serra
Espresso: LinkedIn's Distributed Data Serving Platform (Paper)
Espresso: LinkedIn's Distributed Data Serving Platform (Paper)
Amy W. Tang
Apache Iceberg Presentation for the St. Louis Big Data IDEA
Apache Iceberg Presentation for the St. Louis Big Data IDEA
Adam Doyle
Strata NY 2018: The deconstructed database
Strata NY 2018: The deconstructed database
Julien Le Dem
Facebook Presto presentation
Facebook Presto presentation
Cyanny LIANG
Hadoop Strata Talk - Uber, your hadoop has arrived
Hadoop Strata Talk - Uber, your hadoop has arrived
Vinoth Chandar
Zookeeper vs Raft: Stateful distributed coordination with HA and Fault Tolerance
Zookeeper vs Raft: Stateful distributed coordination with HA and Fault Tolerance
Alluxio, Inc.
Overview SQL Server 2019
Overview SQL Server 2019
Juan Fabian
Apache Hudi: The Path Forward
Apache Hudi: The Path Forward
Alluxio, Inc.
A Thorough Comparison of Delta Lake, Iceberg and Hudi
A Thorough Comparison of Delta Lake, Iceberg and Hudi
Databricks
Dynamic filtering for presto join optimisation
Dynamic filtering for presto join optimisation
Ori Reshef
HA/DR options with SQL Server in Azure and hybrid
HA/DR options with SQL Server in Azure and hybrid
James Serra
Apache Hadoop 3
Apache Hadoop 3
Cloudera, Inc.
Apache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic Datasets
Alluxio, Inc.
Hive User Meeting August 2009 Facebook
Hive User Meeting August 2009 Facebook
ragho
What's hot
(20)
Building Data Quality Audit Framework using Delta Lake at Cerner
Building Data Quality Audit Framework using Delta Lake at Cerner
Part 3 - Modern Data Warehouse with Azure Synapse
Part 3 - Modern Data Warehouse with Azure Synapse
RDBMS vs NoSQL
RDBMS vs NoSQL
Apache Iceberg: An Architectural Look Under the Covers
Apache Iceberg: An Architectural Look Under the Covers
Apache hive
Apache hive
Data Lake Overview
Data Lake Overview
Espresso: LinkedIn's Distributed Data Serving Platform (Paper)
Espresso: LinkedIn's Distributed Data Serving Platform (Paper)
Apache Iceberg Presentation for the St. Louis Big Data IDEA
Apache Iceberg Presentation for the St. Louis Big Data IDEA
Strata NY 2018: The deconstructed database
Strata NY 2018: The deconstructed database
Facebook Presto presentation
Facebook Presto presentation
Hadoop Strata Talk - Uber, your hadoop has arrived
Hadoop Strata Talk - Uber, your hadoop has arrived
Zookeeper vs Raft: Stateful distributed coordination with HA and Fault Tolerance
Zookeeper vs Raft: Stateful distributed coordination with HA and Fault Tolerance
Overview SQL Server 2019
Overview SQL Server 2019
Apache Hudi: The Path Forward
Apache Hudi: The Path Forward
A Thorough Comparison of Delta Lake, Iceberg and Hudi
A Thorough Comparison of Delta Lake, Iceberg and Hudi
Dynamic filtering for presto join optimisation
Dynamic filtering for presto join optimisation
HA/DR options with SQL Server in Azure and hybrid
HA/DR options with SQL Server in Azure and hybrid
Apache Hadoop 3
Apache Hadoop 3
Apache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic Datasets
Hive User Meeting August 2009 Facebook
Hive User Meeting August 2009 Facebook
Viewers also liked
DSL in Clojure
DSL in Clojure
Misha Kozik
Clojure for Java developers
Clojure for Java developers
John Stevenson
Clojure: an overview
Clojure: an overview
Larry Diehl
lightweight SOA with web widgets
lightweight SOA with web widgets
Phil Calçado
Clojure, Web and Luminus
Clojure, Web and Luminus
Edward Tsech
Reactive Machine Learning and Functional Programming
Reactive Machine Learning and Functional Programming
Jeff Smith
ETL in Clojure
ETL in Clojure
Dmitriy Morozov
A Field Guide to DSL Design in Scala
A Field Guide to DSL Design in Scala
Tomer Gabel
Sentiments Improvement
Sentiments Improvement
Misha Kozik
Hammurabi
Hammurabi
Mario Fusco
3 years with Clojure
3 years with Clojure
Michael Klishin
Clojure: The Art of Abstraction
Clojure: The Art of Abstraction
Alex Miller
Getting started with Clojure
Getting started with Clojure
John Stevenson
Domain-Specific Languages
Domain-Specific Languages
Javier Canovas
동시성 프로그래밍 하기 좋은 Clojure
동시성 프로그래밍 하기 좋은 Clojure
Eunmin Kim
Data science Big Data
Data science Big Data
sreekanthricky
Railway Oriented Programming
Railway Oriented Programming
Scott Wlaschin
Creating Domain Specific Languages in Python
Creating Domain Specific Languages in Python
Siddhi
Viewers also liked
(18)
DSL in Clojure
DSL in Clojure
Clojure for Java developers
Clojure for Java developers
Clojure: an overview
Clojure: an overview
lightweight SOA with web widgets
lightweight SOA with web widgets
Clojure, Web and Luminus
Clojure, Web and Luminus
Reactive Machine Learning and Functional Programming
Reactive Machine Learning and Functional Programming
ETL in Clojure
ETL in Clojure
A Field Guide to DSL Design in Scala
A Field Guide to DSL Design in Scala
Sentiments Improvement
Sentiments Improvement
Hammurabi
Hammurabi
3 years with Clojure
3 years with Clojure
Clojure: The Art of Abstraction
Clojure: The Art of Abstraction
Getting started with Clojure
Getting started with Clojure
Domain-Specific Languages
Domain-Specific Languages
동시성 프로그래밍 하기 좋은 Clojure
동시성 프로그래밍 하기 좋은 Clojure
Data science Big Data
Data science Big Data
Railway Oriented Programming
Railway Oriented Programming
Creating Domain Specific Languages in Python
Creating Domain Specific Languages in Python
Recently uploaded
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
Wave PLM
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
joe51371421
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
Evangelist Apps https://twitter.com/EvangelistSW/
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
kalichargn70th171
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
MyIntelliSource, Inc.
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
ThousandEyes
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
shikhaohhpro
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
OnePlan Solutions
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Alberto González Trastoy
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
gurkirankumar98700
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
Delhi Call girls
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Steffen Staab
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
harshavardhanraghave
DNT_Corporate presentation know about us
DNT_Corporate presentation know about us
Dynamic Netsoft
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
Jhone kinadey
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
Andolasoft Inc
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
ComplianceQuest1
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
kellynguyen01
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
Arshad QA
Recently uploaded
(20)
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
DNT_Corporate presentation know about us
DNT_Corporate presentation know about us
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
Writing DSL in Clojure
1.
DSL in Clojure Misha
Kozik @mishadoff
2.
developer domain expert
3.
Abstraction
4.
not Turing Complete
5.
DSL Example: SQL Apache
Calcite
6.
DSL Example: Hadoop
7.
DSL Example: Cascading
8.
DSL Example: Cascalog
9.
DSL Example: Hiccup
10.
DSL Example: Lein
11.
DSL Example: Regexp
12.
DSL Example: TimeUnit
13.
DSL Example: ->
14.
Demo: Binary Tree
15.
0 1 2 3 4
5 6 7 98NIL NIL NIL Demo: Binary Tree
16.
Internal DSL: Tree …well
that’s verbose…
17.
Internal DSL: Tree …from
Java with Love…
18.
Internal DSL: Tree i
-> (2i + 1, 2i + 2)
19.
Internal DSL: Tree Lisp
way
20.
Internal DSL: Tree
21.
External DSL: Tree wow,
such declarative
22.
Generative DSL: Tree
23.
Summary
24.
Questions?
Download now