Professional Documents
Culture Documents
Incremental Compilers
By
Mahalingam.P.R
Semester 1 CSIS
Contents
What is xDR
Why do we need xDR in incremental compilers?
Need of the hour
How it works
Design issues while implementing XDR
Possible solutions
Final skeleton of operation
Conclusion
What is xDR?
The term is similar for those who have used
RPC
Stands for External Data Representation
Defines a common format for communication
between two machines or even domains
within the same machine...
One of the best methods to implement
platform independence and overcome
hetrogenity...
Why use xDR?
As discussed in previous sessions,
incremental compilers shouldn't go through
the entire reverse engineering process...
XDR provides some level of stoppage for this
process
Instead of implementing a decompiler as such,
limit till the xDR
Need of the hour...
Incremental compilation is catching up fast
There have been such designs as early as
1979!!!
And , it was used then in safetycritical
applications like nuclear data acquiring
processors
“Reliability” was the keyword
Reference: IEEE Transactions on Nuclear Science, Vol. NS26, No. 4, August 1979 “An
Incremental Compiler for Data Acquisition” L. M. Taff and F. Sporrel
So, what is the difference
now?
But now, the processing has diversified
further...
Quite a lot of hetrogeneous applications used
now
“Integration” is the keyword!!!
How it works...
Generate a xDR for all the source languages
Patch up the required places and recompile
To remove, just remove that portion of the
xDR
SOUNDS EASY... DOESN’T IT???
WELL... IT IS NOT!!!
Design issues
Tracing the portions to be edited is not as simple as
it sounds
The sources are actually merged by the compiler
creating support issues
Also, there are quite a lot of combinations taking into
account the number of source languages and target
architectures and OS available
Reference: “Ambiguity resolution analysis in incremental parsing of natural language”
Fabrizio Costa, Paolo Frasconi, Vincenzo Lombardo, Patrick Sturt and Giovanni
Soda, Department of Information Systems, Universit`a di Firenze. Italy
IEEE TRANSACTIONS ON NEURAL NETWORKS, VOL. 16, NO. 4, JULY 2005
Earlier suggested solutions
Use of Recursive neural networks for selective
interpretation
Problems faced then:
Complicated tree building mechanisms
Modular design difficult to integrate
RNN somewhat difficult to train, and can still
generate errors
Reference: “Ambiguity resolution analysis in incremental parsing of natural language”
Fabrizio Costa, Paolo Frasconi, Vincenzo Lombardo, Patrick Sturt and Giovanni
Soda, Department of Information Systems, Universit`a di Firenze. Italy
IEEE TRANSACTIONS ON NEURAL NETWORKS, VOL. 16, NO. 4, JULY 2005
Some implementations –
Incremental Hope
Reference: “IncH: an Incremental Compiler for a Functional Language”
James Gil de Lamadrid, Jill Zimmerman
Code generator sample –
Incremental Hope
Reference: “IncH: an Incremental Compiler for a Functional Language”
James Gil de Lamadrid, Jill Zimmerman
A flexible back-end – UQ*
compilers
Reference: “Building a flexible incremental compiler backend” Phil Cook, Jim Welsh,
Ian J. Hayes, University of Queensland, Australia May 2005
More on UQ* systems
Reference: “Building a flexible incremental compiler backend” Phil Cook, Jim Welsh,
Ian J. Hayes, University of Queensland, Australia May 2005
Possible solutions
Use traceable xDRs...
We have seen such an xDR and have been using
it quite often XML
Split the compiler to two parts
A compiler to generate the xDR, which is source
language dependent
An interpreter to execute the xDR, which is target
architecture and OS dependent
Final skeleton of operation
Conclusion
We have seen that incremental compilers are
catching up fast, and diversifying into a variety
of applications
Hetrogenity has to be tackled so that the
whole concept doesn't freeze as such
We are also able to arrive at a “wonder xDR”
in a dailyused representation XML
Applications
Parallel Incremental Compilation
Like distributed compilation, here, we
fragment the whole code to parts and compile
them in parallel
If colocated, extremely effective
On a network, the network bandwidth is an
overhead
Reference: “Parallel Incremental Compilation” Neal M Gaffer, University of Rochester
So, what next???
Try to implement this concept of xDR with
languages like XML, which provide universal
data transfer opportunities...
USE OF XML – BASED xDR IN
INCREMENTAL COMPILERS
QUESTIONS???
THANK YOU...