You are on page 1of 20

Implementing xDR in

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 safety­critical 
applications like nuclear data acquiring 
processors

“Reliability” was the keyword
Reference: IEEE Transactions on Nuclear Science, Vol. NS­26, 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 back­end” Phil Cook, Jim Welsh,
Ian J. Hayes, University of Queensland, Australia ­ May 2005
More on UQ* systems

Reference: “Building a flexible incremental compiler back­end” 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 daily­used representation ­ XML
Applications

 Parallel Incremental Compilation
­ Like distributed compilation, here, we 
fragment the whole code to parts and compile 
them in parallel
­ If co­located, 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...

You might also like