AboutSoftwareForumsDocumentationQuick LinksGot a question?Got a question or comment? Contact Hridesh Rajan. |
What is Ptolemy?Ptolemy is a programming language whose goals are to improve a software engineer's ability to separate conceptual concerns. In particular, Ptolemy's features are useful towards modularization of crosscutting concerns. Isn't Ptolemy just an OO language with native event handling?At a first glance this is one of the distinctions between Ptolemy and object-oriented languages such as Java. Programming languages such as C# eliminate a bit more of these distinctions because they support basic event handling as a language feature. However, Ptolemy also provides event types as a mechanism to:
What is implicit invocation (II) design style?We have prepared a brief background on implicit-invocation (II) design style and its limitations see here. What is Aspect-oriented Programming (AOP) ?For a brief background on aspect-oriented programming see here. Is the primary benefit to AOP that it automates adding the same lines of code to every method?No, we elaborate below. With traditional object-oriented techniques, when we implement some requirements (e.g. exception handling, synchronization, resource sharing and other resource management protocols, logging, etc) such implementation is typically scattered everywhere in the software and tangled with implementation of other requirements. Such requirements are called crosscutting requirements. As a result, when maintenance requests arise in these type of requirements developers have to study a large number of modules in the software system to identify changes that are required to address maintenance request. Objective of aspect-oriented software development (AOSD) is to provide programming language mechanisms that enable software developers to implement these type of requirements (e.g. exception handling) in separate modules. Why was the Ptolemy language designed?The Ptolemy language was designed to combine best ideas from implicit invocation (II) design style and aspect-oriented (AO) languages in the style of AspectJ and to not have the limitations of these styles. Briefly, Ptolemy was designed to solve the following problems with AO and II paradigms:
For a more detailed motivation of the language design, please see our web-page on this topic here. What are the design goals of the Ptolemy language?Ptolemy has the following main design goals:
All these goals are important for scalability of software development processes but harder to achieve in current AO languages in the style of AspectJ. Do you have a compiler?Yes. The Ptolemy compiler offers support for compiling and running programs from command-line as well as from within Ant. To get started with setting up an environment for running Ptolemy programs please see our page on installing and running the compiler. Once you have downloaded and installed the compiler, you could look at the examples included in the distribution. Or alternatively, you could also consult our web-pages on getting started with Ptolemy. Can I download the source code for the Ptolemy compiler and modify it?Yes. The Ptolemy compiler for Java programs is an open source project on sourceforge.net. Page last modified on $Date: 2011/02/09 17:21:39 $ |