Você está na página 1de 6

Undergraduate projects, technical papers and articles

done by
Mr. Sumant U. Tambe

PROJECTS

1. Node Listing Based Global Data Flow Analysis

This is my final year BE (Bachelor of Engineering) project under Asst. Prof. Uday
Khedker of I.I.T., Bombay. The final goal of the research work is to develop
“Generalized theory of density of graphs". We are working on a new concept called
"Density of a graph". From the research done so far we know that density promises to
establish a better lower bound on the length of node listing.
Aho and Ullman proposed a theory for upper bound on the length of node listing,
hence we implemented Aho-Ullman algorithm to verify this proposition and indeed got the
length of the node listing always less than n + 5n log n rather close to n + 2n log n.

Research in I.I.T. (Bombay):

The node listing obtained by implementing Aho-Ullman algorithm is redundant


because it has repeated occurrences of many nodes. Redundancy creeps in because the
algorithm does not consider internal structure of the flow graph to find out the minimal
necessary condition for covering all acyclic paths.
This in turn implies that the length of node listing and sequence of nodes are very
much dependant on the patterns observed in the flow graph. To analyze such patterns and
their effect on node listing, our guide Dr. Uday Khedker from IIT, Bombay developed a
new concept called “Density of a graph”.

Our work:

We show that Aho-Ullman algorithm is an abstract framework because their


research paper does not give any specific method of separating regions in a flow graph,
which is an essential step of their algorithm. We also show that the method we applied for
the implementation is indeed correct and gives worst case node listing of the flow graph.
We implemented Aho-Ullman algorithm to find out node listing of a reducible flow
graph. This 4000 line software was developed in C++ using Standard Template Library
(STL) using gcc compiler in Linux. This implementation is done in the context of lance
compiler. Lance compiler generates Intermediate Representation (IR) of any C program.
This IR is nothing but C language program with only gotos and labels. We also developed a
parser for this Lance generated IR using bison++ and flex++, which are compiler
development tools for C and C++ in Linux. Virtually the program can calculate node listing
of any C program no matter how large.
As a part of research in IIT one of the aims was to discover certain density preserving
transformations on reducible flow graphs, which virtually reduce the graph and hence
computation required is less. For this purpose we developed software called Rapid Graph
Transformation Toolkit in Java. This toolkit is helpful in transforming and analyzing
graphs quickly. Computer does needlessly repetitious processing of graphs (finding out
node lists, finding density etc.) and thus simplifies the researchers’ work.

1
Undergraduate projects, technical papers and articles
done by
Mr. Sumant U. Tambe

2. Little Quilt Language Interpreter Project

Little Quilt is a language specially designed for learning the basics of functional
programming languages. ‘Little Quilt’, Language of Expressions: is small enough to
permit a short description, different enough to require description, yet representative
enough of programming languages to make description worthwhile. The earliest
programming languages began with integers, reals and arrays of integers and reals; these
too can be visualized and discussed independently of the constructs in the language.
Likewise Little Quilt manipulates geometric objects with a height, a width and texture.

Little Quilt Project:

I came across this project as an assignment given by Prof. Uday Khedker from
I.I.T. Bombay. As we approached him to acquire a BE project under his guidance, he
wanted to test our programming skills on the basis of this mini project. He told us that in
order to develop an interpreter we would need to learn Lex and Yacc compiler
generation tools in Linux, which we knew nothing about. But we decided to take the
challenge and we could finish it in a short span of 13 days. We got final year project on
the basis of successful accomplishment of this mini project.

I led entire coding work. I got good experience of developing a lexer and parser of
a high level language. Development of interpretation logic of program was also a great
fun. This really prompted my interest in compilers. We discovered unique solutions to
the problems we faced. Some of them are listed below.

• Computer representation/evaluation of user defined multi-parameter functions.


• Computer representation/evaluation of list of parameters in a user defined
functions.
• Ingenious use of stack to make behave a global variable like a local variable
during unwinding of inherent recursion of Yacc parser.

Since ‘Little Quilt’ is a high level language, its grammar is as complex as that of any
typical high-level language. Hence coding the grammar in Yacc was another challenge.

An example of a program in Little Quilt. Output:

let
fun unturn(x) = turn(turn(turn(x)))
fun pile(x,y) = unturn(sew(turn(y),turn(x)))
val aa = pile(a,turn(turn(a)))
val bb = pile(unturn(b),turn(b))
val p = sew(bb,aa)
val q = sew(aa,bb)
in
pile(p,q)
end
2
Undergraduate projects, technical papers and articles
done by
Mr. Sumant U. Tambe

3. Paint Brush in VC++ and Microsoft Foundation Classes (MFC)

This software was developed as a part of practical of Graphical User Interface


subject of 8th semester of Information Technology Engineering. The aim was to get
acquainted with the user interface development technology. Development is done in
Win32 platform.
Microsoft Foundation Classes (MFC) were used extensively to develop this
application. Messages, events, Foundation Class Library were used. I became well
versed with the Visual C++ 6.0 Integrated Development Environment. (Visual
Studio IDE)

