Stvad / pyconie_dsl

Materials/examples for the PyconIE 2018 talk: Domain specific languages in Python. Why and How

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Domain specific languages in Python. The Why and How.

πŸ™‚                  πŸ™‚          πŸ™‚πŸ™‚πŸ™‚πŸ˜›πŸ™‚πŸ™‚
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ¦„πŸ¦„πŸ¦„πŸ¦„πŸ¦„πŸ¦„πŸ¦„πŸ¦„πŸ¦„πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚                πŸ˜›
πŸ™‚                  πŸ™‚           πŸ™‚πŸ™‚πŸ™‚πŸ™‚πŸ™‚πŸ™‚

created via Character Canvas DSL


This repo contains materials and examples for the PyconIE 2018 talk: Domain specific languages in Python. The Why and How

You can find the presentation here (pdf version).

Video from the conference was lost to history, but you can listen to pre-conference recording & read it's transcript

Examples

  1. State Machine/Home automation DSL. The example is inspired by the "Gothic security system" from DSL book by Martin Fowler
  2. Character Canvas/Drawing Board/Turtle DSL πŸ¦„. An example DSL to demonstrate the utility of operators/magic method overloading.
  3. Fabric-inspired contexts + dynamic field generation
  4. HTML
  5. Defining global executing context: runner, dsl-file
  6. Defining local execution context: Implicit 'self' emulation
  7. Elixir-style pipes usage example. Demonstrates one of the applications of import time AST manipulation.

References

  1. Domain-Specific Languages by Martin Fowler

  2. The library that implements Elixir style pipes

  3. Macropy A framework to help you with import time AST manipulation.

  4. SSM Document Generator (the accidental DSL)

  5. DSLs mentioned in the talk:

  6. Various other resources I found useful while doing research for the talk:


Python is Dynamic!

About

Materials/examples for the PyconIE 2018 talk: Domain specific languages in Python. Why and How

License:Apache License 2.0


Languages

Language:Python 100.0%