Results 1  10
of
100
The Cecil Language, Specification and Rationale
, 1993
"... Cecil is a new purely objectoriented language intended to support rapid construction of highquality, extensible software. Cecil combines multimethods with a classless object model, objectbased encapsulation, and optional static type checking. Cecil's static type system distinguishes between ..."
Abstract

Cited by 121 (21 self)
 Add to MetaCart
Cecil is a new purely objectoriented language intended to support rapid construction of highquality, extensible software. Cecil combines multimethods with a classless object model, objectbased encapsulation, and optional static type checking. Cecil's static type system distinguishes between subtyping and code inheritance, but Cecil enables these two graphs to be described with a single set of declarations, optimizing the common case where the two graphs are parallel. Cecil includes a fairly flexible form of parameterization, including both explicitly parameterized objects, types, and methods and implicitly parameterized methods related to the polymorphic functions commonly found in functional languages. By making type declarations optional, Cecil aims to support mixed exploratory and production programming styles. This document describes the design of the Cecil language as of March, 1993. It mixes the specification of the language with discussions of design issues and explanations of...
Galois Groups of Second and Third Order Linear Differential Equations
 J. Symb. Comp
, 1997
"... this paper we show how factorization properties of these symmetric powers can be used to determine structural properties of the galois groups of second and third order linear differential equation. This in turn will allow us to give necessary and sufficient conditions for these linear differential e ..."
Abstract

Cited by 63 (17 self)
 Add to MetaCart
this paper we show how factorization properties of these symmetric powers can be used to determine structural properties of the galois groups of second and third order linear differential equation. This in turn will allow us to give necessary and sufficient conditions for these linear differential equations to have liouvillian solutions. For example we show (Corollary 4.4):
The Cecil language  specification and rationale: Version 3.2
, 2004
"... Cecil is a purely objectoriented language intended to support rapid construction of highquality, extensible software. Cecil combines multimethods with a simple classless object model, a kind of dynamic inheritance, modules, and optional static type checking. Instance variables in Cecil are access ..."
Abstract

Cited by 57 (4 self)
 Add to MetaCart
Cecil is a purely objectoriented language intended to support rapid construction of highquality, extensible software. Cecil combines multimethods with a simple classless object model, a kind of dynamic inheritance, modules, and optional static type checking. Instance variables in Cecil are accessed solely through messages, allowing instance variables to be replaced or overridden by methods and vice versa. Cecil’s predicate objects mechanism allows an object to be classified automatically based on its runtime (mutable) state. Cecil’s static type system distinguishes between subtyping and code inheritance, but Cecil enables these two graphs to be described with a single set of declarations, streamlining the common case where the two graphs are parallel. Cecil includes a fairly flexible form of parameterization, including explicitly parameterized objects, types, and methods, as well as implicitly parameterized methods related to the polymorphic functions commonly found in functional languages. By making type declarations optional, Cecil aims to allow mixing of and migration between exploratory and production programming styles. Cecil supports a module mechanism that enables independentlydeveloped subsystems to be encapsulated, allowing them to be typechecked and reasoned about in isolation despite the presence of multimethods and subclassing. Objects can be extended externally with additional
Integrating computer algebra into proof planning
 Journal of Automated Reasoning
, 1998
"... Abstract. Mechanised reasoning systems and computer algebra systems have different objectives. Their integration is highly desirable, since formal proofs often involve both of the two di erent tasks, proving and calculating. Even more importantly, proof and computation are often interwoven and not e ..."
Abstract

Cited by 44 (27 self)
 Add to MetaCart
