37,755 research outputs found
Concepts and their Use for Modelling Objects and References in Programming Languages
In the paper a new programming construct, called concept, is introduced.
Concept is pair of two classes: a reference class and an object class.
Instances of the reference classes are passed-by-value and are intended to
represent objects. Instances of the object class are passed-by-reference. An
approach to programming where concepts are used instead of classes is called
concept-oriented programming (CoP). In CoP objects are represented and accessed
indirectly by means of references. The structure of concepts describes a
hierarchical space with a virtual address system. The paper describes this new
approach to programming including such mechanisms as reference resolution,
complex references, method interception, dual methods, life-cycle management
inheritance and polymorphism.Comment: 43 pages. Related papers: http://conceptoriented.com
On Object-Orientation
Although object-orientation has been around for several decades, its key
concept abstraction has not been exploited for proper application of
object-orientation in other phases of software development than the
implementation phase. We mention some issues that lead to a lot of confusion
and obscurity with object-orientation and its application in software
development. We describe object-orientation as abstract as possible such that
it can be applied to all phases of software development
Several types of types in programming languages
Types are an important part of any modern programming language, but we often
forget that the concept of type we understand nowadays is not the same it was
perceived in the sixties. Moreover, we conflate the concept of "type" in
programming languages with the concept of the same name in mathematical logic,
an identification that is only the result of the convergence of two different
paths, which started apart with different aims. The paper will present several
remarks (some historical, some of more conceptual character) on the subject, as
a basis for a further investigation. The thesis we will argue is that there are
three different characters at play in programming languages, all of them now
called types: the technical concept used in language design to guide
implementation; the general abstraction mechanism used as a modelling tool; the
classifying tool inherited from mathematical logic. We will suggest three
possible dates ad quem for their presence in the programming language
literature, suggesting that the emergence of the concept of type in computer
science is relatively independent from the logical tradition, until the
Curry-Howard isomorphism will make an explicit bridge between them.Comment: History and Philosophy of Computing, HAPOC 2015. To appear in LNC
C# 3.0 makes OCL redundant!
Other than its 'platform independence' the major advantages of OCL over traditional Object Oriented programming languages has been the declarative nature of the language, its powerful navigation facility via the iteration operations, and the availability of tuples as a first class concept. The recent offering from Microsoft of the "Orcas" version of Visual Studio with C# 3.0 and the Linq library provides functionality almost identical to that of OCL. This paper examines and evaluates the controversial thesis that, as a result of C# 3.0, OCL is essentially redundant, having been superseded by the incorporation of its advantageous features into a mainstream programming language
Map Calculus in GIS: a proposal and demonstration
This paper provides a new representation for fields (continuous surfaces) in Geographical Information Systems (GIS), based on the notion of spatial functions and their combinations. Following Tomlin's (1990) Map Algebra, the term 'Map Calculus' is used for this new representation. In Map Calculus, GIS layers are stored as functions, and new layers can be created by combinations of other functions. This paper explains the principles of Map Calculus and demonstrates the creation of function-based layers and their supporting management mechanism. The proposal is based on Church's (1941) Lambda Calculus and elements of functional computer languages (such as Lisp or Scheme)
Event Data Definition in LHCb
We present the approach used for defining the event object model for the LHCb
experiment. This approach is based on a high level modelling language, which is
independent of the programming language used in the current implementation of
the event data processing software. The different possibilities of object
modelling languages are evaluated, and the advantages of a dedicated model
based on XML over other possible candidates are shown. After a description of
the language itself, we explain the benefits obtained by applying this approach
in the description of the event model of an experiment such as LHCb. Examples
of these benefits are uniform and coherent mapping of the object model to the
implementation language across the experiment software development teams, easy
maintenance of the event model, conformance to experiment coding rules, etc.
The description of the object model is parsed by means of a so called
front-end which allows to feed several back-ends. We give an introduction to
the model itself and to the currently implemented back-ends which produce
information like programming language specific implementations of event objects
or meta information about these objects. Meta information can be used for
introspection of objects at run-time which is essential for functionalities
like object persistency or interactive analysis. This object introspection
package for C++ has been adopted by the LCG project as the starting point for
the LCG object dictionary that is going to be developed in common for the LHC
experiments.
The current status of the event object modelling and its usage in LHCb are
presented and the prospects of further developments are discussed.Comment: Talk from the 2003 Computing in High Energy and Nuclear Physics
(CHEP03), La Jolla, Ca, USA, March 2003, 7 pages, LaTeX, 2 eps figures. PSN
MOJT00
- …