Matches in SemOpenAlex for { <https://semopenalex.org/work/W3186708284> ?p ?o ?g. }
Showing items 1 to 81 of
81
with 100 items per page.
- W3186708284 abstract "Domain-specific languages (DSLs) are touted as both easy to embed in programs and easy to optimize. Yet these goals are often in tension. Embedded or internal DSLs fit naturally with a host language, while inheriting the host's performance characteristics. External DSLs can use external optimizers and languages but sit apart from the host. We present Sham, a toolkit designed to enable internal DSLs with high performance. Sham provides a domain-specific language (embedded in Racket) for implementing other high-performance DSLs, with transparent compilation to assembly code at runtime. Sham is well suited as both a compilation target for other embedded DSLs and for transparently replacing DSL support code with faster versions. Sham provides seamless inter-operation with its host language without requiring any additional effort from its users. Sham also provides a framework for defining language syntax which implements Sham's own language interface as well. We validate Sham's design on a series of case studies, ranging from Krishnamurthi's classic automata DSL to a sound synthesis DSL and a probabilistic programming language. All of these are existing DSLs where we replaced the backend using Sham, resulting in major performance gains. We present an example-driven description of how Sham can smoothly enhance an existing DSL into a high-performance one. When compared to existing approaches for implementing high-performance DSLs, Sham's design aims for both simplicity and programmer control. This makes it easier to port our techniques to other languages and frameworks, or borrow Sham's innovations `a la carte without adopting the whole approach. Sham builds a sophisticated and powerful DSL construction toolkit atop fundamental language features including higher-order functions, data structures, and a foreign-function interface (FFI), all readily available in other languages. Furthermore, Sham's approach allows DSL developers to simply write functions, either using Sham or generating Sham, without needing to work through complex staging or partial evaluation systems." @default.
- W3186708284 created "2021-08-02" @default.
- W3186708284 creator A5009804384 @default.
- W3186708284 creator A5021546193 @default.
- W3186708284 creator A5043677781 @default.
- W3186708284 date "2021-07-15" @default.
- W3186708284 modified "2023-10-17" @default.
- W3186708284 title "Sham: A DSL for Fast DSLs" @default.
- W3186708284 cites W1550206324 @default.
- W3186708284 cites W156767209 @default.
- W3186708284 cites W2000525071 @default.
- W3186708284 cites W2001537678 @default.
- W3186708284 cites W2033765726 @default.
- W3186708284 cites W2083310717 @default.
- W3186708284 cites W2096152098 @default.
- W3186708284 cites W2104266030 @default.
- W3186708284 cites W2116330964 @default.
- W3186708284 cites W2124350566 @default.
- W3186708284 cites W2130179171 @default.
- W3186708284 cites W2132598718 @default.
- W3186708284 cites W2136952590 @default.
- W3186708284 cites W2143932292 @default.
- W3186708284 cites W2154697693 @default.
- W3186708284 cites W2162898443 @default.
- W3186708284 cites W2166212584 @default.
- W3186708284 cites W2293197344 @default.
- W3186708284 cites W2395654200 @default.
- W3186708284 cites W2624999081 @default.
- W3186708284 cites W2787976344 @default.
- W3186708284 cites W2898442528 @default.
- W3186708284 cites W2966091573 @default.
- W3186708284 doi "https://doi.org/10.22152/programming-journal.org/2022/6/4" @default.
- W3186708284 hasPublicationYear "2021" @default.
- W3186708284 type Work @default.
- W3186708284 sameAs 3186708284 @default.
- W3186708284 citedByCount "0" @default.
- W3186708284 crossrefType "journal-article" @default.
- W3186708284 hasAuthorship W3186708284A5009804384 @default.
- W3186708284 hasAuthorship W3186708284A5021546193 @default.
- W3186708284 hasAuthorship W3186708284A5043677781 @default.
- W3186708284 hasBestOaLocation W31867082841 @default.
- W3186708284 hasConcept C126831891 @default.
- W3186708284 hasConcept C135257023 @default.
- W3186708284 hasConcept C184337299 @default.
- W3186708284 hasConcept C18903297 @default.
- W3186708284 hasConcept C199360897 @default.
- W3186708284 hasConcept C201374245 @default.
- W3186708284 hasConcept C2778514511 @default.
- W3186708284 hasConcept C41008148 @default.
- W3186708284 hasConcept C76155785 @default.
- W3186708284 hasConcept C86803240 @default.
- W3186708284 hasConceptScore W3186708284C126831891 @default.
- W3186708284 hasConceptScore W3186708284C135257023 @default.
- W3186708284 hasConceptScore W3186708284C184337299 @default.
- W3186708284 hasConceptScore W3186708284C18903297 @default.
- W3186708284 hasConceptScore W3186708284C199360897 @default.
- W3186708284 hasConceptScore W3186708284C201374245 @default.
- W3186708284 hasConceptScore W3186708284C2778514511 @default.
- W3186708284 hasConceptScore W3186708284C41008148 @default.
- W3186708284 hasConceptScore W3186708284C76155785 @default.
- W3186708284 hasConceptScore W3186708284C86803240 @default.
- W3186708284 hasIssue "1" @default.
- W3186708284 hasLocation W31867082841 @default.
- W3186708284 hasLocation W31867082842 @default.
- W3186708284 hasOpenAccess W3186708284 @default.
- W3186708284 hasPrimaryLocation W31867082841 @default.
- W3186708284 hasRelatedWork W1579149484 @default.
- W3186708284 hasRelatedWork W2000780397 @default.
- W3186708284 hasRelatedWork W2064069225 @default.
- W3186708284 hasRelatedWork W2112220071 @default.
- W3186708284 hasRelatedWork W2760941369 @default.
- W3186708284 hasRelatedWork W3006199460 @default.
- W3186708284 hasRelatedWork W3049180922 @default.
- W3186708284 hasRelatedWork W3186708284 @default.
- W3186708284 hasRelatedWork W4244568863 @default.
- W3186708284 hasRelatedWork W2462343658 @default.
- W3186708284 hasVolume "6" @default.
- W3186708284 isParatext "false" @default.
- W3186708284 isRetracted "false" @default.
- W3186708284 magId "3186708284" @default.
- W3186708284 workType "article" @default.