Features of Paint Brush are as follows:

• Single Document Interface (SDI) application.


• Cut-Copy-Paste Menu.
• Drawing basic graphic elements using rubber-banding algorithm.
• Using toolbar for selecting different basic graphic drawing elements.
• File open, save dialog box.
• Color Palate select dialog box.

Sample Output of Paint Brush

3
Undergraduate projects, technical papers and articles
done by
Mr. Sumant U. Tambe

4. An Object Oriented Software in Turbo C++ 3.0: “Paint Brush”

Paint Brush is an Object Oriented, full screen GUI based, interactive, mouse
driven application. This software is developed in Turbo C++ 3.0 for MS-DOS using
Borland Graphics Interface (BGI) Library. The algorithms from Computer
Graphics and principles of Object Oriented Software are united in this single
software.

This project was developed as a part of curriculum of undergraduate course of


Object Oriented Programming Methodology in third year of Engineering. Main
features of this software are listed below.

• Development of a GUI framework for interactive applications like Paint


Brush. This framework uses several design patterns and abstract classes. It
works in MS-DOS. This framework uses an alternative of function pointer
callback.
• Thread class, which completely encapsulates mechanism to handle
concurrency in MS-DOS. This class makes use of Interrupts and ISR to
give an illusion of concurrency to the clients. The program can have two
threads of execution simultaneously.
• Singleton and Iterator design patterns were used in development of the
framework. MouseSingleton class provides all mouse services to
registered listeners of mouse. Thread, MouseSingleton and Button class
together achieve reuse of framework code for interactive event driven
applications.
• Use of function objects / functionoids / functors objects instead of
traditional callback functions in framework. They are safer and more
flexible alternative to function pointer callbacks.
• Container class design with iterators. Linked list class was developed
using templates, which also support forward read interators.
• Class and function templates are used.
• Other than this, constructing class hierarchy, abstract base classes,
inheritance, polymorphism is also involved.
• Algorithms I studied in Computer Graphics course are used for drawing
line, circle, and ellipse and to floodfill those objects.

This software makes use of some advanced concepts in Object Oriented


Programming. These techniques are much above the prescribed syllabus of the
undergraduate course Object Oriented Software Methodology by Mumbai University.

4
Undergraduate projects, technical papers and articles
done by
Mr. Sumant U. Tambe

TECHNICAL PAPER PRESENTATION

Towards the 128-bit Era of Cryptography (AES)

Venue: COSMOS Paper Presentation Contest Abhiyantriki* , 2001, K. J. Somaiya COE.


Topic: Cryptography and Internet Security.
Contestants:
1. Sumant U. Tambe (Third Year, Information Technology)
2. Pushkar D. Patankar (Third Year, Information Technology)

Abstract:

This paper explores the most recent advancements, in the world of


cryptography. Central theme is to let people know about AES (Advanced
Encryption Standard), its technical details and advantages over its predecessor
DES.

Main points:

• DES (Data Encryption Standard), a symmetric block cipher,


conventionally used for encrypted communication. The paper covers brief
idea about DES its counterpart, The Triple DES, along with their
disadvantages. This algorithm now shows signs of old age.

• This paper gives brief idea about the efforts taken by NIST in order to
overcome the disadvantages of DES and to standardize new encryption
algorithm Rijndael (“Rain Doll”) as AES. This was selected from 5 final
contesting algorithms. AES proves to be a very efficient and robust
algorithm.

• The paper further tries to give detailed explanation of Rijndael


algorithm, which is a symmetric algorithm with variable key and block
length. Algorithm specifications along with implementation details of
Rijndael are explained in lucid and clear manner. Wide range applications
of AES are covered viz. mobile communication, Internet applications and
right from smart cards to super computers.

• This paper also highlights the comparative advantages of Rijndael over


remaining 4 contesting algorithms. It aims at building confidence in
people about the recent standards and accelerating the adoption of
AES in industry.

*
An inter-collegiate technical festival.

5
Undergraduate projects, technical papers and articles
done by
Mr. Sumant U. Tambe

TECHNICAL ARTICLE

Interfacing assembly language routines in C

This technical article helps in interfacing assembly routines in C language. Most


serious C or C++ programmers must face the task of interfacing assembly language
subroutines with the language. Because C and C++ are compiled languages, assembly
language subroutines can be linked as the final stage of program development. 8086
assembly language is taken in consideration.

Following topics are addressed in the article:

• How subroutines are invoked.


• How parameters are passed.
• How values are returned from subroutines.
§ Through the stack.
§ Through a register.
§ Through memory.
• Convention followed by Turbo C++ 3.0 compiler for MS-DOS.
• Memory models for C programs.
• General interfacing guidelines.
• Two methods of interfacing which follow C calling standard.
§ Using Assembler directives for C style function calling.
§ Manually write assembly instructions for C style function
calling.
• Explanation with examples and lot of assembly code.

This article is published online at http://www.funducode.com/freec/misc_c.htm†


A website of Mr. Yashavant Kanetkar, a leading computer book author

Você também pode gostar