Matches in SemOpenAlex for { <https://semopenalex.org/work/W19213215> ?p ?o ?g. }
- W19213215 abstract "Extensible programming languages allow users to create fundamentally new syntax and translate this syntax into language primitives. The concept of compile-time meta-programming has been around for decades, but systems that provide such abilities generally disallow the creation of new syntactic forms, or have heavy restrictions on how, or where, this may be done.Genesis is an extension to Java that supports compile-time meta-programming by allowing users to create their own arbitrary syntax. This is achieved through macros that operate on a mix of both concrete and abstract syntax, and produce abstract syntax. Genesis attempts to provide a minimal design whilst maintaining, and extending, the expressive power of other similar macro systems.The core Genesis language definition lacks many of the desirable features found in other systems, such as quasi-quote, hygiene, and static expression-type dispatch, but is expressive enough to define these as syntax extensions. User-defined macros produce only well-formed syntactic structures via the use of a predefined set of classes that define a Java abstract syntax.At the heart of Genesis is a flexible parser that is capable of parsing any context-free grammars - even ambiguous ones. The parser is capable of arbitrary speculation and will consider all possible parses. The parser constructs a graph of possible paths, and is capable of dynamically pruning this graph, or combining nodes, based on precedence or associativity rules. This general parser allows macro programmers to forget about parsing, and concentrate on defining new syntax. One key goal of this system was to address the programmer's learning curve by providing as simple a system as possible. This was achieved by the use of the flexible parser, the introduction of only one new construct to standard Java, and extensions to make programming macros more user friendly.The expressiveness of Genesis is wide ranging; it is capable of providing small scale limited use macros, large scale semantic modifications, through to complete language replacements.To demonstrate this expressiveness, we implement many of the simple test cases found in other systems, such as a type-safe printf, assertions, and iteration statements. These test cases require an ability to perform static type-checking and to manipulate compile-time values and abstract syntax trees. As additional examples of Genesis' expressive power we also provide implementations of embedded subsets of SQL and Haskell. As a final proof of power, the Haskell subset can operate as a stand-alone extension independent of any recognisable Java code." @default.
- W19213215 created "2016-06-24" @default.
- W19213215 creator A5029165885 @default.
- W19213215 date "2005-12-01" @default.
- W19213215 modified "2023-09-27" @default.
- W19213215 title "Genesis: An Extensible Java" @default.
- W19213215 cites W10589072 @default.
- W19213215 cites W114559391 @default.
- W19213215 cites W123986919 @default.
- W19213215 cites W140526553 @default.
- W19213215 cites W14568393 @default.
- W19213215 cites W1497920889 @default.
- W19213215 cites W1502293651 @default.
- W19213215 cites W1513612082 @default.
- W19213215 cites W1543641760 @default.
- W19213215 cites W1580631325 @default.
- W19213215 cites W1581983724 @default.
- W19213215 cites W1598340254 @default.
- W19213215 cites W1901085887 @default.
- W19213215 cites W1939467000 @default.
- W19213215 cites W194677851 @default.
- W19213215 cites W1963538417 @default.
- W19213215 cites W1970961429 @default.
- W19213215 cites W1979379492 @default.
- W19213215 cites W2009775190 @default.
- W19213215 cites W2010152469 @default.
- W19213215 cites W2030725287 @default.
- W19213215 cites W2030942926 @default.
- W19213215 cites W2036134187 @default.
- W19213215 cites W2036523032 @default.
- W19213215 cites W2037177386 @default.
- W19213215 cites W2045255985 @default.
- W19213215 cites W2047058869 @default.
- W19213215 cites W2052363833 @default.
- W19213215 cites W2055970549 @default.
- W19213215 cites W2065428406 @default.
- W19213215 cites W2067004633 @default.
- W19213215 cites W2110712265 @default.
- W19213215 cites W2113547509 @default.
- W19213215 cites W2117174233 @default.
- W19213215 cites W2120557862 @default.
- W19213215 cites W2121984483 @default.
- W19213215 cites W2128151625 @default.
- W19213215 cites W2133546079 @default.
- W19213215 cites W2134495021 @default.
- W19213215 cites W2137417304 @default.
- W19213215 cites W2142452786 @default.
- W19213215 cites W2152608870 @default.
- W19213215 cites W2152907450 @default.
- W19213215 cites W2164885086 @default.
- W19213215 cites W2188944230 @default.
- W19213215 cites W2293157443 @default.
- W19213215 cites W2611598995 @default.
- W19213215 cites W3043762545 @default.
- W19213215 hasPublicationYear "2005" @default.
- W19213215 type Work @default.
- W19213215 sameAs 19213215 @default.
- W19213215 citedByCount "2" @default.
- W19213215 crossrefType "dissertation" @default.
- W19213215 hasAuthorship W19213215A5029165885 @default.
- W19213215 hasConcept C114408938 @default.
- W19213215 hasConcept C11742125 @default.
- W19213215 hasConcept C132525143 @default.
- W19213215 hasConcept C154945302 @default.
- W19213215 hasConcept C166955791 @default.
- W19213215 hasConcept C169590947 @default.
- W19213215 hasConcept C186644900 @default.
- W19213215 hasConcept C199360897 @default.
- W19213215 hasConcept C204321447 @default.
- W19213215 hasConcept C41008148 @default.
- W19213215 hasConcept C58646249 @default.
- W19213215 hasConcept C60048249 @default.
- W19213215 hasConcept C80444323 @default.
- W19213215 hasConcept C9957790 @default.
- W19213215 hasConceptScore W19213215C114408938 @default.
- W19213215 hasConceptScore W19213215C11742125 @default.
- W19213215 hasConceptScore W19213215C132525143 @default.
- W19213215 hasConceptScore W19213215C154945302 @default.
- W19213215 hasConceptScore W19213215C166955791 @default.
- W19213215 hasConceptScore W19213215C169590947 @default.
- W19213215 hasConceptScore W19213215C186644900 @default.
- W19213215 hasConceptScore W19213215C199360897 @default.
- W19213215 hasConceptScore W19213215C204321447 @default.
- W19213215 hasConceptScore W19213215C41008148 @default.
- W19213215 hasConceptScore W19213215C58646249 @default.
- W19213215 hasConceptScore W19213215C60048249 @default.
- W19213215 hasConceptScore W19213215C80444323 @default.
- W19213215 hasConceptScore W19213215C9957790 @default.
- W19213215 hasLocation W192132151 @default.
- W19213215 hasOpenAccess W19213215 @default.
- W19213215 hasPrimaryLocation W192132151 @default.
- W19213215 hasRelatedWork W127275198 @default.
- W19213215 hasRelatedWork W1585183969 @default.
- W19213215 hasRelatedWork W1714137607 @default.
- W19213215 hasRelatedWork W1953786023 @default.
- W19213215 hasRelatedWork W1961431777 @default.
- W19213215 hasRelatedWork W1963538417 @default.
- W19213215 hasRelatedWork W1975808766 @default.
- W19213215 hasRelatedWork W1989314504 @default.
- W19213215 hasRelatedWork W2014519650 @default.