Skip to content
Free planNo credit card requiredStart writing

Search 250 million research papers

Read the abstract, see who wrote it and who cites it, and get the citation in APA, MLA, Chicago or Harvard.

About 3,895 papers for “object-oriented programming languages”

TYPE SYSTEMS FOR OBJECT-ORIENTED PROGRAMMING LANGUAGES

Kathleen Shanahan Fisher, John C. Mitchell · 1996

Object-oriented programming languages (oopl's) provide important support for today's large-scale software development projects. Unfortunately, the typing issues arising from the object-oriented features that provide this support are substantially different from those that arise in typing procedural languages. Attempts to adapt procedural type systems to object-oriented languages have resulted in languages like Simula, C++ , and Object Pascal, which have overly restrictive type systems. Among other things, the rigidity of these systems frequently force programmers to use type casts, which are a notorious source of hard-to-find bugs. These restrictive type systems also mean that many programming idioms common to untyped oopl's such as Smalltalk are not typeable. One source of this lack of flexibility is the conflation of subtyping and inheritance. Briefly, inheritance is an implementation technique in which new object definitions may be given as incremental modifications to existing defi...

Cited by 0

Using Object-Z to Specify Object-Oriented Programming Languages

Jin Song Dong, Roger Duke, Jin Song et al. · 1996

In this paper, we present a case study for using formal object-oriented specification languages, such as Object-Z, to specify the semantics of objectoriented programming languages. The key idea in this case study is to model language constructs, such as expressions, statements, methods and classes, as objects and to specify the semantics of each language construct using an Object-Z class. This case study demonstrates the feasibility of using object orientation to define the semantics of programming languages. The advantage of this approach is that the abstract syntax and static and dynamic semantics of each programming language construct can be captured within one semantic structure. A consequence is that the semantics of a programming language can be readily extended when the language is enhanced. This paper in effect presents an object-oriented approach to the formalisation of the concepts of object-orientation. Keywords: formal specification, Object-Z, object-orientation, programmin...

Cited by 0

Classifications — Object-oriented languages; D.3.4 [Programming Languages] Processors — Compilers,

Amritam Sarcar, Yoonsik Cheon, Class Invariants et al. · 2010

Abstract—The Java Modeling Language (JML) is a formal interface specification language to document the behavior of Java program modules and has been used in many research and industrial projects. However, its inability to support Java 5 features such as generics is reducing its user base significantly. Besides, the JML compiler is on average 8.5 times slower than the javac Java compiler. In this paper, we present a new JML compiler built on the Eclipse Java compiler to support Java 5 features. We used a technique called AST merging to implement coarse-grained incremental compilation. In our experiments we observed a significant improvement in compilation speed; the new compiler is 3 to 4.5 times faster than the current one. Keywords-incremental compilation; pre and postconditions; runtime assertion checking; AST merging; Eclipse; JML I.

Cited by 0

Encapsulation and Inheritance in Object-Oriented Programming Languages

Alan Snyder Software, Alan Snyder · 1986

Object-oriented programming is a practical and useful prosramming methodology that encourages modular design and software reuse. Most object-oriented programming languages support data abstraction by preventing an object from being manipulated except via its defined external operations. In most languages, however, the introduction of inheritance severely compromises the benefits of this encapsulation. Furthermore, the use of inheritance itself is globally visible in most languages, so that changes to the inheritance hierarchy cannot be made safely. This paper examines the relationship between inheritance and encapsulation and develops requirements for full support of encapsulation with inheritance.

Cited by 0

Implementation of closures in object-oriented programming languages

Pavel Švec · Digital Repository (National Repository of Grey Literature) · 2008

Tato práce si dává za cíl vysvětlit a shrnout podstatu closures v objektových programovacích jazycích a to z několika hledisek. Těmito hledisky jsou historický vývoj, funkcionalita, syntaxe a komplexnost. Hlavním přínosem této práce je pokus o komplexní shrnutí tématiky napříč nejdůležitějšími objektovými programovacími jazyky se současným porovnáním těchto implementací. Dalším přínosem je také aktuálnost popisovaných implementací, zahrnující aktuální verze implementací včetně implementací oficiálně ještě nevydaných. Práce se více zabývá teoretickými aspekty tématiky s krátkými a názornými praktickými ukázkami. Struktura práce je rozdělena na dva hlavní bloky. V prvním se věnuje jednotlivým implementacím samostatně. Ve druhém bloku jsou tyto implementace porovnávány mezi sebou podle nastavených kritérií.

Cited by 0

Process Calculus and Parallel Object-oriented Programming Languages

D. J. Walker · 1993

Techniques for giving simple accounts of the semantics of parallel object-oriented programming languages are illustrated through a study of the language pobl. A two-level operational semantics is given in which the global transitions of a configuration are derived in a simple way from labelled transitions describing the possible actions of its constituent objects. A second semantics by translation to a fragment of the Higher-Order pi-calculus is presented. A close correspondence between the semantics is described.

Cited by 21

A Visual Programming Environment for Object-Oriented Languages

John Grundy, Jg Hosking, J. Hamer · 1991

Ispel is a visual programming environment for object-oriented languages providing multiple views of programs, utilising both graphics and text. These views can be used not only for program browsing, but can also be manipulated to visually program with an object-oriented language. 1.

Cited by 7Open access

Encapsulation and inheritance in object-oriented programming languages

Alan Snyder · ACM SIGPLAN Notices · 1986

Object-oriented programming is a practical and useful programming methodology that encourages modular design and software reuse. Most object-oriented programming languages support data abstraction by preventing an object from being manipulated except via its defined external operations. In most languages, however, the introduction of inheritance severely compromises the benefits of this encapsulation. Furthermore, the use of inheritance itself is globally visible in most languages, so that changes to the inheritance hierarchy cannot be made safely. This paper examines the relationship between inheritance and encapsulation and develops requirements for full support of encapsulation with inheritance.

Cited by 443Open access

Encapsulation and inheritance in object-oriented programming languages

Alan Snyder · 1986

Object-oriented programming is a practical and useful programming methodology that encourages modular design and software reuse. Most object-oriented programming languages support data abstraction by preventing an object from being manipulated except via its defined external operations. In most languages, however, the introduction of inheritance severely compromises the benefits of this encapsulation. Furthermore, the use of inheritance itself is globally visible in most languages, so that changes to the inheritance hierarchy cannot be made safely. This paper examines the relationship between inheritance and encapsulation and develops requirements for full support of encapsulation with inheritance.

Cited by 222

Polymorphic type inference for object-oriented programming languages

Andreas V. Hense · Publications of the UdS (Saarland University) · 1994

We present a type inference algoritm and its verification for an object-oriented programming language called OSMALL. OSMALL is a class-based language with imperative features. Classes are not first-class citizens. No type declarations are required. Type inference operates on an extended lambda-calculus into which OSMALL is translated. The system features extensible record types, mu-types, and imperative types. This work belongs to both theoretical and practical computer science. In the theoretical part, the type inference algoritm for our lambda-calculus with records is formalized in order-sorted logic. In the practical part, the algoritm for let-polymorphism and imperative features is based on well-known approaches. These approaches are presented in a new fashion but they are not proven correct.

Cited by 7Open access

Incremental overload resolution in object-oriented programming languages

Tamás Szabó, Edlira Kuci, Matthijs Bijman et al. · 2018

Object-oriented programming languages feature static and dynamic overloading: Multiple methods share the same name but provide different implementations. Dynamic overloading (also know as dynamic dispatch) is resolved at run time based on the type of the receiver object. In this paper, we focus on static overloading in Featherweight Java, which is resolved at compile time based on the types of the method arguments.

Cited by 5