My
research interest lies in the intersection of Software
Verification and Qualification, Compiler Construction and
Programming languages.
Teaching
Experiences
(Fall 2011)
Teaching Assistant of Professor Palsberg for “ Compiler Construction ” Department of Computer Science,
University of California Los Angeles
(Winter 2010)
Teaching Assistant of Professor Smallberg for “Intro
to Computer Science 2” Department of Computer Science,
University of California Los Angeles
(Fall 2007)
Teaching Assistant of Professor Sandahl for “Software
Engineering” Department of Computer and Information
Science, Linkoping University, Linkoping, Sweden
(Fall 2007)
Teaching Assistant of Professor Nilsson for “Data
Structures and Algorithms” Department of Computer and
Information Science, Linkoping University, Linkoping, Sweden
(Fall 2007)
Teaching Assistant of Professor Svensson for “Human
Computer Interactions” Department of Computer and
Information Science, Linkoping University, Linkoping, Sweden
(Fall 2005)
Teaching Assistant of Professor Jamzad for “Data
Structures and Algorithms” Department of Computer
Engineering, Sharif University of Technology
(Fall 2005)
Teaching Assistant of Professor Beygi for “Design and
Analysis of Algorithms” Department of Computer
Engineering, Sharif University of Technology
(Spring 2005)
Teaching Assistant of Professor Beygi for “Data
Structures and Algorithms” Department of Computer
Engineering, Sharif University of Technology
(Spring 2005)
Teaching Assistant of Professor Beygi for “Design and
Analysis of Algorithms” Department of Computer
Engineering, Sharif University of Technology
(Fall 2004-2005)
Teaching Assistant of Professor Izadi for “Theory of
Machines & Languages” Department of Computer
Engineering, Sharif University of Technology
(Fall 2004-2005)
Teaching Assistant of Professor Beygi for “Design and
Analysis of Algorithms” Department of Computer
Engineering, Sharif University of Technology
(Fall
2003-2004) Teaching Assistant of Professor Izadi for
“Advanced programming in C++” Department of
Computer Engineering, Sharif University of Technology
Publications
(2008) M. Eslamimehr, Kristian Sandahl, The Survey on Model Based
Testing and Industrial Tools, Department of Computer and
Information Science, Linkoping University.
Conference,
presentations, and Posters
Research
Finding
Lower bound on the Maximum Stack Usage in Embedded Systems
Estimating
the maximum stack memory usage in embedded systems, particularly
in micro controller has received much attention lately . Applying
static analysis techniques for calculating approximate maximum
stack usage has already been successfully tried. However, finding
the maximum stack size at run time is still a topic of ongoing
research. In this project we plan to find a lower bound on the
maximum stack usage of a micro controller which is programmed
using the Virgil
Programming Language. Virgil is a new, light-weight
object-oriented programming language that is designed for
building software for resource-constrained embedded systems at
the lowest level, and it was designed by Professor
Palsberg and Ben
Titzer in compiler group at UCLA. Our idea was to apply the
concept of Directed Testing on Virgil programs to estimate the
time and memory usage for each interrupt. Furthermore, we
guarantee our solution by showing every possible path in the
program has been covered.
Scalable
Topology Language for Many-Core Processors
SPARTA: Samsung
PArallel Real
Time
Architecture
A
Set of tools and a run-time framework that enable superior
performance of CE device software through dynamic (adaptive)
parallelization and system-wide co-ordination of processing,
memory and I/O resources
The
tools will:University.
Aid retrofitting
of concurrency through automated code transformation
Provide a
development framework to ease the construction of concurrent
codes for (soft real-time) stream processing.
Allow both system-
and application-level modeling (and specification) of
adaptive concurrency.
Automatically
derive scheduling policies for given power and resource
usage requirements.
The
run-time environment will:
Dynamically manage
resource mappings according to defined policies.
Eliminate
cross-application QoS interference through resource
partitioning and management
Allow extensions
of chip multi-processing to distributed cloud-based
processing (elastic computing)
CCL: Components
Configuration
Language :
SPARTA
streaming applications are structured as a graph of components
that are "bound" together through connecting ports.
SPARTA's CCL is a domain specific programming language that is
used to rapidly generated component "glue" code for a
component based application. The language provides constructs for
specifying intra-component composition (e.g., ports and
functoids) as well as inter-component composition (e.g.,
application graphs). Ultimately CCL may become a placeholder for
QoS specifications on the application.
|