Towards Hybrid Intensional Programming with JLucid, Objective Lucid, and General Imperative Compiler Framework in the GIPSY

Pure Lucid programs are concurrent with very fine granularity. Sequential Threads (STs) are functions introduced to enlarge the grain size; they are passed from server to workers by Communication Procedures (CPs) in the General Intensional Programming System (GIPSY). A JLucid program combines Java code for the STs with Lucid code for parallel control. Thus first, in this thesis, we describe the way in which the new JLucid compiler generates STs and CPs. JLucid also introduces array support. Further exploration goes through the additional transformations that the Lucid family of languages has undergone to enable the use of Java objects and their members, in the Generic Intensional Programming Language (GIPL), and Indexical Lucid: first, in the form of JLucid allowing the use of pseudo-objects, and then through the specifically-designed the Objective Lucid language. The syntax and semantic definitions of Objective Lucid and the meaning of Java objects within an intensional program are provided with discussions and examples. Finally, there are many useful scientific and utility routines written in many imperative programming languages other than Java, for example in C, C++, Fortran, Perl, etc. Therefore, it is wise to provide a framework to facilitate inclusion of these languages into the GIPSY and their use by Lucid programs. A General Imperative Compiler Framework and its concrete implementation is proposed to address this issue.

[1]  Kenneth C. Louden Compiler Construction: Principles and Practice , 1997 .

[2]  Bo Lu,et al.  Developing the distributed component of a framework for processing intensional programming languages , 2004 .

[3]  Gita Alaghband,et al.  Fundamentals of Parallel Processing , 2002 .

[4]  Edsger W. Dijkstra,et al.  Hierarchical ordering of sequential processes , 1971, Acta Informatica.

[5]  David Flanagan,et al.  Java in a Nutshell , 1996 .

[6]  Joey Paquet,et al.  Object-Oriented Intensional Programming in the GIPSY: Preliminary Investigations , 2005, PLC.

[7]  Bart Jacobs,et al.  Java Program Verification via a Hoare Logic with Abrupt Termination , 2000, FASE.

[8]  Peter Grogono,et al.  Towards a framework for the general intensional programming compiler in the GIPSY , 2004, OOPSLA '04.

[9]  James Goodwill Apache Jakarta Tomcat , 2002, Apress.

[10]  Serguei A. Mokhov,et al.  Objective Lucid - First Step in Object-Oriented Intensional Programming in the GIPSY , 2005, PLC.

[11]  Edsger W. Dijkstra,et al.  Cooperating sequential processes , 2002 .

[12]  Gilbert Babin,et al.  A Two-Level Communication Protocol for a Web Operating System ( WOS TM ) , 1998 .

[13]  A. Karimi,et al.  Master‟s thesis , 2011 .

[14]  David B. Skillicorn,et al.  Models and languages for parallel computation , 1998, CSUR.

[15]  Verzekeren Naar Sparen,et al.  Cambridge , 1969, Humphrey Burton: In My Own Time.

[16]  Gilbert Babin,et al.  Two-level communication protocol for a Web operating system (WOS/sup TM/) , 1998, Proceedings. 24th EUROMICRO Conference (Cat. No.98EX204).

[17]  Armando R. Gingras Dining philosophers revisited , 1990, SGCS.

[18]  William W. Wadge,et al.  Higher-order functional languages and intensional logic , 1999, Journal of Functional Programming.

[19]  Nikolaos S. Papaspyrou,et al.  Software—Practice and Experience , 2005 .

[20]  Yannis Smaragdakis,et al.  Functional programming in C++ using the FC++ library , 2001, SIGP.

[21]  Yannis Smaragdakis,et al.  FC++: Functional tools for object‐oriented tasks , 2002, Softw. Pract. Exp..

[22]  Bo Lu,et al.  DISTRIBUTED EXECUTION OF MULTIDIMENSIONAL PROGRAMMING LANGUAGES , 2003 .

[23]  Chris Dodd,et al.  GLU programmer's guide , 1996 .

[24]  Joey Paquet,et al.  A Generic Framework for Migrating Demands in the GIPSY Demand-Driven Execution Engine , 2005, PLC.

[25]  Iskender Agi,et al.  GLU: A High-Level System for Granular Data-Parallel Programming , 1997, Concurr. Pract. Exp..

[26]  Kaiyu Wan,et al.  Lucx: Lucid Enriched with Context , 2005, PLC.

[27]  Clark S. Lindsey,et al.  JavaTech: The Java Native Interface (JNI) , 2005 .

[28]  A. Hanks Canada , 2002 .

[29]  Serguei A. Mokhov,et al.  General Imperative Compiler Framework within the GIPSY , 2005, PLC.

[30]  William H. Press,et al.  Numerical recipes in C , 2002 .

[31]  Saul Kripke,et al.  A completeness theorem in modal logic , 1959, Journal of Symbolic Logic.

[32]  Joey Paquet,et al.  GIPSY - A Platform for the Investigation on Intensional Programming Languages , 2005, PLC.

[33]  Bruce K. Bell,et al.  Volume 5 , 1998 .

[34]  J. Meigs,et al.  WHO Technical Report , 1954, The Yale Journal of Biology and Medicine.

[35]  E. Nagel Meaning and Necessity. A Study in Semantics and Modal Logic , 1948 .

[36]  William W. Wadge,et al.  Lucid - A Formal System for Writing and Proving Programs , 1976, SIAM J. Comput..