Programming DSLs in Kotlin

Design Expressive and Robust Special Purpose Code

by: Venkat Subramaniam

Published 2021-03-22
Internal code vsdsl
Print status In Print
Pages 74
User level Intermediate
Keywords Kotlin, DSLs, functional programming, Java, JVM, JVM applications, Android applications, Android development
Related titles
ISBN 9781680507935
Other ISBN Channel epub: 9781680508260
Channel PDF: 9781680508277
Kindle: 9781680508246
Safari: 9781680508253
Kindle: 9781680508246
BISACs COM051280 COMPUTERS / Programming Languages / Java
COM042000 COMPUTERS / Natural Language Processing
COM042000 COMPUTERS / Natural Language Processing

Highlight

Creating your own domain-specific languages (DSLs) is both challenging and exhilarating. DSLs give users a way to interact with your applications more effectively, and Kotlin is a fantastic language to serve as a host for internal DSLs, because it greatly reduces the pain and effort of design and development. But implementing DSLs on top of Kotlin requires understanding the key strengths of the language and knowing how to apply them appropriately. Learn to avoid the pitfalls and leverage the language while creating your own elegant, fluent, concise, and robust DSLs using Kotlin.

Description

Internal DSLs remove the burdens of implementing a full blown language compiler. The host language quickly becomes your ally to creating DSLs, but the syntax you can choose for your DSLs is limited to what the host language allows. You can work around the limitations by tactfully bending the rules and exploiting the language capabilities. Learn the power of Kotlin and ways to design with it, in the context of crafting internal DSLs.

Start by learning ways to exploit the flexibilities of Kotlin to make your DSLs fluent, expressive, and concise. Then pick up techniques to extend the language with domain specific properties and functions. Quickly move ahead to tie your DSL snippets into the runtime environment and context of execution of your applications. Design to prevent any non-sensical syntax in your DSL that may otherwise be valid in the host language. Finally, learn techniques to gracefully handle errors. Practice using the multiple examples that are included in each chapter.

Fire up your editor and follow along each example to become proficient in designing and implementing your own internal DSLs using Kotlin.

Contents and Extracts