Statically type-correct Eiffel programs may produce run-time errors because (1) attributes may be redeclared during inheritance, invalidating assignments in the superclass, (2) a formal method argument type may be restricted in violation of the contravariance of function types, and (3) two applications of a generic class are assumed to conform if the actual arguments conform. The third problem is solved by case analysis on the variance of generic parameters. Declaration by association provides a solution to the first two problems, but it suffers from additional difficulties. Type attributes, or generic parameters with default values, are suggested as a replacement for most cases of declaration by association. The special association type used to express type recursion cannot be explained using type attributes, and it appears to be a truly novel construct for typing object-oriented programs. One consequence of this construct is that Eiffel’s conformance hierarchy is a proper subset of its inheritance hierarchy. To appear in the Proceedings of the European Conference on ObjectOriented Programming, 10-14 July, 1989, and in The Computer Journal, September 1989.
{"title":"A Proposal for Making Eiffel Type-Safe","authors":"W. Cook","doi":"10.1093/comjnl/32.4.305","DOIUrl":"https://doi.org/10.1093/comjnl/32.4.305","url":null,"abstract":"Statically type-correct Eiffel programs may produce run-time errors because (1) attributes may be redeclared during inheritance, invalidating assignments in the superclass, (2) a formal method argument type may be restricted in violation of the contravariance of function types, and (3) two applications of a generic class are assumed to conform if the actual arguments conform. The third problem is solved by case analysis on the variance of generic parameters. Declaration by association provides a solution to the first two problems, but it suffers from additional difficulties. Type attributes, or generic parameters with default values, are suggested as a replacement for most cases of declaration by association. The special association type used to express type recursion cannot be explained using type attributes, and it appears to be a truly novel construct for typing object-oriented programs. One consequence of this construct is that Eiffel’s conformance hierarchy is a proper subset of its inheritance hierarchy. To appear in the Proceedings of the European Conference on ObjectOriented Programming, 10-14 July, 1989, and in The Computer Journal, September 1989.","PeriodicalId":80982,"journal":{"name":"Computer/law journal","volume":"27 1","pages":"57-70"},"PeriodicalIF":0.0,"publicationDate":"1989-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84535041","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
G. Dixon, G. Parrington, S. Shrivastava, S. Wheater
{"title":"The Treatment of Persistent Objects in Arjuna","authors":"G. Dixon, G. Parrington, S. Shrivastava, S. Wheater","doi":"10.1093/comjnl/32.4.323","DOIUrl":"https://doi.org/10.1093/comjnl/32.4.323","url":null,"abstract":"","PeriodicalId":80982,"journal":{"name":"Computer/law journal","volume":"68 1","pages":"169-189"},"PeriodicalIF":0.0,"publicationDate":"1989-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78256042","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A Compositional Model for Software Reuse","authors":"R. Raj, H. Levy","doi":"10.1093/comjnl/32.4.312","DOIUrl":"https://doi.org/10.1093/comjnl/32.4.312","url":null,"abstract":"","PeriodicalId":80982,"journal":{"name":"Computer/law journal","volume":"24 1","pages":"3-24"},"PeriodicalIF":0.0,"publicationDate":"1989-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90100036","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Themes and Trends in Information Systems: TC8, 1975-1985","authors":"A. A. Verrijn-Stuart","doi":"10.1093/comjnl/30.2.97","DOIUrl":"https://doi.org/10.1093/comjnl/30.2.97","url":null,"abstract":"","PeriodicalId":80982,"journal":{"name":"Computer/law journal","volume":"4 1","pages":"1-20"},"PeriodicalIF":0.0,"publicationDate":"1986-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75675050","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
From the Publisher: Including early papers on structured programming, as well as the Computer Journal article that launched its study, this anthology of essays from the inventor of literate programming also contains excerpts from the programs for TEX and METAFONT and CWEB, a system for literate programming in C and related languages.
{"title":"Literate Programming","authors":"D. Knuth","doi":"10.1093/comjnl/27.2.97","DOIUrl":"https://doi.org/10.1093/comjnl/27.2.97","url":null,"abstract":"From the Publisher: Including early papers on structured programming, as well as the Computer Journal article that launched its study, this anthology of essays from the inventor of literate programming also contains excerpts from the programs for TEX and METAFONT and CWEB, a system for literate programming in C and related languages.","PeriodicalId":80982,"journal":{"name":"Computer/law journal","volume":"23 1","pages":"I-XV, 1-368"},"PeriodicalIF":0.0,"publicationDate":"1984-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78800707","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The aims and methods of a project investigating the direct interpretation of a high level language and operating system by microprogram on a small machine are outlined. Some features of the language specifically designed for interpretation by microprogram are described in the context of other related work. Some factors involved in the use of microprogramming as a system development method are discussed.
{"title":"MEMBERS - a Microprogrammed Experimental Machine with a Basic Executive for Real-time Systems","authors":"J. Broadbent, G. Coulouris","doi":"10.1145/800232.807037","DOIUrl":"https://doi.org/10.1145/800232.807037","url":null,"abstract":"The aims and methods of a project investigating the direct interpretation of a high level language and operating system by microprogram on a small machine are outlined. Some features of the language specifically designed for interpretation by microprogram are described in the context of other related work. Some factors involved in the use of microprogramming as a system development method are discussed.","PeriodicalId":80982,"journal":{"name":"Computer/law journal","volume":"80 1","pages":"154-160"},"PeriodicalIF":0.0,"publicationDate":"1974-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89073636","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1962-01-01DOI: 10.1007/978-0-387-09766-4_2041
A. Foran, Jean-Louis Mathias, Stephen C. Bowden
{"title":"Quicksort","authors":"A. Foran, Jean-Louis Mathias, Stephen C. Bowden","doi":"10.1007/978-0-387-09766-4_2041","DOIUrl":"https://doi.org/10.1007/978-0-387-09766-4_2041","url":null,"abstract":"","PeriodicalId":80982,"journal":{"name":"Computer/law journal","volume":"12 1","pages":"1689"},"PeriodicalIF":0.0,"publicationDate":"1962-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87616351","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"The Performance of a Relational Interface to a Codasyl Database","authors":"P. Gray, P. Esslemont","doi":"10.1093/comjnl/28.5.501","DOIUrl":"https://doi.org/10.1093/comjnl/28.5.501","url":null,"abstract":"","PeriodicalId":80982,"journal":{"name":"Computer/law journal","volume":"89 1","pages":"21-34"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88121752","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}