Papers by Murat Karaorman

Introducing Concurrency to a Sequential Object-Oriented Language
this paper introduces concurrency to the object-oriented language Eiffel by providing a set of Cl... more this paper introduces concurrency to the object-oriented language Eiffel by providing a set of Class Libraries and an associated concurrent programming design method. The concurrency mechanism we provide is wellsuited for client/server style distributed applications. Since no changes are made to the Eiffel Language [19], or its runtime system, the essential principles of sequential object-oriented programming offered by Eiffel are not sacrificed. We present our concurrency abstractions as encapsulated behavior of Eiffel objects, that can be inherited from the Concurrency Class. Although the design described here is specific to the Eiffel language, most of these abstractions are generally applicable to other object-oriented languages such as C++ [14], and Objective-C [13]. The main concurrency abstractions provided by our mechanism are objects as processes -- active objects -- and an asynchronous remote method invocation with data-driven synchronization. The extended view of objects as processes having a protected private state and a prescribed behavior, provides the bridge to parallelism, since most approaches in parallel programming are based on the notion of process. Also the communication /synchronization aspects of concurrent programming blends well with the basic message passing (or method invocation) model of computation in object oriented programming.
Proceedings 1991 International Workshop on Object Orientation in Operating Systems, 1991
Object-oriented operating systems, as well as conventional O/S designs, present an overly restric... more Object-oriented operating systems, as well as conventional O/S designs, present an overly restrictive level of abstraction to the programmer. Models of objects, processes, concurrency, etc., are embedded within the system in such a way that they are dicult to extend or replace.
An experimental Japanese/English interpreting video phone system
Proceeding of Fourth International Conference on Spoken Language Processing. ICSLP '96, 1996
AN EXPERIMENTAL JAPANESE / ENGLISH INTERPRETING VIDEO PHONE SYSTEM ... Murat Karaonnan, Ted H. Ap... more AN EXPERIMENTAL JAPANESE / ENGLISH INTERPRETING VIDEO PHONE SYSTEM ... Murat Karaonnan, Ted H. Applebaum, Tatsun, Itoh? , Mitsunc Endot, Yoshio Ohno?, Masakutsu Hoshimi?, Takahim Kamai$, Kenji Matsufl, Kazue Nata, Steve Pearson, Jean-Claude ...
Formal Methods in System Design, 2005
Design by Contract is a software engineering practice that allows semantic information to be adde... more Design by Contract is a software engineering practice that allows semantic information to be added to a class or interface to precisely specify the conditions that are required for its correct operation. The basic constructs of Design by Contract are method preconditions and postconditions, and class invariants.
jMonitor: Java Runtime Event Specification and Monitoring Library
Electronic Notes in Theoretical Computer Science, 2005
... jMonitor events correspond to fundamental Java programming abstrac-tions such as reading or w... more ... jMonitor events correspond to fundamental Java programming abstrac-tions such as reading or writing of a field in a class ... static public void setEventPatterns() { EventPattern e1, e2, e3; e1 = jMonitor.EventPattern.onFieldWrite() .of("\\.Foo.a$"); e2 = e1.from("\\.MyApp\\.bar\\(") e3 ...

Electronic Notes in Theoretical Computer Science, 2002
Design by Contract is a software engineering practice that allows semantic information to be adde... more Design by Contract is a software engineering practice that allows semantic information to be added to a class or interface to precisely specify the conditions that are required for its correct operation. The basic constructs of Design by Contract are method preconditions and postconditions, and class invariants. This paper presents a detailed design and implementation overview of jContractor, a freely available tool that allows programmers to write "contracts" as standard Java methods following an intuitive naming convention. Preconditions, postconditions, and invariants can be associated with, or inherited by, any class or interface. jContractor performs on-the-fly bytecode instrumentation to detect violation of the contract specification during a program's execution. jContractor's bytecode engineering technique allows it to specify and check contracts even when source code is not available. jContractor is a pure Java library providing a rich set of syntactic constructs for expressing contracts without extending the Java language or runtime environment. These constructs include support for predicate logic expressions, and referencing entry values of attributes and return values of methods. Fine grain control over the level of monitoring is possible at runtime. Since contract methods are allowed to use unconstrained Java expressions, in addition to runtime verification they can perform additional runtime monitoring, logging, and testing. 1
Introducing concurrency to a sequential language
Communications of the ACM, 1993
jContractor: A Reflective Java Library to Support Design By Contract
Lecture Notes in Computer Science, 1999
jContractor is a purely library based approach to support Design By Contract specifications such ... more jContractor is a purely library based approach to support Design By Contract specifications such as preconditions, postconditions, class invariants, and recovery and exception handling in Java. jContractor uses an intuitive naming convention, and standard Java ...
Uploads
Papers by Murat Karaorman