(Show Context)
Abstract. Mechanised reasoning systems and computer algebra systems have different objectives. Their integration is highly desirable, since formal proofs often involve both of the two di erent tasks, proving and calculating. Even more importantly, proof and computation are often interwoven and not easily separable. In this contribution we advocate an integration of computer algebra into mechanised reasoning systems at the proof plan level. This approach allows to view the computer algebra algorithms as methods, that is, declarative representations of the problem solving knowledge speci c to a certain mathematical domain. Automation can be achieved in many cases bysearching for a hierarchic proof plan at the methodlevel using suitable domainspeci c control knowledge about the mathematical algorithms. In other words, the uniform framework of proof planning allows to solve a large class of problems that are not automatically solvable by separate systems. Our approach also gives an answer to the correctness problems inherent insuch an integration. We advocate an approach where the computer algebra system produces highlevel protocol information that can be processed by aninterface to derive proof plans. Such a proof plan in turn can be expanded to proofs at di erent levels of abstraction, so the approach iswellsuited for producing a highlevel verbalised explication as well as for a lowlevel machine checkable calculuslevel proof. We present an implementation of our ideas and exemplify them using an automatically solved example. Changes in the criterion of `rigour of the proof ' engender major revolutions in mathematics.
Polynomial gcd computations over towers of algebraic extensions
 In Proc. AAECC11
, 1995
"... ..."
FOXBOX: A System for Manipulating Symbolic Objects in Black Box Representation
, 1998
"... The FOXBOX system puts in practice the black box representation of symbolic objects and provides algorithms for performing the symbolic calculus with such representations. Black box objects are stored as functions. For instance: a black box polynomial is a procedure that takes values for the variabl ..."
Abstract

Cited by 29 (12 self)
 Add to MetaCart
The FOXBOX system puts in practice the black box representation of symbolic objects and provides algorithms for performing the symbolic calculus with such representations. Black box objects are stored as functions. For instance: a black box polynomial is a procedure that takes values for the variables as input and evaluates the polynomial at that given point. FOXBOX can compute the greatest common divisor and factorize polynomials in black box representation, producing as output new black boxes. It also can compute the standard sparse distributed representation of a black box polynomial, for example, one which was computed for an irreducible factor. We establish that the black box representation of objects can push the size of symbolic expressions far beyond what standard data structures could handle before. Furthermore, FOXBOX demonstrates the generic program design methodology. The FOXBOX system is written in C++. C++ template arguments provide for abstract domain types. Currently, F...
Signatures: A Language Extension for Improving Type Abstraction and Subtype Polymorphism in C++
 SOFTWARE–PRACTICE AND EXPERIENCE
, 1995
"... ..."
Specifying C++ concepts
 In Proc. 33rd ACM SIGPLANSIGACT Symposium on Principles of Programming Languages (POPL
, 2006
"... C++ templates are key to the design of current successful mainstream libraries and systems. They are the basis of programming techniques in diverse areas ranging from conventional generalpurpose programming to software for safetycritical embedded systems. Current work on improving templates focuses ..."
Abstract

Cited by 22 (0 self)
 Add to MetaCart
C++ templates are key to the design of current successful mainstream libraries and systems. They are the basis of programming techniques in diverse areas ranging from conventional generalpurpose programming to software for safetycritical embedded systems. Current work on improving templates focuses on the notion of concepts (a type system for templates), which promises significantly improved error diagnostics and increased expressive power such as conceptbased overloading and function template partial specialization. This paper presents C++ templates with an emphasis on problems related to separate compilation. We consider the problem of how to express concepts in a precise way that is simple enough to be usable by ordinary programmers. In doing so, we expose a few weakness of the current specification of the C++ standard library and suggest a far more precise and complete specification. We also present a systematic way of translating our proposed concept definitions, based on usepatterns rather than function signatures, into constraint sets that can serve as convenient basis for concept checking in a compiler.
Algorithmic Methods for Lie Pseudogroups
, 1993
"... this paper, we will present such an algorithm and its implementation in the computer algebra system AXIOM. ..."
Abstract

Cited by 21 (15 self)
 Add to MetaCart
this paper, we will present such an algorithm and its implementation in the computer algebra system AXIOM.