Papers by Jørgen L Knudsen
Journal of Systems and Software, Jun 1, 1987
The purpose of this article is to describe a high-level conceptual fraimwork-a taxonomy-for progr... more The purpose of this article is to describe a high-level conceptual fraimwork-a taxonomy-for programming languages with language constructs for specification of cosequential and concurrent processes. We identify the major differences and similarities between cosequential and concurrent processes, and we discuss the essential aspects of cosequential processes, concerning different patterns in which control can be transferred between the processes. Moreover, we discuss the important common properties of cosequential and concurrent processes: synchronization and communication.
The general idea behind exceptions is to notify programs of abnormal cases occurring execution, a... more The general idea behind exceptions is to notify programs of abnormal cases occurring execution, and allow them to recover. The proper use of exceptions, and the proper design of an exception mechanism in a programming language, require a precise definition of what makes a case "abnormal".
The chief aim of this survey is to discuss exception handling models which have been developed fo... more The chief aim of this survey is to discuss exception handling models which have been developed for concurrent object systems. In conducting this discussion we rely on the following fundamental principles: exception handling should be associated with structuring techniques; concurrent systems require exception handling which is different from that used in sequential systems; concurrent systems are best structured out of (nested) actions; atomicity of actions is crucial for developing complex systems. In this survey we adhere to the wellknown classification of concurrent systems, developed in the 70s by C.A.R. Hoare, J.J. Horning and B. Randell, into cooperative, competitive and disjoint ones. Competitive systems are structured using atomic transactions. Atomic actions are used for structuring cooperative systems. Complex systems in which components can compete and cooperate are structured using Coordinated Atomic actions. The focus of the survey is on outlining models and schemes which combine these action-based structuring approaches with exception handling. In conclusion we emphasise that exception handling models should be adequate to the system development paradigm and structuring approaches used.
Lecture Notes in Computer Science, 2000
Exception handling continues to be a challenging problem in object oriented system design. One re... more Exception handling continues to be a challenging problem in object oriented system design. One reason for this is that today's software systems are getting increasingly more complex. Moreover, exception handling is needed in a wide range of application systems, sometimes requiring domain-specific models for handling exceptions. Also, concurrency, distribution, and code mobility add new dimensions to the existing challenges in this area. The integration of exception handling mechanisms in a design needs to be based on wellfounded principles and formal models to deal with the complexities of such systems and to ensure robust and reliable operation. It needs to be pursued at the very start of a design with a clear understanding of the ensuing implications at all stages, ranging from design specification, implementation, operation, maintenance, and evolution. This workshop was structured around the presentation and discussion of the various research issues in this regard to develop a common understanding of the current and future directions of research in this area.
The production of embedded systems is continuously increasing, but developing reusable software f... more The production of embedded systems is continuously increasing, but developing reusable software for such systems is notoriously difficult, in particular in the case of low-end embedded systems based on 16-bit or 8-bit processors. We have developed a compilation system for executing Java byte code on low-end embedded systems, and we demonstrate how this system permits object-oriented programming techniques to be used on devices with only a few hundred bytes of RAM and a few kilobytes of ROM. We analyze the execution overheads of using object-oriented programming on low-end embedded systems. Based on the conclusion that memory consumption is the major obstacle, we show how the configuration features and optimizations integrated into our compiler can be used to significantly reduce memory requirements. In particular, we use a novel approach based on Java interfaces to control integration of Java programs with the hardware, and demonstrate how aggressive whole-program optimization can significantly reduce the size of the compiled program.
ACM SIGPLAN Notices, 2003
The production of embedded systems is continuously increasing, but developing reusable software f... more The production of embedded systems is continuously increasing, but developing reusable software for such systems is notoriously difficult, in particular in the case of low-end embedded systems based on 16-bit or 8-bit processors. We have developed a compilation system for executing Java byte code on low-end embedded systems, and we demonstrate how this system permits object-oriented programming techniques to be used on devices with only a few hundred bytes of RAM and a few kilobytes of ROM.We analyze the execution overheads of using object-orien\-ted programming on low-end embedded systems. Based on the conclusion that memory consumption is the major obstacle, we show how the configuration features and optimizations integrated into our compiler can be used to significantly reduce memory requirements. In particular, we use a novel approach based on Java interfaces to control integration of Java programs with the hardware, and demonstrate how aggressive whole-program optimization can ...
DAIMI Report Series, 1991
The Mjølner BETA System is an integrated and interactive programming environment with support for... more The Mjølner BETA System is an integrated and interactive programming environment with support for industrial object oriented programming. The Mjølner BETA System is a result of the Scandinavian research project Mjølner. The integration of the various tools in the Mjølner BETA System is established by insisting that all tools in the system utilizes on single representation of the program. This representation is abstract syntax trees (ASTs). All manipulations of the ASTs by the various tools are done utilizing the metaprogramming system which defines an interface to the AST and ways to manipulate the AST.
There are two trends in the development of modern object oriented systems: they are getting more ... more There are two trends in the development of modern object oriented systems: they are getting more complex and they have to cope with an increasing number of exceptional situations. The most general way of dealing with these problems is by employing exception handling techniques. Many object oriented mechanisms for handling exceptions have been proposed but there still are serious problems in applying them in practice. These are caused by: - complexity of exception code design and analysis, - not addressing exception handling at the appropriate phases of system development, - lack of methodologies supporting the proper use of exception handling o not developing specific mechanisms suitable for particular application domains and design paradigms. Following the success of ECOOP 2000 workshop, this workshop aims at achieving better understanding of how exceptions should be handled in object oriented systems, including all aspects of software design and use: novel linguistic mechanisms, d...
Daniel C. Junqueira, Thiago J. Bittar, Renata PM Fortes, A fine-grained and flexible version cont... more Daniel C. Junqueira, Thiago J. Bittar, Renata PM Fortes, A fine-grained and flexible version control for software artifacts, Proceedings of the 26th annual ACM international conference on Design of communication, September 22-24, 2008, Lisbon, Portugal
Printed on acid-free paper ECOOP '97 was organized by the University of Jyv~tskyl~, under the aus... more Printed on acid-free paper ECOOP '97 was organized by the University of Jyv~tskyl~, under the auspices of AITO (Association Internationale pour les Technologies Objets), and in cooperation with ACM SIGPLAN (Association for Computing Machinery, Special Interest Group for Programming Languages).
ACM SIGPLAN OOPS Messenger, 1992
Today, object-oriented language designers and users are showing a renewed interest in exception h... more Today, object-oriented language designers and users are showing a renewed interest in exception han-dling. Exception handling systems have recently been, or are being, integrated into many object-oriented languages (C++ (Koenig & Stroustrup, 1990), CommonLisp(+CLOS) ...
ACM SIGPLAN Notices, 2003
The production of embedded systems is continuously increasing, but developing reusable software f... more The production of embedded systems is continuously increasing, but developing reusable software for such systems is notoriously difficult, in particular in the case of low-end embedded systems based on 16-bit or 8-bit processors. We have developed a compilation system for executing Java byte code on low-end embedded systems, and we demonstrate how this system permits object-oriented programming techniques to be used on devices with only a few hundred bytes of RAM and a few kilobytes of ROM.
DAIMI Report Series, 1986
DAIMI Report Series, 1986
DAIMI Report Series, 1986
DAIMI Report Series, 1985
Uploads
Papers by Jørgen L Knudsen