{"title":"Simulating multiple inheritance and generics in Java","authors":"Krishnaprasad Thirunarayan , Günter Kniesel , Haripriyan Hampapuram","doi":"10.1016/S0096-0551(00)00005-9","DOIUrl":"10.1016/S0096-0551(00)00005-9","url":null,"abstract":"<div><p>This paper presents Java language from an object-oriented software construction perspective. It explains the implications of banning generics and multiple inheritance of classes, and explores the patterns and the idioms used by the Java designers and programmers to redeem their benefits. The paper also discusses an alternative to multiple inheritance, as incorporated in Lava, which extends Java with constructs for type-safe automatic forwarding.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"25 4","pages":"Pages 189-210"},"PeriodicalIF":0.0,"publicationDate":"1999-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(00)00005-9","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87417007","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}
Computer LanguagesPub Date : 1999-10-01DOI: 10.1016/S0096-0551(00)00004-7
Kasper Østerbye , Wolfgang Kreutzer
{"title":"Synchronization abstraction in the BETA programming language","authors":"Kasper Østerbye , Wolfgang Kreutzer","doi":"10.1016/S0096-0551(00)00004-7","DOIUrl":"10.1016/S0096-0551(00)00004-7","url":null,"abstract":"<div><p>This paper argues that synchronization of processes need not be part of the core of a programming language, but that they can just as well be built from existing abstractions — provided these are sufficiently flexible and general. BETA’s notion of patterns meets these requirements and we demonstrate the validity of our claims within this context. While discussing the use of patterns of synchronization and their implementation in BETA, we focus on a number of examples taken from BetaSIM, a high-level framework for discrete event simulation. The paper concludes with a discussion on how these ideas can be applied to other modern object-based programming languages, such as Java or Ada.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"25 3","pages":"Pages 165-187"},"PeriodicalIF":0.0,"publicationDate":"1999-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(00)00004-7","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80885135","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}
Computer LanguagesPub Date : 1999-10-01DOI: 10.1016/S0096-0551(00)00003-5
Wuu Yang
{"title":"A finest partitioning algorithm for attribute grammars","authors":"Wuu Yang","doi":"10.1016/S0096-0551(00)00003-5","DOIUrl":"10.1016/S0096-0551(00)00003-5","url":null,"abstract":"<div><p>The attribute dependence graph of a syntax tree may be partitioned into disjoint regions. Attribute instances in different regions are independent of one other. The advantages of partitioning the attribute dependence graph include simplifying the attribute grammar conceptually and allowing the possibility of parallel evaluation. We present a static partitioning algorithm for attribute grammars. The algorithm builds the set of all feasible partitions for every production by analyzing the grammar. After the attributed syntax tree is constructed, one of the feasible partitions is chosen for each production instance in the syntax tree. Gluing together the selected partitions for individual production instances results in a partition of the attribute dependence graph of the syntax tree. No further merging or partitioning is needed at evaluation time. In addition to static partitioning, the algorithm always produces the finest partition of every attribute dependence graph. An application of the partitioning technique is the strictness analysis for a simple programming language that contains no higher-order functions.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"25 3","pages":"Pages 145-164"},"PeriodicalIF":0.0,"publicationDate":"1999-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(00)00003-5","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75159053","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}
Computer LanguagesPub Date : 1999-10-01DOI: 10.1016/S0096-0551(99)00013-2
Jimmy H.M. Lee, Ho-fung Leung
{"title":"An execution scheme for interactive problem-solving in concurrent constraint logic programming languages","authors":"Jimmy H.M. Lee, Ho-fung Leung","doi":"10.1016/S0096-0551(99)00013-2","DOIUrl":"10.1016/S0096-0551(99)00013-2","url":null,"abstract":"<div><p>Van Emden’s <em>incremental queries</em> address the inadequacy of current Prolog-style querying mechanism in most logic programming systems for interactive problem-solving. In the context of constraint logic programming, incremental queries involve adding new constraints or deleting old ones from a query after a solution is found. This paper presents an implementation scheme IQ of incremental queries in Constraint Pandora, which defines a class of non-deterministic concurrent constraint logic programming languages. We use Van Hentenryck and Le Provost’s scheme (VHLP-scheme hereafter), a re-execution approach, as a starting point. Re-execution is costly in concurrent languages, in which process creation and inter-process communications are common operations. The main idea of IQ is that the basic trail unwinding operation used in backtracking is more efficient than re-execution in reaching an execution context along a recorded execution path. We modify the conventional trail-unwinding operation in such a way that constraints are used actively to prune the search space. Analysis shows that the IQ-scheme is at least as efficient as the VHLP-scheme in sequential systems and is much more efficient in concurrent systems. We show the feasibility of our proposal by incorporating the IQ-scheme into IFD-Constraint Pandora, an instance of Constraint Pandora supporting interval and finite domain constraint solving. Our preliminary results agree with that of theoretical analysis.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"25 3","pages":"Pages 119-144"},"PeriodicalIF":0.0,"publicationDate":"1999-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(99)00013-2","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90754790","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}
Computer LanguagesPub Date : 1999-07-01DOI: 10.1016/S0096-0551(99)00009-0
R.S Ledley
{"title":"Mobile Processing in Distributed and Open Environments; Peter Sapaty. John Wiley and Sons, Inc. ISBN: 0-471-19572-3.","authors":"R.S Ledley","doi":"10.1016/S0096-0551(99)00009-0","DOIUrl":"https://doi.org/10.1016/S0096-0551(99)00009-0","url":null,"abstract":"","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"25 2","pages":"Pages 113-114"},"PeriodicalIF":0.0,"publicationDate":"1999-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(99)00009-0","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"92151046","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}
Computer LanguagesPub Date : 1999-07-01DOI: 10.1016/S0096-0551(99)00010-7
R.S Ledley (Dr)
{"title":"Building Microsoft SQL Server 7 Applications with COM; By Sanjiv Purba. John Wiley & Sons, Inc. ISBN: 0-471-19233-3.","authors":"R.S Ledley (Dr)","doi":"10.1016/S0096-0551(99)00010-7","DOIUrl":"10.1016/S0096-0551(99)00010-7","url":null,"abstract":"","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"25 2","pages":"Pages 114-115"},"PeriodicalIF":0.0,"publicationDate":"1999-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(99)00010-7","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89880942","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}
Computer LanguagesPub Date : 1999-07-01DOI: 10.1016/S0096-0551(99)00014-4
Ravi K. Gedela, Sol M. Shatz, Haiping Xu
{"title":"Compositional Petri net models of advanced tasking in Ada-95","authors":"Ravi K. Gedela, Sol M. Shatz, Haiping Xu","doi":"10.1016/S0096-0551(99)00014-4","DOIUrl":"10.1016/S0096-0551(99)00014-4","url":null,"abstract":"<div><p>The Ada language has been designed to support development of concurrent and distributed software. While the Ada-83 standard defined the basic mechanisms of rendezvous-based tasking, the Ada-95 standard significantly extended this capability with the introduction of several advanced tasking constructs. We present and discuss formal models of these key tasking constructs using the Petri net model. We also provide some formal evaluation of the models using one particular net-based method, invariant analysis. The constructs considered are the asynchronous transfer of control, the protected object, and the requeue statement. By modeling these advanced Ada tasking constructs with Petri nets, we obtain compositional models of the constructs that are complementary to earlier work in net-based modeling of Ada tasking, both in terms of defining precise behavior for tasking semantics, and also in terms of providing support for automated analysis of concurrent software.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"25 2","pages":"Pages 55-87"},"PeriodicalIF":0.0,"publicationDate":"1999-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(99)00014-4","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81879746","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}
Computer LanguagesPub Date : 1999-07-01DOI: 10.1016/S0096-0551(99)00007-7
W.F. Wong
{"title":"Optimizing floating point operations in Scheme","authors":"W.F. Wong","doi":"10.1016/S0096-0551(99)00007-7","DOIUrl":"10.1016/S0096-0551(99)00007-7","url":null,"abstract":"<div><p>It is well known that dynamic typing in languages like Lisp is costly in terms of performance. Besides the cost of tag checking, the other major source of inefficiency comes from the need to place and retrieve data from dynamically allocated objects, i.e. <em>boxing</em> and <em>unboxing</em>. This makes it unacceptable in general to write numerical code in Lisp. Such programs involve “tight” loops in which boxing, unboxing and tag checking will dominate the computation time. With advances in the compilation of Lisp programs, it has been suggested that type checking and inference can be used to alleviate the problem. In this paper we shall examine a sub-problem, namely using type inference to aid compilation of numerical intensive Lisp code. A type inference algorithm for floating point operations will be described. This has been implemented in a Scheme compiler. Implementation issues and performance results on fairly large numerical code will also be reported. The results suggest that significant performance gains can be obtained. It is our hope that as an augmentation to other general type inferencing scheme, it will contribute towards the realization of highly optimizing Scheme compilers.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"25 2","pages":"Pages 89-112"},"PeriodicalIF":0.0,"publicationDate":"1999-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(99)00007-7","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90345024","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}
Computer LanguagesPub Date : 1999-07-01DOI: 10.1016/S0096-0551(99)00012-0
R.S Ledley (Dr)
{"title":"3-Tier Client/Server at Work — Revised Edition; By Jeri Edwards. John Wiley & Sons, Inc. ISBN: 0-471-31502-8.","authors":"R.S Ledley (Dr)","doi":"10.1016/S0096-0551(99)00012-0","DOIUrl":"10.1016/S0096-0551(99)00012-0","url":null,"abstract":"","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"25 2","pages":"Pages 116-117"},"PeriodicalIF":0.0,"publicationDate":"1999-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(99)00012-0","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80379985","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}
Computer LanguagesPub Date : 1999-07-01DOI: 10.1016/S0096-0551(99)00011-9
R.S Ledley
{"title":"Building N-Tier Applications with COM And Visual Basic 6.0; Ash Rofail, Tony Martin. John Wiley & Sons, Inc. ISBN: 0-471-29549-3.","authors":"R.S Ledley","doi":"10.1016/S0096-0551(99)00011-9","DOIUrl":"https://doi.org/10.1016/S0096-0551(99)00011-9","url":null,"abstract":"","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"25 2","pages":"Pages 115-116"},"PeriodicalIF":0.0,"publicationDate":"1999-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(99)00011-9","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"92133557","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}