Roger E. Lessman
{"title":"编程语言,OOP和c++","authors":"Roger E. Lessman","doi":"10.1145/98949.98981","DOIUrl":null,"url":null,"abstract":"The traditional core course entitled Programming Lan guage» is a nnturnl setting for the study of the currentlypopular programming paradigms. Within this course, it is also necessary and convenient to introduce stu dents to the design, specification, and implementation of programming languages and to emphasise the run-time features of high-level languages. A project is outlined which utilises the procedural/imperative paradigm to implement an interpreter for a small block-structured language. The project is enhanced to utilise data ab straction and object-oriented programming in C ++ to provide a contemporary implementation of the original interpreter. I n t r o d u c t i o n In Curriculum '78, Austing, el al., describe the core course CS8 Organization of Programming Languages. Objectives of CSS are 1. to introduce the formal study of programming lan guage specification and analysis; 2. to develop an understanding of the organisation of programming languages, especially the run-lime behavior; and 3. to continue the development of problem solution and programming skills [1], In an effort to meet the first two objectives, instruc tors of CSS have historically presented exposition on • formal language specification and its applications; • interpretation vs. compilation; Permission to copy without fee all or pari of this material is granted provided that lire copies are not made or distributed for direct com mercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific per mission. © 1990 ACM 0-89791-356-6/90/0400/0063 $1.50 • the run-time aspects of data types, data objects, and control structures; and • lexical analysis and parsing. Traditional texts have approached the third objective with an intensive study of language features as imple mented in several procedural and block-structured lan guages and in a functional programming language such as LISP [2J. In the Partial Draft Report of the ACM/IEEE Joint Curriculum Task Force, Tucker, et. al., itemise a num ber of PL modules which contain material covered in the traditional course for CSS [3]. In addition to the top ics listed earlier, these modules emphasise the following contemporary programming paradigms:","PeriodicalId":409883,"journal":{"name":"ACM-SE 28","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1990-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Programming languages, OOP, and C++\",\"authors\":\"Roger E. Lessman\",\"doi\":\"10.1145/98949.98981\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The traditional core course entitled Programming Lan guage» is a nnturnl setting for the study of the currentlypopular programming paradigms. Within this course, it is also necessary and convenient to introduce stu dents to the design, specification, and implementation of programming languages and to emphasise the run-time features of high-level languages. A project is outlined which utilises the procedural/imperative paradigm to implement an interpreter for a small block-structured language. The project is enhanced to utilise data ab straction and object-oriented programming in C ++ to provide a contemporary implementation of the original interpreter. I n t r o d u c t i o n In Curriculum '78, Austing, el al., describe the core course CS8 Organization of Programming Languages. Objectives of CSS are 1. to introduce the formal study of programming lan guage specification and analysis; 2. to develop an understanding of the organisation of programming languages, especially the run-lime behavior; and 3. to continue the development of problem solution and programming skills [1], In an effort to meet the first two objectives, instruc tors of CSS have historically presented exposition on • formal language specification and its applications; • interpretation vs. compilation; Permission to copy without fee all or pari of this material is granted provided that lire copies are not made or distributed for direct com mercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific per mission. © 1990 ACM 0-89791-356-6/90/0400/0063 $1.50 • the run-time aspects of data types, data objects, and control structures; and • lexical analysis and parsing. Traditional texts have approached the third objective with an intensive study of language features as imple mented in several procedural and block-structured lan guages and in a functional programming language such as LISP [2J. In the Partial Draft Report of the ACM/IEEE Joint Curriculum Task Force, Tucker, et. al., itemise a num ber of PL modules which contain material covered in the traditional course for CSS [3]. In addition to the top ics listed earlier, these modules emphasise the following contemporary programming paradigms:\",\"PeriodicalId\":409883,\"journal\":{\"name\":\"ACM-SE 28\",\"volume\":\"1 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1990-04-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"ACM-SE 28\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/98949.98981\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM-SE 28","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/98949.98981","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Programming languages, OOP, and C++
The traditional core course entitled Programming Lan guage» is a nnturnl setting for the study of the currentlypopular programming paradigms. Within this course, it is also necessary and convenient to introduce stu dents to the design, specification, and implementation of programming languages and to emphasise the run-time features of high-level languages. A project is outlined which utilises the procedural/imperative paradigm to implement an interpreter for a small block-structured language. The project is enhanced to utilise data ab straction and object-oriented programming in C ++ to provide a contemporary implementation of the original interpreter. I n t r o d u c t i o n In Curriculum '78, Austing, el al., describe the core course CS8 Organization of Programming Languages. Objectives of CSS are 1. to introduce the formal study of programming lan guage specification and analysis; 2. to develop an understanding of the organisation of programming languages, especially the run-lime behavior; and 3. to continue the development of problem solution and programming skills [1], In an effort to meet the first two objectives, instruc tors of CSS have historically presented exposition on • formal language specification and its applications; • interpretation vs. compilation; Permission to copy without fee all or pari of this material is granted provided that lire copies are not made or distributed for direct com mercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific per mission. © 1990 ACM 0-89791-356-6/90/0400/0063 $1.50 • the run-time aspects of data types, data objects, and control structures; and • lexical analysis and parsing. Traditional texts have approached the third objective with an intensive study of language features as imple mented in several procedural and block-structured lan guages and in a functional programming language such as LISP [2J. In the Partial Draft Report of the ACM/IEEE Joint Curriculum Task Force, Tucker, et. al., itemise a num ber of PL modules which contain material covered in the traditional course for CSS [3]. In addition to the top ics listed earlier, these modules emphasise the following contemporary programming paradigms: