Previous | Next --- Slide 15 of 73
Back to Lecture Thumbnails
suninhouse

DSL tends to provide semantics that matches more closely with problems in a specific domain, and thus making it easier for converting a domain-specific problem into an efficient program.

lonelymoon

Because programming in heterogeneous system is challenging, our target is DSL which has productivity and performance while giving up generality. The DSL is usually high-level, declarative, and deterministic. In the lecture, Kayvon said "deterministic" means the program always generates the same output on every run and non-deterministic programs might generate different outputs. I guess without deterministic characteristics, programmers suffer from unexpected results which costs a lot of efforts.

a7hu

The key idea of using DSL to improve system performance is compiler optimization. Because of the restricted expressiveness of DSL, a DSL compiler can do optimizations that aren't accessible to a general purpose programming language and a general compiler.

tspint

Domain Specific Languages (DSL) are designed to optimize for performance and productivity. This means that writing applications can be both easy and performant, but the language will often be made for a specific "domain", such as machine learning, matrix processing, etc. and will not necessarily be easy to program or performant for non-domain specific applications. This is where DSLs sacrifice generality.

Please log in to leave a comment.