ACM-SE 33Pub Date : 1995-03-17DOI: 10.1145/1122018.1122083
O. Hammami
{"title":"Fighting space complexity of compile time cache management schemes","authors":"O. Hammami","doi":"10.1145/1122018.1122083","DOIUrl":"https://doi.org/10.1145/1122018.1122083","url":null,"abstract":"Compile time optimizations have been an intensive research area in uniprocessor environment. However, due the NP-completness of most of the problems dealt with and the various nature of programs, these optimizations have been applied with various successes. While in many cases it is theoretically possible to solve the problems, in practice the proposed methods run into space or/and time problems. In this paper, we propose the use of a linear space algorithm for the data cache compile time management problem and propose an admissible heuristic.","PeriodicalId":349974,"journal":{"name":"ACM-SE 33","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116078250","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}
ACM-SE 33Pub Date : 1995-03-17DOI: 10.1145/1122018.1122061
V. Kouramajian, R. Elmasri
{"title":"The TI/R--Tree: a temporal--spatial access structure","authors":"V. Kouramajian, R. Elmasri","doi":"10.1145/1122018.1122061","DOIUrl":"https://doi.org/10.1145/1122018.1122061","url":null,"abstract":"In this paper, we propose a new indexing structure, called the TI/R-tree, which combines techniques used in temporal access structures with techniques used in spatial access structures to provide a suitable means for maintaining and retrieving the history of geographic data.The TI/R-tree uses features from both the time index [ElWK90, Kour94] and the R-tree [Gutt84]. It has a tree structure similar to the time index and maintains a set of linearly ordered indexing points on the time dimension. The leaf nodes of the TI/R-tree refer to logical buckets which are organized as incremental R-trees; that is, at certain time points only deltas are kept. This permits the reconstruction of R-trees at any time point by using a number of logical buckets.","PeriodicalId":349974,"journal":{"name":"ACM-SE 33","volume":"131 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124694665","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}
ACM-SE 33Pub Date : 1995-03-17DOI: 10.1145/1122018.1122057
Kequin Li
{"title":"Probabilistic analysis of an approximation algorithm for maximum subset sum using recurrence relations","authors":"Kequin Li","doi":"10.1145/1122018.1122057","DOIUrl":"https://doi.org/10.1145/1122018.1122057","url":null,"abstract":"Given a positive integer <i>M</i>, and a set <i>S</i> = {<i>x</i><inf>1</inf>, <i>x</i><inf>2</inf>, ..., <i>x</i><inf><i>n</i></inf>} of positive integers, the maximum subset sum problem is to find a subset <i>S'</i> of <i>S</i> such that Σ<i>x</i>ε<i>s'<sup>x</sup></i> is maximized under the constraint that the summation is no larger than <i>M</i>. In addition, the cardinality of <i>S'</i> is also a maximum among all subsets of <i>S</i> which achieve the maximum subset sum. This problem is known to be NP-hard. We analyze the average-case performance of a simple on-line approximation algorithm assuming that all integers in <i>S</i> are independent and have the same probabilty distribution. We develop a general methodology, i.e., using recurrence relations, to evaluate the expected values of the content and the cardinality of <i>S'</i> for any distribution. The maximum subset sum problem has important applications, especially in static job scheduling in multiprogrammed parallel systems. The algorithm studied can also be easily adapted for dynamic job scheduling in such systems.","PeriodicalId":349974,"journal":{"name":"ACM-SE 33","volume":"54 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121603147","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}
ACM-SE 33Pub Date : 1995-03-17DOI: 10.1145/1122018.1122032
Zhonghua Li, C. Kirkham
{"title":"Efficient implementation of aggregates in united functions and objects","authors":"Zhonghua Li, C. Kirkham","doi":"10.1145/1122018.1122032","DOIUrl":"https://doi.org/10.1145/1122018.1122032","url":null,"abstract":"We discuss the problem of efficiently implementing functional aggregates in the new language United Functions and Objects(UFO)[9]. Our method is applicable to any high-order call-by-value functional language with nested aggregates. The novelty and originality in our work are as follows. (1) We introduce the concepts of group and degree. Through partitioning operations into groups and evaluating their degrees, the algorithm can schedule the most likely operation to be done in place. (2) Through introducing a new method of sharing counting, we can achieve storage reuse for nested aggregates. (3) Our pre-allocation strategy puts both incremental construction and incremental modification of aggregates into a unified framework, and so more global optimizations can be achieved. The time complexity of the algorithm is polynomial, and in common cases, it is linear to program size.","PeriodicalId":349974,"journal":{"name":"ACM-SE 33","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128177531","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}
ACM-SE 33Pub Date : 1995-03-17DOI: 10.1145/1122018.1122049
M. A. Holliday
{"title":"Incremental game development in an introductory programming course","authors":"M. A. Holliday","doi":"10.1145/1122018.1122049","DOIUrl":"https://doi.org/10.1145/1122018.1122049","url":null,"abstract":"The enthusiasm students have for playing computer games can be used in an introductory programming course to increase the enthusiasm and attention that students have for developing problem solving and programming skills. This paper reports on a successful experience using incremental development of two computer games, Master Mind and Minesweeper, in the programming assignments of such a course. By the end of one semester of programming instruction the students are able to design and implement programs of functionality equivalent to well-known commercial games. The incremental game development technique can be used either in a procedure-oriented course or in an object-oriented course; assignment sequences for both type courses are presented.","PeriodicalId":349974,"journal":{"name":"ACM-SE 33","volume":"62 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117298960","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}
ACM-SE 33Pub Date : 1995-03-17DOI: 10.1145/1122018.1122078
S. Lau
{"title":"The HOOL: an object-oriented environment for parallel programming in workstation clusters","authors":"S. Lau","doi":"10.1145/1122018.1122078","DOIUrl":"https://doi.org/10.1145/1122018.1122078","url":null,"abstract":"We present the HOOL system, which is an object-oriented hypercomputer environment designed for workstation clusters. An HOOL application is modeled as a hierarchy of cooperating objects. Appropriate object allocations lead to load balancing, shared processing capabilities, and application parallelism. We also designed an object-oriented language for application development.","PeriodicalId":349974,"journal":{"name":"ACM-SE 33","volume":"65 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132930374","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}
ACM-SE 33Pub Date : 1995-03-17DOI: 10.1145/1122018.1122077
F. Dandashi, J. Acquah, Sudhanshu Killedar, H. Nash, William Pritchette, D. Rine
{"title":"Concurrent engineering of an object-oriented particle-in-cell simulations environment for physicists","authors":"F. Dandashi, J. Acquah, Sudhanshu Killedar, H. Nash, William Pritchette, D. Rine","doi":"10.1145/1122018.1122077","DOIUrl":"https://doi.org/10.1145/1122018.1122077","url":null,"abstract":"This paper reports on an ongoing research effort that is being jointly conducted by faculty and students at the CS Department at George Mason University, in Fairfax, Virginia, and by faculty and students at the EECS Department at UC Berkeley, California. The research is aimed at developing an Object-Oriented modeling environment for Particle In Cell plasma simulations.","PeriodicalId":349974,"journal":{"name":"ACM-SE 33","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128672688","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}
ACM-SE 33Pub Date : 1995-03-17DOI: 10.1145/1122018.1122067
A. Parrish, D. Cordes, J. Cross, B. Malloy
{"title":"Ada in the undergraduate curriculum","authors":"A. Parrish, D. Cordes, J. Cross, B. Malloy","doi":"10.1145/1122018.1122067","DOIUrl":"https://doi.org/10.1145/1122018.1122067","url":null,"abstract":"This panel will examine issues related to the integration of the Ada programming language into the undergraduate computer science curriculum. Topics will include the following:• The use of Ada versus other languages (e.g., C++) in CS I and II.• Approaches to making a transition from another language to Ada (i.e., later in the curriculum).• The use of Ada in advanced courses (e.g., software engineering, operating systems, programming languages. etc.).• A summary of public domain Ada curriculum materials and their respective sources.","PeriodicalId":349974,"journal":{"name":"ACM-SE 33","volume":"30 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133543510","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}
ACM-SE 33Pub Date : 1995-03-17DOI: 10.1145/1122018.1122045
Thomas J. Murray, A. W. Madison, J. Westall
{"title":"Lookahead page placement","authors":"Thomas J. Murray, A. W. Madison, J. Westall","doi":"10.1145/1122018.1122045","DOIUrl":"https://doi.org/10.1145/1122018.1122045","url":null,"abstract":"Historically, the majority of virtual storage operating systems have used random virtual page placement. Random placement interacts undesirably with a direct-mapped cache to produce cache conflict misses, some of which could be avoided by making better placement decisions. Recently, several studies on careful page placement as an alternative to random placement have shown that a direct-mapped cache managed with careful placement performs nearly as well as a two-way set-associative cache under random placement. Towards a performance evaluation methodology for careful page placement, we propose two new classes of theoretical page placement policies for direct-mapped caches based on memory reference string lookahead. Lookahead page placement is a systems modeling tool for evaluating nonlookahead policy performance and providing insight into potential gains that might be achieved with improved nonlookahead policies. Strict lookahead policies perform virtual page mappings using only memory reference lookahead information. Hybrid lookahead policies combine existing careful page placement methods with future knowledge obtained through lookahead. Our lookahead policies use greedy, polynomial-time bin selection procedures to assign virtual pages to cache bins having favorable future usage characteristics. Trace-driven simulation is used to compare three different lookahead policies against several nonlookahead page placement policies for three multiprogrammed UNIX workloads.","PeriodicalId":349974,"journal":{"name":"ACM-SE 33","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122745744","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}
ACM-SE 33Pub Date : 1995-03-17DOI: 10.1145/1122018.1122081
Gerald F. Gattis, Thomas J. Cheatham
{"title":"Testing object-oriented software","authors":"Gerald F. Gattis, Thomas J. Cheatham","doi":"10.1145/1122018.1122081","DOIUrl":"https://doi.org/10.1145/1122018.1122081","url":null,"abstract":"Object-oriented (OO) software development is now widely practiced because of its potential for improvement in design and maintenance. Several authors, for example [1], [2], [3], and [4], have addressed the testing of OO systems. None of the researchers claim that testing an OO system is easier than testing a procedural system. In this paper, we report on an experiment that compares four testing techniques for four systems from different application areas. The four testing techniques studied are code inspection, structural testing, functional testing, and state-based testing. Code inspection is an organized code-reading approach that draws strength from collaborative, organized questioning. In functional testing, the tester uses the requirements to design test cases which are then submitted to a running copy of the system. In structural testing, the source code (and its structure) is used to design test cases. State-based testing has been recently defined for OO systems [4]. It looks for errors in the state of the system that occur as the system responds to sequences of messages.Student teams in an elective senior/graduate software testing class, after receiving training, applied each method to one of the systems. The testers were divided into teams of two in such a way as to balance experience and ability. This process defined eight teams which were divided into four test groups, again balancing experience and ability. These four test groups were assigned different sequences for testing the systems. No team used a test method more than once or tested the same system twice.","PeriodicalId":349974,"journal":{"name":"ACM-SE 33","volume":"67 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124966783","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}