This paper compares six approaches of object serialization from qualitative and quantitative aspe... more This paper compares six approaches of object serialization from qualitative and quantitative aspects. Those are object serialization in Java, IDL, XStream, Protocol Buffers, Apache Avro, and MessagePack. Using each approach, a common example is serialized to a file and the size of the file is measured. The qualitative comparison works are investigated in the way of checking whether schema definition is required or not, whether schema compiler is required or not, whether serialization is based on ascii or binary, and which programming languages are supported. It is clear that there is no best solution. Each solution makes good in the context it was developed.
This paper describes RuCOS runtime code generator for object serialization embedded into RMI. We ... more This paper describes RuCOS runtime code generator for object serialization embedded into RMI. We developed RuCOS and a modified Java RMI. The feature of RuCOS is dynamic code generation for serialization / deserialization at runtime. We can improve the performance of RMI using RuCOS in comparison with standard Java RMI. In this paper, the implementation issues of RuCOS are described. Key-word: Java, RMI, Object Serialization, Code Mobility, Distributed Computing
This paper proposes a new technique to detect code clones from the lexical and syntactic point of... more This paper proposes a new technique to detect code clones from the lexical and syntactic point of view, which is based on PALEX source code representation. The PALEX code contains the recorded parsing actions and also lexical formatting information including white spaces and comments. We can record a list of parsing actions (shift, reduce, and reading a token) during a compiling process after a compiler finishes analyzing the source code. The proposed technique has advantages for syntax sensitive approach and language independency.
This paper describes design issues and experiment results of an efficient XML parser generator, X... more This paper describes design issues and experiment results of an efficient XML parser generator, Xsong. A traditional compiler construction technique is applied to Xsong so that it realizes both expressiveness and efficiency for parsing XML documents. To compare with the performance of DOM based programs, SAX based programs and a program generated by Xsong, experiments were designed. The experiments showed that the program generated by Xsong is faster than the DOM based programs. Moreover, in regard to memory usages, it is as efficient as the SAX based programs. Key-Words: XML, DOM, SAX, Compiler Compiler, Parser Generator, C++, Java, C#
This paper describes Ribbon (Ruby Instructions Becoming Basic Object Notation), a new representat... more This paper describes Ribbon (Ruby Instructions Becoming Basic Object Notation), a new representation written in a text-based data format using Ruby syntax. The design principle of Ribbon is good readability and simplicity of structured data representation. An important feature of Ribbon is an executable representation. Once Ribbon-related definitions are loaded into a Ruby interpreter, the representation can be executed corresponding to the definitions. Java programs are expected to read/write Java objects to persistent storage-media, or to traverse the structured data. A program generator was developed to create Ruby and Java programs from Ribbon definitions. In the author's experience, productivity was improved in the design and implementation of programs that manipulate structured data.
This paper describes PALEX, a new source code representation in XML which contains parsing action... more This paper describes PALEX, a new source code representation in XML which contains parsing actions and lexical formatting information. Once a compiler finishes analyzing source code, it can record a list of parsing actions (shift, reduce and reading a token) during a compiling process. PALEX contains the recorded parsing actions and also lexical formatting information, white spaces and comments. It has two features as a source code representation in XML. The first is that it is independent of programming languages. The second is that the original source code can be restored from the PALEX code. For a prototype implementation, the Java compiler GCJ was modified. Syntax rules and lexical definitions are prepared for development of software tools which read the PALEX code and play back the parsing actions. An experiment was designed and the result shows that the size of the generated PALEX code is very large. However, the XML-based source code representation together with parsing actions offsets the cost of the large storage space.
This paper compares six approaches of object serialization from qualitative and quantitative aspe... more This paper compares six approaches of object serialization from qualitative and quantitative aspects. Those are object serialization in Java, IDL, XStream, Protocol Buffers, Apache Avro, and MessagePack. Using each approach, a common example is serialized to a file and the size of the file is measured. The qualitative comparison works are investigated in the way of checking whether schema definition is required or not, whether schema compiler is required or not, whether serialization is based on ascii or binary, and which programming languages are supported. It is clear that there is no best solution. Each solution makes good in the context it was developed.
This paper describes RuCOS runtime code generator for object serialization embedded into RMI. We ... more This paper describes RuCOS runtime code generator for object serialization embedded into RMI. We developed RuCOS and a modified Java RMI. The feature of RuCOS is dynamic code generation for serialization / deserialization at runtime. We can improve the performance of RMI using RuCOS in comparison with standard Java RMI. In this paper, the implementation issues of RuCOS are described. Key-word: Java, RMI, Object Serialization, Code Mobility, Distributed Computing
This paper proposes a new technique to detect code clones from the lexical and syntactic point of... more This paper proposes a new technique to detect code clones from the lexical and syntactic point of view, which is based on PALEX source code representation. The PALEX code contains the recorded parsing actions and also lexical formatting information including white spaces and comments. We can record a list of parsing actions (shift, reduce, and reading a token) during a compiling process after a compiler finishes analyzing the source code. The proposed technique has advantages for syntax sensitive approach and language independency.
This paper describes design issues and experiment results of an efficient XML parser generator, X... more This paper describes design issues and experiment results of an efficient XML parser generator, Xsong. A traditional compiler construction technique is applied to Xsong so that it realizes both expressiveness and efficiency for parsing XML documents. To compare with the performance of DOM based programs, SAX based programs and a program generated by Xsong, experiments were designed. The experiments showed that the program generated by Xsong is faster than the DOM based programs. Moreover, in regard to memory usages, it is as efficient as the SAX based programs. Key-Words: XML, DOM, SAX, Compiler Compiler, Parser Generator, C++, Java, C#
This paper describes Ribbon (Ruby Instructions Becoming Basic Object Notation), a new representat... more This paper describes Ribbon (Ruby Instructions Becoming Basic Object Notation), a new representation written in a text-based data format using Ruby syntax. The design principle of Ribbon is good readability and simplicity of structured data representation. An important feature of Ribbon is an executable representation. Once Ribbon-related definitions are loaded into a Ruby interpreter, the representation can be executed corresponding to the definitions. Java programs are expected to read/write Java objects to persistent storage-media, or to traverse the structured data. A program generator was developed to create Ruby and Java programs from Ribbon definitions. In the author's experience, productivity was improved in the design and implementation of programs that manipulate structured data.
This paper describes PALEX, a new source code representation in XML which contains parsing action... more This paper describes PALEX, a new source code representation in XML which contains parsing actions and lexical formatting information. Once a compiler finishes analyzing source code, it can record a list of parsing actions (shift, reduce and reading a token) during a compiling process. PALEX contains the recorded parsing actions and also lexical formatting information, white spaces and comments. It has two features as a source code representation in XML. The first is that it is independent of programming languages. The second is that the original source code can be restored from the PALEX code. For a prototype implementation, the Java compiler GCJ was modified. Syntax rules and lexical definitions are prepared for development of software tools which read the PALEX code and play back the parsing actions. An experiment was designed and the result shows that the size of the generated PALEX code is very large. However, the XML-based source code representation together with parsing actions offsets the cost of the large storage space.
Uploads
Papers by Kazuaki Maeda