Interrupt-generating active data objects
- Authors: Clayton, Peter Graham
- Date: 1990
- Subjects: Parallel programming (Computer science) Electronic data processing -- Distributed processing
- Language: English
- Type: Thesis , Doctoral , PhD
- Identifier: vital:4677 , http://hdl.handle.net/10962/d1006700
- Description: An investigation is presented into an interrupt-generating object model which is designed to reduce the effort of programming distributed memory multicomputer networks. The object model is aimed at the natural modelling of problem domains in which a number of concurrent entities interrupt one another as they lay claim to shared resources. The proposed computational model provides for the safe encapsulation of shared data, and incorporates inherent arbitration for simultaneous access to the data. It supplies a predicate triggering mechanism for use in conditional synchronization and as an alternative mechanism to polling. Linguistic support for the proposal requires a novel form of control structure which is able to interface sensibly with interrupt-generating active data objects. The thesis presents the proposal as an elemental language structure, with axiomatic guarantees which enforce safety properties and aid in program proving. The established theory of CSP is used to reason about the object model and its interface. An overview is presented of a programming language called HUL, whose semantics reflect the proposed computational model. Using the syntax of HUL, the application of the interrupt-generating active data object is illustrated. A range of standard concurrent problems is presented to demonstrate the properties of the interrupt-generating computational model. Furthermore, the thesis discusses implementation considerations which enable the model to be mapped precisely onto multicomputer networks, and which sustain the abstract programming level provided by the interrupt-generating active data object in the wider programming structures of HUL.
- Full Text:
- Date Issued: 1990
- Authors: Clayton, Peter Graham
- Date: 1990
- Subjects: Parallel programming (Computer science) Electronic data processing -- Distributed processing
- Language: English
- Type: Thesis , Doctoral , PhD
- Identifier: vital:4677 , http://hdl.handle.net/10962/d1006700
- Description: An investigation is presented into an interrupt-generating object model which is designed to reduce the effort of programming distributed memory multicomputer networks. The object model is aimed at the natural modelling of problem domains in which a number of concurrent entities interrupt one another as they lay claim to shared resources. The proposed computational model provides for the safe encapsulation of shared data, and incorporates inherent arbitration for simultaneous access to the data. It supplies a predicate triggering mechanism for use in conditional synchronization and as an alternative mechanism to polling. Linguistic support for the proposal requires a novel form of control structure which is able to interface sensibly with interrupt-generating active data objects. The thesis presents the proposal as an elemental language structure, with axiomatic guarantees which enforce safety properties and aid in program proving. The established theory of CSP is used to reason about the object model and its interface. An overview is presented of a programming language called HUL, whose semantics reflect the proposed computational model. Using the syntax of HUL, the application of the interrupt-generating active data object is illustrated. A range of standard concurrent problems is presented to demonstrate the properties of the interrupt-generating computational model. Furthermore, the thesis discusses implementation considerations which enable the model to be mapped precisely onto multicomputer networks, and which sustain the abstract programming level provided by the interrupt-generating active data object in the wider programming structures of HUL.
- Full Text:
- Date Issued: 1990
An adaptive discrete cosine transform coding scheme for digital x-ray images
- Authors: Mclean, Ivan Hugh
- Date: 1989
- Subjects: X-rays -- Digitization Image processing -- Digital techniques Diagnostic imaging Computer storage devices
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4567 , http://hdl.handle.net/10962/d1002032
- Description: The ongoing development of storage devices and technologies for medical image management has led to a growth in the digital archiving of these images. The characteristics of medical x-rays are examined, and a number of digital coding methods are considered. An investigation of several fast cosine transform algorithms is carried out. An adaptive cosine transform coding technique is implemented which produces good quality images using bit rates lower than 0.38 bits per picture element
- Full Text:
- Date Issued: 1989
- Authors: Mclean, Ivan Hugh
- Date: 1989
- Subjects: X-rays -- Digitization Image processing -- Digital techniques Diagnostic imaging Computer storage devices
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4567 , http://hdl.handle.net/10962/d1002032
- Description: The ongoing development of storage devices and technologies for medical image management has led to a growth in the digital archiving of these images. The characteristics of medical x-rays are examined, and a number of digital coding methods are considered. An investigation of several fast cosine transform algorithms is carried out. An adaptive cosine transform coding technique is implemented which produces good quality images using bit rates lower than 0.38 bits per picture element
- Full Text:
- Date Issued: 1989
Parallel process placement
- Authors: Handler, Caroline
- Date: 1989
- Subjects: Parallel programming (Computer science)
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4568 , http://hdl.handle.net/10962/d1002033
- Description: This thesis investigates methods of automatic allocation of processes to available processors in a given network configuration. The research described covers the investigation of various algorithms for optimal process allocation. Among those researched were an algorithm which used a branch and bound technique, an algorithm based on graph theory, and an heuristic algorithm involving cluster analysis. These have been implemented and tested in conjunction with the gathering of performance statistics during program execution, for use in improving subsequent allocations. The system has been implemented on a network of loosely-coupled microcomputers using multi-port serial communication links to simulate a transputer network. The concurrent programming language occam has been implemented, replacing the explicit process allocation constructs with an automatic placement algorithm. This enables the source code to be completely separated from hardware considerations
- Full Text:
- Date Issued: 1989
- Authors: Handler, Caroline
- Date: 1989
- Subjects: Parallel programming (Computer science)
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4568 , http://hdl.handle.net/10962/d1002033
- Description: This thesis investigates methods of automatic allocation of processes to available processors in a given network configuration. The research described covers the investigation of various algorithms for optimal process allocation. Among those researched were an algorithm which used a branch and bound technique, an algorithm based on graph theory, and an heuristic algorithm involving cluster analysis. These have been implemented and tested in conjunction with the gathering of performance statistics during program execution, for use in improving subsequent allocations. The system has been implemented on a network of loosely-coupled microcomputers using multi-port serial communication links to simulate a transputer network. The concurrent programming language occam has been implemented, replacing the explicit process allocation constructs with an automatic placement algorithm. This enables the source code to be completely separated from hardware considerations
- Full Text:
- Date Issued: 1989
The design and implementation of a fourth generation programming language
- Authors: Iverson, Carn Martin
- Date: 1989 , 2013-03-04
- Subjects: Programming languages (Electronic computers) , Fourth generation computers
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4584 , http://hdl.handle.net/10962/d1004652 , Programming languages (Electronic computers) , Fourth generation computers
- Description: IV is a very high level language designed for use in a real time production control environment. While most fourth generation languages are intended for use by end users, IV is more suitable for skilled professional programmers. One of the major design objectives of IV is a dramatic improvement in programmer efficiency during application program development. Non-procedural constructs provided by the language and the use of a number of interactive development tools provide an environment for achieving this goal. This report presents a language proposal for IV, and addresses related design and implementation issues.
- Full Text:
- Date Issued: 1989
- Authors: Iverson, Carn Martin
- Date: 1989 , 2013-03-04
- Subjects: Programming languages (Electronic computers) , Fourth generation computers
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4584 , http://hdl.handle.net/10962/d1004652 , Programming languages (Electronic computers) , Fourth generation computers
- Description: IV is a very high level language designed for use in a real time production control environment. While most fourth generation languages are intended for use by end users, IV is more suitable for skilled professional programmers. One of the major design objectives of IV is a dramatic improvement in programmer efficiency during application program development. Non-procedural constructs provided by the language and the use of a number of interactive development tools provide an environment for achieving this goal. This report presents a language proposal for IV, and addresses related design and implementation issues.
- Full Text:
- Date Issued: 1989
An integration of reduction and logic for programming languages
- Authors: Wright, David A
- Date: 1988
- Subjects: Logic programming languages , Programming languages (Electronic computers)
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4570 , http://hdl.handle.net/10962/d1002035
- Description: A new declarative language is presented which captures the expressibility of both logic programming languages and functional languages. This is achieved by conditional graph rewriting, with full unification as the parameter passing mechanism. The syntax and semantics are described both formally and informally, and examples are offered to support the expressibility claim made above. The language design is of further interest due to its uniformity and the inclusion of a novel mechanism for type inference in the presence of derived type hierarchies
- Full Text:
- Date Issued: 1988
- Authors: Wright, David A
- Date: 1988
- Subjects: Logic programming languages , Programming languages (Electronic computers)
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4570 , http://hdl.handle.net/10962/d1002035
- Description: A new declarative language is presented which captures the expressibility of both logic programming languages and functional languages. This is achieved by conditional graph rewriting, with full unification as the parameter passing mechanism. The syntax and semantics are described both formally and informally, and examples are offered to support the expressibility claim made above. The language design is of further interest due to its uniformity and the inclusion of a novel mechanism for type inference in the presence of derived type hierarchies
- Full Text:
- Date Issued: 1988
Explanation in rule-based expert systems
- Authors: Carden, Kenneth John
- Date: 1988
- Subjects: Expert systems (Computer science) Ecology -- Research
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4569 , http://hdl.handle.net/10962/d1002034
- Description: The ability of an expert system to explain its reasoning is fundamental to the system's credibility. Explanations become even more vital in systems which use methods of uncertainty propagation. The research documented here describes the development of an explanation sub-system which interfaces with the P.R.O. Expert System Toolkit. This toolkit has been used in the development of three small ecological expert systems. This project has involved adapting the results of research in the field of explanation-generation, to the requirements of the ecologist users. The subsystem contains two major components. The first lists the rules that fired during a consultation. The second component comprises routines responsible for quantifying the effects on the system conclusions of the answers given to questions. These latter routines can be used to perform sensitivity analyses on the answers given. The incorporation of such routines in small expert systems is quite unique
- Full Text:
- Date Issued: 1988
- Authors: Carden, Kenneth John
- Date: 1988
- Subjects: Expert systems (Computer science) Ecology -- Research
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4569 , http://hdl.handle.net/10962/d1002034
- Description: The ability of an expert system to explain its reasoning is fundamental to the system's credibility. Explanations become even more vital in systems which use methods of uncertainty propagation. The research documented here describes the development of an explanation sub-system which interfaces with the P.R.O. Expert System Toolkit. This toolkit has been used in the development of three small ecological expert systems. This project has involved adapting the results of research in the field of explanation-generation, to the requirements of the ecologist users. The subsystem contains two major components. The first lists the rules that fired during a consultation. The second component comprises routines responsible for quantifying the effects on the system conclusions of the answers given to questions. These latter routines can be used to perform sensitivity analyses on the answers given. The incorporation of such routines in small expert systems is quite unique
- Full Text:
- Date Issued: 1988
Towards a portable occam
- Authors: Hill, David Timothy
- Date: 1988 , 2013-03-07
- Subjects: occam (Computer program language) , Transputers , Parallel programming (Computer science)
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4587 , http://hdl.handle.net/10962/d1004749 , occam (Computer program language) , Transputers , Parallel programming (Computer science)
- Description: Occam is designed for concurrent programming on a network of transputers. AIlocation and partitioning of the program is specified within the source code, binding the program to a specific network. An altemative approach is proposed which completely separates the source code from hardware considerations. Static allocation is performed as a separate phase and should, ideally, be automatic but at present is manual. Complete hardware abstraction requires that non-local, shared communication be provided for, introducing an efficiency overhead which can be minimised by the allocation. The proposal was implemented on a network of IBM PCs, modelled on a transputer network, and implementation issues are discussed
- Full Text:
- Date Issued: 1988
- Authors: Hill, David Timothy
- Date: 1988 , 2013-03-07
- Subjects: occam (Computer program language) , Transputers , Parallel programming (Computer science)
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4587 , http://hdl.handle.net/10962/d1004749 , occam (Computer program language) , Transputers , Parallel programming (Computer science)
- Description: Occam is designed for concurrent programming on a network of transputers. AIlocation and partitioning of the program is specified within the source code, binding the program to a specific network. An altemative approach is proposed which completely separates the source code from hardware considerations. Static allocation is performed as a separate phase and should, ideally, be automatic but at present is manual. Complete hardware abstraction requires that non-local, shared communication be provided for, introducing an efficiency overhead which can be minimised by the allocation. The proposal was implemented on a network of IBM PCs, modelled on a transputer network, and implementation issues are discussed
- Full Text:
- Date Issued: 1988
A machine-independent microprogram development system
- Authors: Ward, Michael John
- Date: 1987 , 2013-03-11
- Subjects: Microprogramming
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4581 , http://hdl.handle.net/10962/d1003738 , Microprogramming
- Description: The aims of this project are twofold. They are firstly, to implement a microprogram development system that allows the programmer to write microcode for any microprogrammable machine, and secondly, to build a microprogrammable machine, incorporating the user friendliness of a simulator, while still providing the 'hands on' experience obtained actual hardware. Microprogram development involves a two stage process. The first step is to describe the target machine, using format descriptions and mnemonic-based template definitions. The second stage involves using the defined mnemonics to write the microcodes for the target machine. This includes an assembly phase to translate the mnemonics into the binary microinstructions. Three main components constitute the microprogrammable machine. The Arithmetic and Logic Unit (ALU) is built using chips from Advanced Micro Devices' Am29ØØ bit-slice family, the action of the Microprogram Control Unit (MCU) is simulated by software running on an IBM Personal Computer, and a section of the IBM PC's main memory acts as the Control Store (CS) for the system. The ALU is built on a prototyping card that plugs into one of the slots on the IBM PC's mother board. A hardware simulator program, that produces the effect of the ALU, has also been developed. A small assembly language has been developed using the system, to test the various functions of the system. A mini-assembler has also been written to facilitate assembly of the above language. A group of honours students at Rhodes University tested the microprogram development system. Their ideas and suggestions have been tabulated in this report and some of them have been used to enhance the system's performance. The concept of allowing 'inline' microinstructions in the macroprogram is also investigated in this report and a method of implementing this is shown.
- Full Text:
- Date Issued: 1987
- Authors: Ward, Michael John
- Date: 1987 , 2013-03-11
- Subjects: Microprogramming
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4581 , http://hdl.handle.net/10962/d1003738 , Microprogramming
- Description: The aims of this project are twofold. They are firstly, to implement a microprogram development system that allows the programmer to write microcode for any microprogrammable machine, and secondly, to build a microprogrammable machine, incorporating the user friendliness of a simulator, while still providing the 'hands on' experience obtained actual hardware. Microprogram development involves a two stage process. The first step is to describe the target machine, using format descriptions and mnemonic-based template definitions. The second stage involves using the defined mnemonics to write the microcodes for the target machine. This includes an assembly phase to translate the mnemonics into the binary microinstructions. Three main components constitute the microprogrammable machine. The Arithmetic and Logic Unit (ALU) is built using chips from Advanced Micro Devices' Am29ØØ bit-slice family, the action of the Microprogram Control Unit (MCU) is simulated by software running on an IBM Personal Computer, and a section of the IBM PC's main memory acts as the Control Store (CS) for the system. The ALU is built on a prototyping card that plugs into one of the slots on the IBM PC's mother board. A hardware simulator program, that produces the effect of the ALU, has also been developed. A small assembly language has been developed using the system, to test the various functions of the system. A mini-assembler has also been written to facilitate assembly of the above language. A group of honours students at Rhodes University tested the microprogram development system. Their ideas and suggestions have been tabulated in this report and some of them have been used to enhance the system's performance. The concept of allowing 'inline' microinstructions in the macroprogram is also investigated in this report and a method of implementing this is shown.
- Full Text:
- Date Issued: 1987
CSP-i : an implementation of CSP
- Authors: Wrench, Karen Lee
- Date: 1987 , 2013-03-08
- Subjects: Synchronization--Computers , Programming languages (Electronic computers)
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4579 , http://hdl.handle.net/10962/d1003124 , Synchronization--Computers , Programming languages (Electronic computers)
- Description: CSP (Communicating Sequential Processes) is a notation proposed by Hoare, for expressing process communication and synchronization. Although this notation has been widely acclaimed, Hoare himself never implemented it as a computer language. He did however produce the necessary correctness proofs and subsequently the notation has been adopted (in various guises) by the designers of other concurrent languages such as Ada and occam. Only two attempts have been made at a direct and precise implementation of CSP. With closer scrutiny, even these implementations are found to deviate from the specifications expounded by Hoare, and in so doing restrict the original proposal. This thesis comprises two main sections. The first of these includes a brief look at the primitives of concurrent programming, followed by a comparative study of the existing adaptations of CSP and other message passing languages. The latter section is devoted to a description of the author's attempt at an original implementation of the notation. The result of this attempt is the creation of the CSP-i language and a suitable environment for executing CSP-i programs on an IBM PC. The CSP-i implementation is comparable with other concurrent systems presently available. In some aspects, the primitives featured in CSP-i provide the user with a more efficient and concise notation for expressing concurrent algorithms than several other message-based languages, notably occam. , KMBT_363 , Adobe Acrobat 9.53 Paper Capture Plug-in
- Full Text:
- Date Issued: 1987
- Authors: Wrench, Karen Lee
- Date: 1987 , 2013-03-08
- Subjects: Synchronization--Computers , Programming languages (Electronic computers)
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4579 , http://hdl.handle.net/10962/d1003124 , Synchronization--Computers , Programming languages (Electronic computers)
- Description: CSP (Communicating Sequential Processes) is a notation proposed by Hoare, for expressing process communication and synchronization. Although this notation has been widely acclaimed, Hoare himself never implemented it as a computer language. He did however produce the necessary correctness proofs and subsequently the notation has been adopted (in various guises) by the designers of other concurrent languages such as Ada and occam. Only two attempts have been made at a direct and precise implementation of CSP. With closer scrutiny, even these implementations are found to deviate from the specifications expounded by Hoare, and in so doing restrict the original proposal. This thesis comprises two main sections. The first of these includes a brief look at the primitives of concurrent programming, followed by a comparative study of the existing adaptations of CSP and other message passing languages. The latter section is devoted to a description of the author's attempt at an original implementation of the notation. The result of this attempt is the creation of the CSP-i language and a suitable environment for executing CSP-i programs on an IBM PC. The CSP-i implementation is comparable with other concurrent systems presently available. In some aspects, the primitives featured in CSP-i provide the user with a more efficient and concise notation for expressing concurrent algorithms than several other message-based languages, notably occam. , KMBT_363 , Adobe Acrobat 9.53 Paper Capture Plug-in
- Full Text:
- Date Issued: 1987
The P.R.O. expert system shell
- Authors: Bradshaw, John
- Date: 1987 , 2013-04-03
- Subjects: Expert systems (Computer science)
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4617 , http://hdl.handle.net/10962/d1006302 , Expert systems (Computer science)
- Description: This thesis reports the research which led to the development of the P.R .O. Expert System Shell. The P.R.O . System is primarily, though not exclusively , designed for use in ecological domains. In the light of two specific expert systems, The RCS (River Conservation Status) and the Aquaculture Systems, which were developed as part of this research, a number of areas of importance have been identified. The most significant of these is the need to handle uncertainty effectively. The style of knowledge representation to be implemented also plays an important role. After consulting the relevant literature and the available microcomputer expert system shells, a number of ideas have been included in the P.R.O. System. The P.R.O . System is a backward chaining, production system based expert system shell. It embodies a simple but effective method of handling uncertainty. An important feature of this method is that it takes cognizance of the different relative importances of the conditions which need to be satisfied before a conclusion can be reached. The knowledge base consists of more than rules and questions. It also contains meta-knowledge, which is used by the inference engine. The P.R.O. System has been designed to be of practical use. Its strongest recommendations are therefore, that the two non-trivial systems which have been implemented in it, have been accepted by the experts and their peers as systems which produce good, accurate answers . , KMBT_363 , Adobe Acrobat 9.53 Paper Capture Plug-in
- Full Text:
- Date Issued: 1987
- Authors: Bradshaw, John
- Date: 1987 , 2013-04-03
- Subjects: Expert systems (Computer science)
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4617 , http://hdl.handle.net/10962/d1006302 , Expert systems (Computer science)
- Description: This thesis reports the research which led to the development of the P.R .O. Expert System Shell. The P.R.O . System is primarily, though not exclusively , designed for use in ecological domains. In the light of two specific expert systems, The RCS (River Conservation Status) and the Aquaculture Systems, which were developed as part of this research, a number of areas of importance have been identified. The most significant of these is the need to handle uncertainty effectively. The style of knowledge representation to be implemented also plays an important role. After consulting the relevant literature and the available microcomputer expert system shells, a number of ideas have been included in the P.R.O. System. The P.R.O . System is a backward chaining, production system based expert system shell. It embodies a simple but effective method of handling uncertainty. An important feature of this method is that it takes cognizance of the different relative importances of the conditions which need to be satisfied before a conclusion can be reached. The knowledge base consists of more than rules and questions. It also contains meta-knowledge, which is used by the inference engine. The P.R.O. System has been designed to be of practical use. Its strongest recommendations are therefore, that the two non-trivial systems which have been implemented in it, have been accepted by the experts and their peers as systems which produce good, accurate answers . , KMBT_363 , Adobe Acrobat 9.53 Paper Capture Plug-in
- Full Text:
- Date Issued: 1987
Concurrency in modula-2
- Authors: Sewry, David Andrew
- Date: 1985 , 2013-03-13
- Subjects: Modula-2 (Computer program language) , Programming languages (Electronic computers) , Computer multitasking
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4582 , http://hdl.handle.net/10962/d1004369 , Modula-2 (Computer program language) , Programming languages (Electronic computers) , Computer multitasking
- Description: A concurrent program is one in which a number of processes are considered to be active simultaneously . It is possib l e to t hink of a process as being a separate sequential program executing independently of other processes, although perhaps communicating with them at desired pOints . The concurrent program, as a whole, can be executed in one of two ways: il ii) in true concurrent manner, wi th each process executing on a dedicated processor in a quasi - concurrent manner, where a processor's processes . time is multiplexed between single the There are two motivations for the study of concurrency in programming languages : i) concurrent programming facilities can be exploited in systems where one has more t han one processor . As technology i mproves, machines having multiple processors will proliferate ii) concurrent p r ogramming facilities may allow programs to be structured as independent , bu t co - operating, processes which can then be implemented on a single processor system . This structure may be more natural to the programmer then the traditional sequential structures. An example is provided by Conway's - 1- Clearly, languages Pascal) problem [Ben82] . by their very nature, traditional sequential- type (Fortran, Basic, Cobol and earlier versions of prove inadequate for the purposes of concurrent programming without considerable extension (which some manufacturers have provided, rendering their compilers non standard-conforming). The general convenience of high level languages provides strong motivation for their development for rea l time programming. Modula - 2 [Wir83] is but one of a number of such r ecently developed languages, designed not only to fulfil a "sequential" role but also to offer facilities for concurrent programming. Developed by Niklaus Wirth in 1979 as a successor to Pascal and Modula, it is intended to serve under the banner of a generalpurpose systems - implementation language. This thesis investigates concurrency i n Modula - 2 and takes the following form: i ) an analYSis of the concurrent facilities offered ii) problems and difficulties associated with these facilities iii) improveme nts and enhancements, including the feasibility of using Modula - 2 to simulate constructs found in other languages, such as the Hoare monitor [Hoa74] and the Ada rendezvous [Uni81]. - 2- Each section concludes with an appraisal of the work conducted in that section . The final section consists of a critical assessment of those Modula - 2 language constructs and facilities provided for the implementation of concurrency and a brief look at concurrency in Modula, Modula-2's predecessor. - Introduction. , KMBT_363 , Adobe Acrobat 9.53 Paper Capture Plug-in
- Full Text:
- Date Issued: 1985
- Authors: Sewry, David Andrew
- Date: 1985 , 2013-03-13
- Subjects: Modula-2 (Computer program language) , Programming languages (Electronic computers) , Computer multitasking
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4582 , http://hdl.handle.net/10962/d1004369 , Modula-2 (Computer program language) , Programming languages (Electronic computers) , Computer multitasking
- Description: A concurrent program is one in which a number of processes are considered to be active simultaneously . It is possib l e to t hink of a process as being a separate sequential program executing independently of other processes, although perhaps communicating with them at desired pOints . The concurrent program, as a whole, can be executed in one of two ways: il ii) in true concurrent manner, wi th each process executing on a dedicated processor in a quasi - concurrent manner, where a processor's processes . time is multiplexed between single the There are two motivations for the study of concurrency in programming languages : i) concurrent programming facilities can be exploited in systems where one has more t han one processor . As technology i mproves, machines having multiple processors will proliferate ii) concurrent p r ogramming facilities may allow programs to be structured as independent , bu t co - operating, processes which can then be implemented on a single processor system . This structure may be more natural to the programmer then the traditional sequential structures. An example is provided by Conway's - 1- Clearly, languages Pascal) problem [Ben82] . by their very nature, traditional sequential- type (Fortran, Basic, Cobol and earlier versions of prove inadequate for the purposes of concurrent programming without considerable extension (which some manufacturers have provided, rendering their compilers non standard-conforming). The general convenience of high level languages provides strong motivation for their development for rea l time programming. Modula - 2 [Wir83] is but one of a number of such r ecently developed languages, designed not only to fulfil a "sequential" role but also to offer facilities for concurrent programming. Developed by Niklaus Wirth in 1979 as a successor to Pascal and Modula, it is intended to serve under the banner of a generalpurpose systems - implementation language. This thesis investigates concurrency i n Modula - 2 and takes the following form: i ) an analYSis of the concurrent facilities offered ii) problems and difficulties associated with these facilities iii) improveme nts and enhancements, including the feasibility of using Modula - 2 to simulate constructs found in other languages, such as the Hoare monitor [Hoa74] and the Ada rendezvous [Uni81]. - 2- Each section concludes with an appraisal of the work conducted in that section . The final section consists of a critical assessment of those Modula - 2 language constructs and facilities provided for the implementation of concurrency and a brief look at concurrency in Modula, Modula-2's predecessor. - Introduction. , KMBT_363 , Adobe Acrobat 9.53 Paper Capture Plug-in
- Full Text:
- Date Issued: 1985
The monitor and synchroniser concepts in the programming language CLANG
- Authors: Chalmers, Alan Gordon
- Date: 1985
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4616 , http://hdl.handle.net/10962/d1006132
- Full Text:
- Date Issued: 1985
- Authors: Chalmers, Alan Gordon
- Date: 1985
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4616 , http://hdl.handle.net/10962/d1006132
- Full Text:
- Date Issued: 1985
Design automation of a machine-independent code generator
- Authors: Clayton, Peter Graham
- Date: 1984 , 2013-01-22
- Subjects: Compilers (Computer programs) , Programming languages (Electronic computers)
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4676 , http://hdl.handle.net/10962/d1006699 , Compilers (Computer programs) , Programming languages (Electronic computers)
- Description: As both computer languages and architectures continue to proliferate, there is a continuing need for new compilers. Researchers have attempted to ease the work of producing compilers by developing methods to automate compiler writing. While much work has been done (and considerable success achieved) in writing parsers which can handle a variety of source languages (using mainly table-driven analysis methods), less progress has been made in formalizing the code generation end of the compiler. Nevertheless, some of the more recent publications in code generation stress portability or retargetability of the resulting compiler. A number of code generator synthesisers have been developed, some of which produce code that can be compared in quality with that produced by a conventional code generator. However, because of the complexity of generalizing the mapping from source language to target machine, and the need for efficiency of various kinds, code generator synthesisers are large, complicated programs. Consequently, the person who develops a code generator using one of these tools invariably needs to be a code generation specialist himself. Many compilers follow a pattern of having a front end which generates intermediate code, and a back end which converts intermediate code to machine code. The intermediate code is effectively machine independent, or can be designed that way. With these points in mind, we have set out to write a system of programs which -- 1. will allow the generation of such a back end in a reasonably short time, for a general intermediate code, and for a general machine code, and -- 2. can be used by anyone who has a sound knowledge of the target machine's architecture and associated assembler language, but is not necessarily a specialist compiler writer. The system consists of a series of friendly, interactive programs by means of which the user sets up tables defining the architecture and assembly level instructions for the target machine, and the code templates onto which intermediate codes produced by a parser have been mapped. A general notation has been developed to represent machine instructions using the same format as the target assembler. Thus the code generator writer is able to write code sequences to perform the effects of the intermediate codes, using assembly mnemonics familiar to him. The resultant table-driven code generator simply replaces a sequence of intermediate codes by their respective code templates, relocating them in memory and filling in addresses known only at code-generation time. This thesis describes the use and implementation details of this generalized code generation system. As an example, the implementation of a code generator for a CLANG [23] parser on an 8080 processor is described. The discussion also includes guide-lines on how to implement a loader and associated run-time routines for use in executing the object code. The results of a number of bench-marks have shown, as expected, that code produced by a code generator developed in this manner is larger and slower than that from a special purpose optimizing code generator, but is still several times faster than interpreting the intermediate code. The major benefit to be gained from using this system lies in the shorter development time by a less skilled person. , KMBT_223 , Adobe Acrobat 9.53 Paper Capture Plug-in
- Full Text:
- Date Issued: 1984
- Authors: Clayton, Peter Graham
- Date: 1984 , 2013-01-22
- Subjects: Compilers (Computer programs) , Programming languages (Electronic computers)
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4676 , http://hdl.handle.net/10962/d1006699 , Compilers (Computer programs) , Programming languages (Electronic computers)
- Description: As both computer languages and architectures continue to proliferate, there is a continuing need for new compilers. Researchers have attempted to ease the work of producing compilers by developing methods to automate compiler writing. While much work has been done (and considerable success achieved) in writing parsers which can handle a variety of source languages (using mainly table-driven analysis methods), less progress has been made in formalizing the code generation end of the compiler. Nevertheless, some of the more recent publications in code generation stress portability or retargetability of the resulting compiler. A number of code generator synthesisers have been developed, some of which produce code that can be compared in quality with that produced by a conventional code generator. However, because of the complexity of generalizing the mapping from source language to target machine, and the need for efficiency of various kinds, code generator synthesisers are large, complicated programs. Consequently, the person who develops a code generator using one of these tools invariably needs to be a code generation specialist himself. Many compilers follow a pattern of having a front end which generates intermediate code, and a back end which converts intermediate code to machine code. The intermediate code is effectively machine independent, or can be designed that way. With these points in mind, we have set out to write a system of programs which -- 1. will allow the generation of such a back end in a reasonably short time, for a general intermediate code, and for a general machine code, and -- 2. can be used by anyone who has a sound knowledge of the target machine's architecture and associated assembler language, but is not necessarily a specialist compiler writer. The system consists of a series of friendly, interactive programs by means of which the user sets up tables defining the architecture and assembly level instructions for the target machine, and the code templates onto which intermediate codes produced by a parser have been mapped. A general notation has been developed to represent machine instructions using the same format as the target assembler. Thus the code generator writer is able to write code sequences to perform the effects of the intermediate codes, using assembly mnemonics familiar to him. The resultant table-driven code generator simply replaces a sequence of intermediate codes by their respective code templates, relocating them in memory and filling in addresses known only at code-generation time. This thesis describes the use and implementation details of this generalized code generation system. As an example, the implementation of a code generator for a CLANG [23] parser on an 8080 processor is described. The discussion also includes guide-lines on how to implement a loader and associated run-time routines for use in executing the object code. The results of a number of bench-marks have shown, as expected, that code produced by a code generator developed in this manner is larger and slower than that from a special purpose optimizing code generator, but is still several times faster than interpreting the intermediate code. The major benefit to be gained from using this system lies in the shorter development time by a less skilled person. , KMBT_223 , Adobe Acrobat 9.53 Paper Capture Plug-in
- Full Text:
- Date Issued: 1984
A parser generator system to handle complete syntax
- Authors: Ossher, Harold Leon
- Date: 1982
- Subjects: Grammar, Comparative and general -- Syntax Parsing (Computer grammar) Programming languages (Electronic computers) Compilers (Computer programs)
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4571 , http://hdl.handle.net/10962/d1002036
- Description: To define a language completely, it is necessary to define both its syntax and semantics. If these definitions are in a suitable form, the parser and code-generator of a compiler, respectively, can be generated from them. This thesis addresses the problem of syntax definition and automatic parser generation.
- Full Text:
- Date Issued: 1982
- Authors: Ossher, Harold Leon
- Date: 1982
- Subjects: Grammar, Comparative and general -- Syntax Parsing (Computer grammar) Programming languages (Electronic computers) Compilers (Computer programs)
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4571 , http://hdl.handle.net/10962/d1002036
- Description: To define a language completely, it is necessary to define both its syntax and semantics. If these definitions are in a suitable form, the parser and code-generator of a compiler, respectively, can be generated from them. This thesis addresses the problem of syntax definition and automatic parser generation.
- Full Text:
- Date Issued: 1982
The automatic generation of code generators with particular reference to cobol
- Authors: Bulmer, Allan Roy
- Date: 1980 , 2013-03-15
- Subjects: Code generators , COBOL (Computer program language)
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4613 , http://hdl.handle.net/10962/d1004913 , Code generators , COBOL (Computer program language)
- Full Text:
- Date Issued: 1980
- Authors: Bulmer, Allan Roy
- Date: 1980 , 2013-03-15
- Subjects: Code generators , COBOL (Computer program language)
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4613 , http://hdl.handle.net/10962/d1004913 , Code generators , COBOL (Computer program language)
- Full Text:
- Date Issued: 1980
An automatic programming system to generate payroll programs
- Fielding, Elizabeth Vera Catherine
- Authors: Fielding, Elizabeth Vera Catherine
- Date: 1979
- Subjects: Computer software -- Development , Programming (computers) , Software architecture
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4695 , http://hdl.handle.net/10962/d1011829 , Computer software -- Development , Programming (computers) , Software architecture
- Description: The purpose of this project was to try to investigate one approach to the problem of automatically generating programs from some specification. Rather than following the approach which requires the user to define his problem using some formulation, it was decided to look at a class of problems that have similar solutions, but have many variations, and to try to design a system capable of obtaining user requirements and generating solutions tailored to these requirements. The aim was to design the system in such a way that it could be extended to cater for other classes of problems, so that eventually a system which could automatically generate program solutions for a range of problems might be developed. Intro. p. 1.
- Full Text:
- Date Issued: 1979
- Authors: Fielding, Elizabeth Vera Catherine
- Date: 1979
- Subjects: Computer software -- Development , Programming (computers) , Software architecture
- Language: English
- Type: Thesis , Masters , MSc
- Identifier: vital:4695 , http://hdl.handle.net/10962/d1011829 , Computer software -- Development , Programming (computers) , Software architecture
- Description: The purpose of this project was to try to investigate one approach to the problem of automatically generating programs from some specification. Rather than following the approach which requires the user to define his problem using some formulation, it was decided to look at a class of problems that have similar solutions, but have many variations, and to try to design a system capable of obtaining user requirements and generating solutions tailored to these requirements. The aim was to design the system in such a way that it could be extended to cater for other classes of problems, so that eventually a system which could automatically generate program solutions for a range of problems might be developed. Intro. p. 1.
- Full Text:
- Date Issued: 1979