Introductory computer science courses offer an excellent test bed for utilizing a personalized system of instruction. The ubiquity and operating hours of computer terminals and computer centers in educational institutions is ideal for student self-pacing. The rapid response time of computers is a positive reinforcement when solving problems. The recent advent of the PLATO computer-based educational system provides many opportunities for students and faculty in computer science and many other disciplines. PLATO terminals provide a powerful motivational tool for PSI. Motivation is a critical part of computer science courses. Students are expected to acquire synthesis-level skills in the cognitive domain. This level of knowledge is higher than the level of skill, memorization or rule application, required for many other introductory courses. An Excellent Mixture for PSI: Computer Science, PLATO, and Knowledge Levels.
{"title":"An excellent mixture for PSI: Computer science, PLATO, knowledge levels.","authors":"Kenneth L. Modesitt","doi":"10.1145/800182.810385","DOIUrl":"https://doi.org/10.1145/800182.810385","url":null,"abstract":"Introductory computer science courses offer an excellent test bed for utilizing a personalized system of instruction. The ubiquity and operating hours of computer terminals and computer centers in educational institutions is ideal for student self-pacing. The rapid response time of computers is a positive reinforcement when solving problems. The recent advent of the PLATO computer-based educational system provides many opportunities for students and faculty in computer science and many other disciplines. PLATO terminals provide a powerful motivational tool for PSI. Motivation is a critical part of computer science courses. Students are expected to acquire synthesis-level skills in the cognitive domain. This level of knowledge is higher than the level of skill, memorization or rule application, required for many other introductory courses.\u0000 An Excellent Mixture for PSI: Computer Science, PLATO, and Knowledge Levels.","PeriodicalId":204185,"journal":{"name":"ACM '74","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123522421","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}
A listprocessing system which allows assignment of cells of any length, expressed in a discrete number of computer words, is proposed for a wider range of problems than just for the algebraic manipulation systems for which it was designed. Erasure of lists is done while preserving contiguity of space by means of an internal and external linkage technique. A compacting routine which copies used blocks into empty blocks can be applied provided that the liststructures have a canonical form which can be identified through the type field so that all pointers can be accessed for readdressing. An application program outside the mathematical area is discussed.
{"title":"The variable cell length listprocessor VARLIST","authors":"D. A. Klip","doi":"10.1145/800182.810392","DOIUrl":"https://doi.org/10.1145/800182.810392","url":null,"abstract":"A listprocessing system which allows assignment of cells of any length, expressed in a discrete number of computer words, is proposed for a wider range of problems than just for the algebraic manipulation systems for which it was designed. Erasure of lists is done while preserving contiguity of space by means of an internal and external linkage technique. A compacting routine which copies used blocks into empty blocks can be applied provided that the liststructures have a canonical form which can be identified through the type field so that all pointers can be accessed for readdressing. An application program outside the mathematical area is discussed.","PeriodicalId":204185,"journal":{"name":"ACM '74","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123866987","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 use of minicomputers as subsystem components with minimum hardware configurations has led to the need for software development tools on a large-scale "host" computer. Such a package is being developed for the Honeywell 600/6000 series computers to provide a FORTRAN compiler, assembler, simulator, and debug capability. A FORTRAN cross compiler system is described which accepts enhanced ANSI-standard FORTRAN and produces assembly-level source code for the target computer, while allowing initial algorithm checkout to be performed directly on the host computer. An integrated assembler-simulator-debug package is briefly described which will allow simulation of a target computer program with full debug control at both the FORTRAN source and assembly level.
{"title":"A host computer system for software development","authors":"Philip N. Gray","doi":"10.1145/1408800.1408835","DOIUrl":"https://doi.org/10.1145/1408800.1408835","url":null,"abstract":"The use of minicomputers as subsystem components with minimum hardware configurations has led to the need for software development tools on a large-scale \"host\" computer. Such a package is being developed for the Honeywell 600/6000 series computers to provide a FORTRAN compiler, assembler, simulator, and debug capability. A FORTRAN cross compiler system is described which accepts enhanced ANSI-standard FORTRAN and produces assembly-level source code for the target computer, while allowing initial algorithm checkout to be performed directly on the host computer. An integrated assembler-simulator-debug package is briefly described which will allow simulation of a target computer program with full debug control at both the FORTRAN source and assembly level.","PeriodicalId":204185,"journal":{"name":"ACM '74","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121834798","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}
Many preprocessor systems exist to transform a program from an augmented language to the particular language expected by a processor. Historically these have been capable of only simple lexical or syntactic substitutions (macro processors). This paper discusses the potential of semantic preprocessing—where the function of a program is “understood” as a basis for transformation—and describes experiments with a prototype system.
{"title":"Semantic preprocessing","authors":"P. Schneck","doi":"10.1145/800182.810383","DOIUrl":"https://doi.org/10.1145/800182.810383","url":null,"abstract":"Many preprocessor systems exist to transform a program from an augmented language to the particular language expected by a processor. Historically these have been capable of only simple lexical or syntactic substitutions (macro processors). This paper discusses the potential of semantic preprocessing—where the function of a program is “understood” as a basis for transformation—and describes experiments with a prototype system.","PeriodicalId":204185,"journal":{"name":"ACM '74","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115346123","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}
Internal fragmentation is a phenomenon of a paging environment. Memory is divided into equal size blocks called pages, and when a job requests memory space, it receives an integral number of pages. The difference between the amount of space actually required and the amount allocated is wasted space and is referred to as internal fragmentation. In comparison a segmentation environment allocates exactly the amount of space required. However, this system is subject to another type of wasted memory called external fragmentation. This fragmentation occurs when allocation requests cannot be filled even though there is available space in memory (which is either too small to be useful or too scattered). It has been shown by Randell [6] and Purdom & Steigler [5] that internal fragmentation is a more serious problem than external fragmentation and therefore we will direct our attention to it.
{"title":"Dynamic memory allocation systems for minimizing internal fragmentation","authors":"T. Lewis, Brian J. Smith, Marilyn Z. Smith","doi":"10.1145/1408800.1408893","DOIUrl":"https://doi.org/10.1145/1408800.1408893","url":null,"abstract":"Internal fragmentation is a phenomenon of a paging environment. Memory is divided into equal size blocks called pages, and when a job requests memory space, it receives an integral number of pages. The difference between the amount of space actually required and the amount allocated is wasted space and is referred to as <u>internal</u> fragmentation. In comparison a segmentation environment allocates exactly the amount of space required. However, this system is subject to another type of wasted memory called external fragmentation. This fragmentation occurs when allocation requests cannot be filled even though there is available space in memory (which is either too small to be useful or too scattered). It has been shown by Randell [6] and Purdom & Steigler [5] that internal fragmentation is a more serious problem than external fragmentation and therefore we will direct our attention to it.","PeriodicalId":204185,"journal":{"name":"ACM '74","volume":"25 3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115996808","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}
In this paper we present a methodology for the cost evaluation of file system performance. The cost structure we consider takes into account the various operations that are required during the processing of data in the system. The cost evaluation approach is then applied to several systems. A new storage scheme—a partially ordered file—is proposed, and experimental data which demonstrate its performance are presented. Finally, the cost evaluation approach is applied to this proposed storagse scheme.
{"title":"Cost evaluation of storage schemes","authors":"Jair M. Babad, V. Balachandran, E. Stohr","doi":"10.1145/800182.810379","DOIUrl":"https://doi.org/10.1145/800182.810379","url":null,"abstract":"In this paper we present a methodology for the cost evaluation of file system performance. The cost structure we consider takes into account the various operations that are required during the processing of data in the system. The cost evaluation approach is then applied to several systems. A new storage scheme—a partially ordered file—is proposed, and experimental data which demonstrate its performance are presented. Finally, the cost evaluation approach is applied to this proposed storagse scheme.","PeriodicalId":204185,"journal":{"name":"ACM '74","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116744164","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 principles of top-down programming (15) and step-wise refinement (28, 29) can be used to represent structured system development as a natural extension to structured programming. The proposed non-procedural language is based on a set of structural and procedural information system (IS) specification standards (22, 24). When refined to a precise level of detail, a non-procedural specification of a desired information system results. This is due to the facts that the IS specification standards (1) define what pieces are needed for the desired IS, (2) include descriptive and prescriptive elements for the combination of the pieces, and (3) collect the pieces of the IS design to form program specifications at a functional level and to specify program algorithms.
{"title":"A proposed non-procedural programming language for structured system development","authors":"David M. Sherr","doi":"10.1145/1408800.1408849","DOIUrl":"https://doi.org/10.1145/1408800.1408849","url":null,"abstract":"The principles of top-down programming (15) and step-wise refinement (28, 29) can be used to represent structured system development as a natural extension to structured programming. The proposed non-procedural language is based on a set of structural and procedural information system (IS) specification standards (22, 24). When refined to a precise level of detail, a non-procedural specification of a desired information system results. This is due to the facts that the IS specification standards (1) define what pieces are needed for the desired IS, (2) include descriptive and prescriptive elements for the combination of the pieces, and (3) collect the pieces of the IS design to form program specifications at a functional level and to specify program algorithms.","PeriodicalId":204185,"journal":{"name":"ACM '74","volume":"71 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116821071","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 current interest in distributed computer architecture (as found in networks and loosely-coupled multiprocessors) makes it relevant to consider the kinds of programming language constructs necessary to take advantage of the resultant decentralized environment. One approach is to construct decentralized programs as collections of disjoint processes which communicate and exercise control via messages. This paper presents several high order language message handling constructs and describes their use in writing decentralized programs. Particular points addressed are immediate and deferred message interpretation and content-based communication.
{"title":"Language constructs for message handling in decentralized programs","authors":"Elaine P. Gord, M. Hopwood, L. Rowe","doi":"10.1145/1408800.1408845","DOIUrl":"https://doi.org/10.1145/1408800.1408845","url":null,"abstract":"The current interest in distributed computer architecture (as found in networks and loosely-coupled multiprocessors) makes it relevant to consider the kinds of programming language constructs necessary to take advantage of the resultant decentralized environment. One approach is to construct decentralized programs as collections of disjoint processes which communicate and exercise control via messages. This paper presents several high order language message handling constructs and describes their use in writing decentralized programs. Particular points addressed are immediate and deferred message interpretation and content-based communication.","PeriodicalId":204185,"journal":{"name":"ACM '74","volume":"60 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114578015","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}
Solving a linear system Ax = b by Gaussian Elimination usually entails pivotal inter-changes designed to inhibit that explosive growth of intermediate results which would otherwise, through roundoff, vitiate the calculation. But these interchanges, motivated by numerical desiderata, frequently conflict with combinatorial desiderata like "Sparsity". We shall show that two special cases in which interchanges are well known not to be needed for stability, namely, when A is positive definite or diagonally dominant, are examples of a more frequent situation; A's field of values lies in a half-plane not containing zero. This situation, which is associated with certain electric networks and some boundary value problems, allows at least in principle for an estimate of the number of extra guard digits that need be carried to prevent explosive growth from blighting results obtained without interchanges.
{"title":"When are pivotal interchanges not necessary?","authors":"W. Kahan","doi":"10.1145/1408800.1408917","DOIUrl":"https://doi.org/10.1145/1408800.1408917","url":null,"abstract":"Solving a linear system Ax = b by Gaussian Elimination usually entails pivotal inter-changes designed to inhibit that explosive growth of intermediate results which would otherwise, through roundoff, vitiate the calculation. But these interchanges, motivated by numerical desiderata, frequently conflict with combinatorial desiderata like \"Sparsity\". We shall show that two special cases in which interchanges are well known not to be needed for stability, namely, when A is positive definite or diagonally dominant, are examples of a more frequent situation; A's field of values lies in a half-plane not containing zero. This situation, which is associated with certain electric networks and some boundary value problems, allows at least in principle for an estimate of the number of extra guard digits that need be carried to prevent explosive growth from blighting results obtained without interchanges.","PeriodicalId":204185,"journal":{"name":"ACM '74","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129527262","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}
This paper presents a methodology for describing and implementing pattern matching in SNOBOL4. The basic element of the formulation is the coroutine. The coroutine notion permits a complete procedural implementation as well as a concise description of the pattern-matching process. Matching procedures are represented by co-routines whose order of invocation is determined from the tree structure of a given pattern. The context for a coroutine's operation maintains the details of a local matching process. Side effects that may require reversal in the event of backtracking are undone by the coroutine that caused the effect. The system described has been used to implement extensions to the existing pattern-matching facilities of SNOBOL4.
{"title":"A procedural approach to pattern matching in SNOBOL4","authors":"Frederick C. Druseikis, J. Doyle","doi":"10.1145/800182.810418","DOIUrl":"https://doi.org/10.1145/800182.810418","url":null,"abstract":"This paper presents a methodology for describing and implementing pattern matching in SNOBOL4. The basic element of the formulation is the coroutine. The coroutine notion permits a complete procedural implementation as well as a concise description of the pattern-matching process. Matching procedures are represented by co-routines whose order of invocation is determined from the tree structure of a given pattern. The context for a coroutine's operation maintains the details of a local matching process. Side effects that may require reversal in the event of backtracking are undone by the coroutine that caused the effect. The system described has been used to implement extensions to the existing pattern-matching facilities of SNOBOL4.","PeriodicalId":204185,"journal":{"name":"ACM '74","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130668846","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}