Matches in SemOpenAlex for { <https://semopenalex.org/work/W2139138304> ?p ?o ?g. }
Showing items 1 to 54 of
54
with 100 items per page.
- W2139138304 abstract "The traditional macro processing systems used in Lisp-family languages have a number of shortcomings. We identify five problems with the declaration tools customarily available to programmers. First, the declarations themselves are hard to read and write. Second, the declarations provide little explicit information about the form macro calls are to take. Third, syntactic checking of macro calls is usually ignored. Fourth, the notion of a macro binding for an identifier gives rise to a poor understanding of what macros really should be. Fifth, the unrestricted capabilities of the language used to declare macros cause some to take advantage of macros in ways inconsistent with their role as textual abstractions. Furthermore, the conventional algorithm used for the expansion of macro calls within Lisp often causes the inadvertent capture of an identifier appearing within the macro call by a macro-generated, binding instance of the same identifier. Lisp programmers have developed a few techniques for avoiding this problem, but they all have depended upon the macro writer taking some sort of special preventative action.We examine several existing macro processors, both inside and outside of the Lisp-family. We then enumerate a set of design principles for macro processing systems. These principles are general enough that they apply to the organization of macro processing systems for a large number of high-level languages. Taking our principles as guidelines, we design a new macro processing system for Lisp. The new macro declaration tool addresses each of the five problems from which the traditional tools suffer. A description of the use of our tool and an annotated presentation of its implementation are provided. We also develop a new macro expansion algorithm that eliminates the capturing problem. The macro expander has the responsibility for avoiding the unwanted capture of identifiers appearing within macro calls." @default.
- W2139138304 created "2016-06-24" @default.
- W2139138304 creator A5033174008 @default.
- W2139138304 date "1986-06-30" @default.
- W2139138304 modified "2023-09-26" @default.
- W2139138304 title "Syntactic extensions in the programming language LISP" @default.
- W2139138304 hasPublicationYear "1986" @default.
- W2139138304 type Work @default.
- W2139138304 sameAs 2139138304 @default.
- W2139138304 citedByCount "26" @default.
- W2139138304 countsByYear W21391383042012 @default.
- W2139138304 countsByYear W21391383042013 @default.
- W2139138304 countsByYear W21391383042015 @default.
- W2139138304 crossrefType "journal-article" @default.
- W2139138304 hasAuthorship W2139138304A5033174008 @default.
- W2139138304 hasConcept C145428669 @default.
- W2139138304 hasConcept C154504017 @default.
- W2139138304 hasConcept C166955791 @default.
- W2139138304 hasConcept C190883126 @default.
- W2139138304 hasConcept C199360897 @default.
- W2139138304 hasConcept C41008148 @default.
- W2139138304 hasConceptScore W2139138304C145428669 @default.
- W2139138304 hasConceptScore W2139138304C154504017 @default.
- W2139138304 hasConceptScore W2139138304C166955791 @default.
- W2139138304 hasConceptScore W2139138304C190883126 @default.
- W2139138304 hasConceptScore W2139138304C199360897 @default.
- W2139138304 hasConceptScore W2139138304C41008148 @default.
- W2139138304 hasLocation W21391383041 @default.
- W2139138304 hasOpenAccess W2139138304 @default.
- W2139138304 hasPrimaryLocation W21391383041 @default.
- W2139138304 hasRelatedWork W1486562535 @default.
- W2139138304 hasRelatedWork W1537326644 @default.
- W2139138304 hasRelatedWork W1592287058 @default.
- W2139138304 hasRelatedWork W1842410071 @default.
- W2139138304 hasRelatedWork W1973060466 @default.
- W2139138304 hasRelatedWork W2002301065 @default.
- W2139138304 hasRelatedWork W2022475779 @default.
- W2139138304 hasRelatedWork W2025084965 @default.
- W2139138304 hasRelatedWork W2029786195 @default.
- W2139138304 hasRelatedWork W2041042116 @default.
- W2139138304 hasRelatedWork W2050613794 @default.
- W2139138304 hasRelatedWork W2089674328 @default.
- W2139138304 hasRelatedWork W2104416102 @default.
- W2139138304 hasRelatedWork W2107219179 @default.
- W2139138304 hasRelatedWork W2113547509 @default.
- W2139138304 hasRelatedWork W2126126443 @default.
- W2139138304 hasRelatedWork W2128457015 @default.
- W2139138304 hasRelatedWork W2152944474 @default.
- W2139138304 hasRelatedWork W2294053737 @default.
- W2139138304 hasRelatedWork W3145454088 @default.
- W2139138304 isParatext "false" @default.
- W2139138304 isRetracted "false" @default.
- W2139138304 magId "2139138304" @default.
- W2139138304 workType "article" @default.