Matches in SemOpenAlex for { <https://semopenalex.org/work/W4243993752> ?p ?o ?g. }
Showing items 1 to 79 of
79
with 100 items per page.
- W4243993752 abstract "This paper concerns object-oriented embedded DSLs, which are popular in the Ruby community but have received little attention in the research literature. Ruby DSLs implement language keywords as implicit method calls to self; language structure is enforced by adjusting which object is bound to self in different scopes. While Ruby DSLs are powerful and elegant, they suffer from a lack of specification. In this paper, we introduce contracts for Ruby DSLs, which allow us to attribute blame appropriately when there are inconsistencies between an implementation and client. We formalize Ruby DSL contract checking in DSL, a core calculus that uses premethods with instance evaluation to enforce contracts. We then describe RDL, an implementation of Ruby DSL contracts. Finally, we present two tools that automatically infer RDL contracts: TypeInfer infers simple, type-like contracts based on observed method calls, and DSLInfer infers DSL keyword scopes and nesting by generating and testing candidate DSL usages based on initial examples. The type contracts generated by TypeInfer work well enough, though they are limited in precision by the small number of tests, while DSLInfer finds almost all DSL structure. Our goal is to help users understand a DSL from example programs." @default.
- W4243993752 created "2022-05-12" @default.
- W4243993752 creator A5038702707 @default.
- W4243993752 creator A5038921193 @default.
- W4243993752 creator A5071133213 @default.
- W4243993752 date "2014-10-14" @default.
- W4243993752 modified "2023-10-17" @default.
- W4243993752 title "Contracts for domain-specific languages in Ruby" @default.
- W4243993752 cites W1526601993 @default.
- W4243993752 cites W1958582444 @default.
- W4243993752 cites W2005692853 @default.
- W4243993752 cites W2014932497 @default.
- W4243993752 cites W2022475779 @default.
- W4243993752 cites W2026049208 @default.
- W4243993752 cites W2041042116 @default.
- W4243993752 cites W2049580068 @default.
- W4243993752 cites W2055806388 @default.
- W4243993752 cites W2059314438 @default.
- W4243993752 cites W2101225843 @default.
- W4243993752 cites W2121417161 @default.
- W4243993752 cites W2128303158 @default.
- W4243993752 cites W2129345992 @default.
- W4243993752 cites W2145287505 @default.
- W4243993752 cites W2148535470 @default.
- W4243993752 cites W2150138014 @default.
- W4243993752 cites W2155028447 @default.
- W4243993752 cites W2156249516 @default.
- W4243993752 cites W2156351739 @default.
- W4243993752 cites W2169661165 @default.
- W4243993752 cites W2296544889 @default.
- W4243993752 cites W4241122238 @default.
- W4243993752 doi "https://doi.org/10.1145/2661088.2661092" @default.
- W4243993752 hasPublicationYear "2014" @default.
- W4243993752 type Work @default.
- W4243993752 citedByCount "5" @default.
- W4243993752 countsByYear W42439937522016 @default.
- W4243993752 countsByYear W42439937522017 @default.
- W4243993752 countsByYear W42439937522019 @default.
- W4243993752 crossrefType "proceedings-article" @default.
- W4243993752 hasAuthorship W4243993752A5038702707 @default.
- W4243993752 hasAuthorship W4243993752A5038921193 @default.
- W4243993752 hasAuthorship W4243993752A5071133213 @default.
- W4243993752 hasConcept C134306372 @default.
- W4243993752 hasConcept C135257023 @default.
- W4243993752 hasConcept C154945302 @default.
- W4243993752 hasConcept C199360897 @default.
- W4243993752 hasConcept C201374245 @default.
- W4243993752 hasConcept C2781238097 @default.
- W4243993752 hasConcept C31258907 @default.
- W4243993752 hasConcept C33923547 @default.
- W4243993752 hasConcept C36503486 @default.
- W4243993752 hasConcept C41008148 @default.
- W4243993752 hasConceptScore W4243993752C134306372 @default.
- W4243993752 hasConceptScore W4243993752C135257023 @default.
- W4243993752 hasConceptScore W4243993752C154945302 @default.
- W4243993752 hasConceptScore W4243993752C199360897 @default.
- W4243993752 hasConceptScore W4243993752C201374245 @default.
- W4243993752 hasConceptScore W4243993752C2781238097 @default.
- W4243993752 hasConceptScore W4243993752C31258907 @default.
- W4243993752 hasConceptScore W4243993752C33923547 @default.
- W4243993752 hasConceptScore W4243993752C36503486 @default.
- W4243993752 hasConceptScore W4243993752C41008148 @default.
- W4243993752 hasFunder F4320337387 @default.
- W4243993752 hasLocation W42439937521 @default.
- W4243993752 hasOpenAccess W4243993752 @default.
- W4243993752 hasPrimaryLocation W42439937521 @default.
- W4243993752 hasRelatedWork W1579149484 @default.
- W4243993752 hasRelatedWork W2159328689 @default.
- W4243993752 hasRelatedWork W2161550557 @default.
- W4243993752 hasRelatedWork W2161636786 @default.
- W4243993752 hasRelatedWork W2483415553 @default.
- W4243993752 hasRelatedWork W2506635712 @default.
- W4243993752 hasRelatedWork W2556228643 @default.
- W4243993752 hasRelatedWork W3006199460 @default.
- W4243993752 hasRelatedWork W3018952282 @default.
- W4243993752 hasRelatedWork W4235797919 @default.
- W4243993752 isParatext "false" @default.
- W4243993752 isRetracted "false" @default.
- W4243993752 workType "article" @default.