{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,10,23]],"date-time":"2023-10-23T15:19:53Z","timestamp":1698074393166},"reference-count":43,"publisher":"Association for Computing Machinery (ACM)","issue":"4","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[1986,8]]},"abstract":"The PSG programming system generator developed at the Technical University of Darmstadt produces interactive, language-specific programming environments from formal language definitions. All language-dependent parts of the environment are generated from an entirely nonprocedural specification of the language's syntax, context conditions, and dynamic semantics. The generated environment consists of a language-based editor, supporting systematic program development by named program fragments, an interpreter, and a fragment library system. The major component of the environment is a full-screen editor, which allows both structure and text editing. In structure mode the editor guarantees prevention of both syntactic and semantic errors, whereas in textual mode it guarantees their immediate recognition. PSG editors employ a novel algorithm for incremental semantic analysis which is based on unification. The algorithm will immediately detect semantic errors even in incomplete program fragments. The dynamic semantics of the language are defined in denotational style using a functional language based on the lambda calculus. Program fragments are compiled to terms of the functional language which are executed by an interpreter. The PSG generator has been used to produce environments for Pascal, ALGOL 60, MODULA-2, and the formal language definition language itself.<\/jats:p>","DOI":"10.1145\/6465.20890","type":"journal-article","created":{"date-parts":[[2002,10,7]],"date-time":"2002-10-07T13:52:47Z","timestamp":1033998767000},"page":"547-576","update-policy":"http:\/\/dx.doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":89,"title":["The PSG system: from formal language definitions to interactive programming environments"],"prefix":"10.1145","volume":"8","author":[{"given":"Rolf","family":"Bahlke","sequence":"first","affiliation":[{"name":"Technical Univ. of Darmstadt, Darmstadt, W. Germany"}]},{"given":"Gregor","family":"Snelting","sequence":"additional","affiliation":[{"name":"Technical Univ. of Darmstadt, Darmstadt, W. Germany"}]}],"member":"320","published-online":{"date-parts":[[1986,8]]},"reference":[{"key":"e_1_2_1_1_2","doi-asserted-by":"publisher","DOI":"10.1145\/320083.320091"},{"key":"e_1_2_1_2_2","first-page":"219","volume-title":"Conference Record of the 13th ACM Symposium on Principles of Programming Languages (St. Petersburg, Fla.","author":"AIT-KACI I-I","year":"1986"},{"key":"e_1_2_1_3_2","doi-asserted-by":"crossref","first-page":"2","DOI":"10.1016\/0164-1212(85)90015-9","article-title":"Automatic generation of execution tools in a GANDALF environment","volume":"5","author":"AMBRIOLA V.","year":"1985","journal-title":"J. Syst. Softw."},{"key":"e_1_2_1_4_2","first-page":"153","volume-title":"Proceedings 3. Gl-Fachgesprach Compiler-Compiler","author":"BAHLKE R.","year":"1982"},{"key":"e_1_2_1_5_2","first-page":"84","volume":"1984","author":"BAHLKE R.","year":"1984","journal-title":"Programmiersystemgenerator--Arbeitsbericht"},{"key":"e_1_2_1_6_2","first-page":"3","volume-title":"T. Ausf~ihrbare Denotationale Semantik. In Proceedings 4. GI-Fachgespr~ch Implementierung yon Programmiersprachen (Zurich","author":"BAHLKE R","year":"1984"},{"key":"e_1_2_1_7_2","doi-asserted-by":"publisher","DOI":"10.1145\/800225.806824"},{"key":"e_1_2_1_8_2","volume-title":"Proceedings of the International Workshop on Advanced Programming Environments: Lecture Notes in Computer Science","author":"BAHLKE R."},{"key":"e_1_2_1_9_2","volume-title":"Springer Verlag","author":"BJORNER D.","year":"1978"},{"key":"e_1_2_1_10_2","unstructured":"BJORNER D. AND JONES C.B. Formal Specification and Software Development. Prentice-Hall Englewood Cliffs N.J. 1982. BJORNER D. AND JONES C.B. Formal Specification and Software Development. Prentice-Hall Englewood Cliffs N.J. 1982."},{"key":"e_1_2_1_11_2","volume-title":"Lecture Notes in Computer Science, 201","author":"CLACK C.","year":"1985"},{"key":"e_1_2_1_12_2","volume-title":"Lecture Notes in Computer Science, 173","author":"DESPEYROUX T.","year":"1984"},{"key":"e_1_2_1_13_2","doi-asserted-by":"publisher","DOI":"10.1145\/390011.808259"},{"key":"e_1_2_1_14_2","doi-asserted-by":"crossref","first-page":"2","DOI":"10.1016\/0164-1212(85)90012-3","article-title":"The evolution of the GANDALF system","volume":"5","author":"ELLISON R. J.","year":"1985","journal-title":"J. Syst. Softw."},{"key":"e_1_2_1_15_2","unstructured":"GILOI W. K. AND M(~HLENBEIN H. Rationale and concepts for the SUPRENUM supercomputer architecture. Internal Rep. Gesellschaft ~r Mathematik und Datenverarbeitung 1985. GILOI W. K. AND M(~HLENBEIN H. Rationale and concepts for the SUPRENUM supercomputer architecture. Internal Rep. Gesellschaft ~r Mathematik und Datenverarbeitung 1985."},{"key":"e_1_2_1_16_2","volume-title":"UCLA","author":"GOGUEN J. A.","year":"1978"},{"key":"e_1_2_1_17_2","first-page":"160","volume-title":"Proceedings 1. GI-Fachgespr~ch Compiler-Compiler","author":"HENHAPL W.","year":"1978"},{"key":"e_1_2_1_18_2","first-page":"157","volume-title":"Formal Models in Programming. North-Holland","author":"HENHAPL W.","year":"1985"},{"key":"e_1_2_1_19_2","first-page":"97","volume-title":"Conference Record of the 13th ACM Symposium on Principles of Programming Languages (St. Petersburg, Fla.","author":"HUDAK P.","year":"1986"},{"key":"e_1_2_1_20_2","first-page":"141","volume-title":"Conference Record of the 12th ACM Symposium on Principles of Programming Languages (New Orleans, La.","author":"JOHNSON G. F.","year":"1985"},{"key":"e_1_2_1_21_2","volume-title":"Bell Labs.","author":"JOHNSON S.C.","year":"1978"},{"key":"e_1_2_1_22_2","doi-asserted-by":"crossref","first-page":"151","DOI":"10.1016\/0167-6423(83)90009-6","article-title":"A formalism to specify formalisms","volume":"3","author":"KAHN G.","year":"1983","journal-title":"Sci. Comput. Program."},{"key":"e_1_2_1_23_2","doi-asserted-by":"crossref","first-page":"4","DOI":"10.1093\/comjnl\/6.4.308","article-title":"The mechanical evaluation of expressions","volume":"6","author":"LANDIN P.J","year":"1964","journal-title":"Comput. J."},{"key":"e_1_2_1_24_2","volume-title":"Carnegie-Mellon Univ.","author":"MEDINA-MORA R.","year":"1982"},{"key":"e_1_2_1_25_2","unstructured":"MEDINA-MORA R. NOTKIN D. S. AND ELLISON g.J. ALOE user's and implementor's guide. Carnegie-Mellon Univ. May 1982. MEDINA-MORA R. NOTKIN D. S. AND ELLISON g.J. ALOE user's and implementor's guide. Carnegie-Mellon Univ. May 1982."},{"key":"e_1_2_1_26_2","first-page":"265","volume-title":"Conference Record of the lOth ACM Symposium on Principles of Programming Languages","author":"MEERTENS L.","year":"1983"},{"key":"e_1_2_1_27_2","doi-asserted-by":"crossref","first-page":"3","DOI":"10.1016\/0022-0000(78)90014-4","article-title":"A theory of type polymorphism in programming","volume":"17","author":"MILNER R","year":"1978","journal-title":"J. Comput. Syst. Sci."},{"key":"e_1_2_1_28_2","volume-title":"Aarhus Univ.","author":"MOSSES P.","year":"1979"},{"key":"e_1_2_1_29_2","first-page":"73","article-title":"Building in equational theories","volume":"7","author":"PLOTKIN G","year":"1972","journal-title":"Mach. InteU."},{"key":"e_1_2_1_30_2","doi-asserted-by":"publisher","DOI":"10.1145\/502949.502889"},{"key":"e_1_2_1_31_2","volume-title":"Cornell Univ.","author":"REPS T.","year":"1982"},{"key":"e_1_2_1_32_2","doi-asserted-by":"publisher","DOI":"10.1145\/2166.357218"},{"key":"e_1_2_1_33_2","doi-asserted-by":"publisher","DOI":"10.1145\/390011.808247"},{"key":"e_1_2_1_34_2","volume-title":"Cornell Univ.","author":"REPS T.","year":"1985"},{"key":"e_1_2_1_35_2","volume-title":"Cornell Univ.","author":"REPS T.","year":"1986"},{"key":"e_1_2_1_36_2","volume-title":"Lecture Notes in Computer Science, 202","author":"RETY P.","year":"1985"},{"key":"e_1_2_1_37_2","doi-asserted-by":"publisher","DOI":"10.1145\/321250.321253"},{"key":"e_1_2_1_38_2","volume-title":"Lecture Notes in Computer Science, 170","author":"SIEKMANN J.H.","year":"1984"},{"key":"e_1_2_1_39_2","first-page":"229","volume-title":"Conference Record of the 13th ACM Symposium on Principles of Programming Languages (St. Petersburg, Fla.","author":"SNELTIN","year":"1986"},{"key":"e_1_2_1_40_2","volume-title":"TH Darmstadt","author":"SNELTING G.","year":"1986"},{"key":"e_1_2_1_41_2","volume-title":"Mass.","author":"STOY J.E.","year":"1977"},{"key":"e_1_2_1_42_2","doi-asserted-by":"publisher","DOI":"10.1145\/360303.360308"},{"key":"e_1_2_1_43_2","doi-asserted-by":"crossref","first-page":"332","DOI":"10.1016\/S0022-0000(74)80048-6","article-title":"Correct and optimal implementations of recursion in a simple programming language","volume":"9","author":"VUILLEMIN J","year":"1974","journal-title":"J. Comput. Syst. Sci."}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/6465.20890","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,1,2]],"date-time":"2023-01-02T18:53:00Z","timestamp":1672685580000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/6465.20890"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1986,8]]},"references-count":43,"journal-issue":{"issue":"4","published-print":{"date-parts":[[1986,8]]}},"alternative-id":["10.1145\/6465.20890"],"URL":"https:\/\/doi.org\/10.1145\/6465.20890","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"value":"0164-0925","type":"print"},{"value":"1558-4593","type":"electronic"}],"subject":[],"published":{"date-parts":[[1986,8]]},"assertion":[{"value":"1986-08-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}