| Ishikawa, Y., "Meta-Level Architecture for Extendable C++", Technical Report No. TR-94024, Available from Tsukuba Research Centre, Real World Computing Partnership, Tsukuba Mitsui Building 16F, 1-6-1Takezono, Tsukuba-shi, Ibaraki 305, Japan, 1995. |
....contributors include AL 1 D [Okamura92] RbCl [Ichisugi92] and Cognac [Murata94] The latter language was developed to support the implementation of the Apertos operating system (see section 4.2. 1 below) Reflective extensions to C have also been developed including Open C [Chiba93] and MPC [Ishikawa95]. It should be stressed however that, unlike Iguana, these languages only support compile time reflection. Similarly, there has been a lot of research on reflective extensions to Java. The most notable languages are metaXa (formerly MetaJava) Golm97] and Reflective Java [Wu97] Note that Java ....
Ishikawa, Y., "Meta-Level Architecture for Extendable C++", Technical Report No. TR-94024, Available from Tsukuba Research Centre, Real World Computing Partnership, Tsukuba Mitsui Building 16F, 1-6-1Takezono, Tsukuba-shi, Ibaraki 305, Japan, 1995.
....many useful language extension systems, a user must select only one for their own project. Generally, it is impossible to merge several such language extensions or to eliminate harmful features from the extended system. Systems with a meta object protocol (MOP) such as CLOS [KdRB91] MPC [Ish94] OpenC [Chi95] EC [CMP 97] or JTRANS [KK97] have solved this problem. These systems allow the implementation of language extensions as modules that can be selected by the users. Yet, extensibility of low level constructs and of syntax, and modularity of extensions can be slightly ....
....rules from standard Java. Once the parsed program has been transformed into a tree, the preprocessor programmers can easily manipulate it from their programs. The usefulness of such kind of tool has already been proven by Lisps and adapted to C by various systems like Sage [ea94] MPC [Ish94] or OpenC [Chi95] Direct modification of constructs in a parsing pass is a language oriented extension; in addition, the programmer can also extend EPP in a more compiler oriented way. EPP basically performs three passes: the parsing pass, the macro expansion pass and the code emission pass. ....
Y. Ishikawa. Meta-level Architecture for Extendable C++, Draft Document. Technical Report Technical Report TR-94024, Real World Computing Partnership, 1994.
....developed by a synthesis of ideas of the techniques illustrated in the previous chapter. Especially, we took the basic protocol structure from the CLOS MOP [36] and we took the basic architecture from Lisp macros. The OpenC MOP is also influenced by Intrigue [37] Anibus [50, 51] and MPC [33, 34]. 4.1 Overview The OpenC compiler is fed with two kinds of code. One is ordinary source code and the other is meta code that specifies how the source code is processed. Both of them are written in OpenC . The compiler first runs the C preprocessor, and then performs source to source ....
....source code. CRML [31] has a compile time MOP for ML [43] Its MOP provides the capability similar to Lisp macros and makes it possible to use new syntax in ML. However, it also involves the same limitations as Lisp macros. For example, it does not enable self modification. The MPC MOP [33, 34] is another compile time MOP for C . As in OpenC , it allows programmers to control source code translation. The most significant difference between MPC and OpenC is that the MPC MOP does not provide non locality based on the class system. Instead, each piece of program is dispatched to a ....
Ishikawa, Y., "Meta-Level Architecture for Extendable C++," Technical Report 94024, Real World Computing Partnership, Japan, 1994.
....is due to the CLOS MOP[11] The major difference is that the CLOS MOP s metaobjects are runtime ones and thus the CLOS MOP requires relatively large runtime environment if it is directly applied to C . The idea of a meta interface of the early stage of compilation was also proposed in MPC [8]. Like the CLOS MOP and OpenC Version 1, a number of systems [15, 7, 17, 22] adopt runtime metaobjects, which represent underlying mechanisms such as the language interpreter and the OS kernel, and are responsible for runtime behavior of the system. Since the runtime metaobjects allow users to ....
Ishikawa, Y., "Meta-Level Architecture for Extendable C++," Technical Report 94024, Real World Computing Partnership, Japan, 1994.
....potentially many useful language extension systems, the user must select just one for a project, because it is generally impossible to merge several language extensions or eliminate harmful features from the extended system. Systems with a meta object protocol (MOP) such as CLOS [KdRB91] MPC [Ish94] OpenC [Chi95] EC [C 97] or JTRANS [KK97] have solved this problem. These systems allow the implementation of language extensions as modules that can be selected by users. However, extensibility of syntax is slightly restricted in these systems. 2.2 Description of EPP The Extensible ....
....Java. Once the parsed program has been transformed into a tree, a preprocessor programmer can easily manipulate it from a program. The usefulness of this kind of tool has already been proven by Lisp implementations, and has been adapted to C by various systems like Sage [B 94] MPC [Ish94] and OpenC [Chi95] EPP enables preprocessor programmers to write an extension as a separate module. We call the extension modules EPP plugins. Several plugins can be programmed with EPP, then assembled together if they do not cause conflicts (among identifiers, for example) Users of the ....
Y. Ishikawa. Meta-level Architecture for Extendable C++, Draft Document. Technical Report Technical Report TR-94024, Real World Computing Partnership, 1994.
.... consortium [6] has defined a model of parallel C computation based on call reification and a meta object protocol derived from the work on reflection in the programming language research community [4] In Japan, the Real World Computing Partnership has established the MPC programming system [3] which provides broad and powerful mechanisms for user level extensions to a C compiler. In the United States, the HPC consortium has focused on extensions to standard C class libraries, compiler directives, and a few small language extensions in an attempt to achieve portable parallel ....
Yutaka Ishikawa. Meta-level architecture for extendable c++. Technical Report TR-94024, Real World Computing Group, January 1995.
....programs are easily re used and composed. However, efficient implementation of such an architecture is not obvious. Recently, extensible compilers based on the metalevel architecture so called compile time metaobject protocol (MOP) have been proposed, especially for parallel distributed systems[1, 4, 13]. Most language constructs discussed in this paper could also be implemented with these MOPs. However, they may force different programming style at the meta level; since they are compilers, programmers have to write their extensions as program transformation rules, in which programmers must ....
Yutaka Ishikawa. Meta-level architecture for extendable C++. Technical Report TR-94024, Real World Computing Partnership, 1994.
....language based on C [7, 9] MPC provides a SPMD parallel programming model and threads of control to extract the full power of parallel machines or workstation clusters. One of the most unique features of MPC is metalevel programming which enables users to extend its language features [6, 8]. The MPC compiler consists of a front end processor and a back end processor. The front end can also generate C source code and the generated C code can be compiled with GNU g compiler. The MPC language features and the meta programming results are thus compiled and will run on most ....
....used in the evaluation. In this program, threads are forked to the next processor sequentially. A thread forks another thread to the next processor and terminates. In the notation of thread invocation in this program, the function is forked asynchronously way (line 3) For more details, refer [6, 8, 9]. We chose those two evaluation programs because they are positioned on opposite sides in the execution pattern. The fibonacci program forks a number of threads almost explosively. In the round trip program, however, there is no more than one running thread and Table 1: Execution time of ....
Yutaka Ishikawa. Meta-Level Architecture for Extendable C++. Technical Report TR--94024, RWC, January 1995.
....memory, a parallel process with timing constraints, and an interprocess communication abstraction. During the 1994 fiscal year, we investigated a new job scheduling technique, called Distributed Queue Tree (DQT) to realize time sharing and space sharing environment[1] The objectives of MPC [2, 3] are the kernel implementation and software migration from a sequential machine to a massively parallel machine. C and C programmers can move easily to parallel environments. In the 1994 fiscal year, we focused on the metalevel processing facility to enable designers to extend the C syntax and ....
.... Sociological Simulations Real Time Speech, Motion Recognition Real Time Decision Making Signal Noise Recognition New Information Processing Paradigm Learning Incomplete Information Processing Flexible Processing Figure 1: System Software Organization 2 MPC The MPC metalevel architecture[3] is designed to allow programmers to introduce new notation and redefine default code generation more easily. This capability is very useful when implementing extended C languages as well as some performance and debugging monitors. The metalevel architecture consists of a metasystem with the ....
Y. Ishikawa, "Meta-Level Architecture for Extendable C++," RWC Technical Report, TR-- 94024, 1995.
....any syntax extensions the user wanted. Instead, the MPC metalevel architecture is designed so that an arbitrary grammar rule is not dynamically defined but extension patterns are predefined. The extension patterns are designed based on existing extended C language features as summarized in [5]. Among others, they include i) new modifiers for a specifier or a declarator, ii) new expressions, iii) new statements, and iv) new structural declarations as shown in Table 1. The parser contains the grammar for both C syntax and the extension patterns. The lexical analyzer keyword table ....
....statement is designed to introduce new syntax. The program in Figure 4 is the same as the following: 1 syntaxdef statement mutex 2 MutexStmt : public NewStmt1 3 public: 4 code(OStream) 5 ; 3 Example We have several examples using the MPC metalevel architecture. The technical report[5], describing the old MPC metalevel architecture, shows programs implementing i) the atomic class which creates an instance object where execution threads are performed in a mutually exclusive way, ii) a global pointer that enables remote memory read and write operations, iii) a persistent ....
[Article contains additional citation context not shown here]
Yutaka Ishikawa. Meta-Level Architecture for Extendable C++. Technical Report TR-- 94024, RWC, January 1995.
....a parallel process with timing constraints, and a parallel interprocess communication abstraction. In order to implement a time sharing and space sharing environment[5] we investigated a new job scheduling technique, called Distributed Queue Tree (DQT) An extended C language called MPC [8, 6, 7] has been designed for the kernel implementation and software migration from a sequential machine to the RWC 1 massively parallel machine. MPC supports control and data parallel programming and metalevel programming. The MPC metalevel programming facility enables a language designer or ....
....parallel description primitives. Higher parallel distributed constructs, such as data parallel statements and distributed active objects, are implemented using the extendable feature. To implement this approach, we designed a metalevel architecture for C . The MPC metalevel architecture[7] defines an abstract compiler described in C and its modification facility called MPC metaobject protocol. Programmers can easily introduce new syntax notation and redefine default code generation using the MPC metaobject protocol. Using this capability, we will develop new ....
[Article contains additional citation context not shown here]
Yutaka Ishikawa. Meta-Level Architecture for Extendable C++. Technical Report TR--94024, RWC, January 1995.
....where a network, an operating system, and a programming language are co designed. The SeaCoS network interface will support a global memory space with distributed shared memory technology on even heterogeneous machines. The SeaCoS main programming language is an extension of C , MPC [7, 10, 9, 8], which gives the users uniform programming view on the parallel distributed environment. An MPC parallel object encapsulates operations on distributed data. The MPC global addressing scheme allows the users to access a remote object in the same manner as for local object access. Caching ....
....DSM cache size, checking point, process migration, load balancing, and gang scheduling. 3.2 Programming Language The SeaCoS programming language is based on MPC , an extension of C , that supports a compile time and runtime metalevel architecture. The MPC compile time metalevel architecture[7, 10, 9] defines an abstract compiler described in C and a modification facility called the MPC metaobject protocol. Programmers can easily introduce new syntax notations and redefine default code generation using the MPC metaobject protocol. This capability enables us to implement new parallel ....
Yutaka Ishikawa. Meta-Level Architecture for Extendable C++. Technical Report TR--94024, RWC, January 1995.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC