{"title":"一种面向语法的编译器编写语言","authors":"D. V. Schorre","doi":"10.1145/800257.808896","DOIUrl":null,"url":null,"abstract":"META II is a compiler writing language which consists of syntax equations resembling Backus normal form and into which instructions to output assembly language commands are inserted. Compilers have been written in this language for VALGOL I and VALGOL II. The former is a simple algebraic language designed for the purpose of illustrating META II. The latter contains a fairly large subset of ALGOL 60. The method of writing compilers which is given in detail in the paper may be explained briefly as follows. Each syntax equation is translated into a recursive subroutine which tests the input string for a particular phrase structure, and deletes it if found. Backup is avoided by the extensive use of factoring in the syntax equations. For each source language, an interpreter is written and programs are compiled into that interpretive language.","PeriodicalId":167902,"journal":{"name":"Proceedings of the 1964 19th ACM national conference","volume":"94 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1964-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"68","resultStr":"{\"title\":\"META II a syntax-oriented compiler writing language\",\"authors\":\"D. V. Schorre\",\"doi\":\"10.1145/800257.808896\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"META II is a compiler writing language which consists of syntax equations resembling Backus normal form and into which instructions to output assembly language commands are inserted. Compilers have been written in this language for VALGOL I and VALGOL II. The former is a simple algebraic language designed for the purpose of illustrating META II. The latter contains a fairly large subset of ALGOL 60. The method of writing compilers which is given in detail in the paper may be explained briefly as follows. Each syntax equation is translated into a recursive subroutine which tests the input string for a particular phrase structure, and deletes it if found. Backup is avoided by the extensive use of factoring in the syntax equations. For each source language, an interpreter is written and programs are compiled into that interpretive language.\",\"PeriodicalId\":167902,\"journal\":{\"name\":\"Proceedings of the 1964 19th ACM national conference\",\"volume\":\"94 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1964-01-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"68\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 1964 19th ACM national conference\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/800257.808896\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 1964 19th ACM national conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/800257.808896","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 68
摘要
META II是一种编译器编写语言,它由类似巴克斯范式的语法方程组成,并在其中插入用于输出汇编语言命令的指令。已经用这种语言为VALGOL I和VALGOL II编写了编译器。前者是一种简单的代数语言,设计用于说明META II。后者包含一个相当大的ALGOL 60子集。文中详细给出的编译器的编写方法可以简单说明如下。每个语法方程都被转换成一个递归子例程,该子例程测试输入字符串是否有特定的短语结构,如果找到就删除它。通过在语法方程中广泛使用因式分解,可以避免备份。对于每种源语言,都编写一个解释器,并将程序编译成该解释性语言。
META II a syntax-oriented compiler writing language
META II is a compiler writing language which consists of syntax equations resembling Backus normal form and into which instructions to output assembly language commands are inserted. Compilers have been written in this language for VALGOL I and VALGOL II. The former is a simple algebraic language designed for the purpose of illustrating META II. The latter contains a fairly large subset of ALGOL 60. The method of writing compilers which is given in detail in the paper may be explained briefly as follows. Each syntax equation is translated into a recursive subroutine which tests the input string for a particular phrase structure, and deletes it if found. Backup is avoided by the extensive use of factoring in the syntax equations. For each source language, an interpreter is written and programs are compiled into that interpretive language.