About

Advised by Hridesh Rajan
mbagherz@iastate.edu
Laboratory for Software Design, Dept. of Computer Science, Iowa State University, USA


Research interests

My research interests are in Software Engineering and Programming Languages. In particular, I have worked on improving the correctness of concurrent and event-based software systems by invention and refinement of new and scalable verification (reasoning) techniques. The focus of my current and future research is on using programming languages and formal methods to make software engineering of concurrent, event-based and big data (data intensive) software systems easier, more accessible and more secure.

Appointments

Research Intern, NEC Laboratories of America, New Jersey, USA, 2011
Research Assistant, Laboratory for Software Design, Iowa State University, USA, 2008-2016
Teaching Assistant, Department of Computer Science, Iowa State University, USA
  • Principles of Programming Languages (ComS 342), 2014
  • Principles of Programming Languages (ComS 342), 2011
  • Applied Computer Programming (ComS 107), 2010
  • Principles of Programming Languages (ComS 342), 2009
  • Teaching Assistant, Department of Computer Science, University of Alabama, USA
  • Object Oriented Programming Using C++ (CS 307), 2008
  • Operating Systems (CS 490), 2008
  • Software Engineer, Information Technology and System Center, Huntsville, USA, 2008
    Software Engineer, Data Processing Co., Tehran, Iran, 2006-2007 (National Project)
    Project Manager, Software Engineer, Vira Universal Co., Tehran, Iran, 2004-2006 (National Project)
    Software Engineer, Namaad Iran Co., Tehran, Iran, 1999-2003

    Major awards

  • Teaching Excellence Award, 2015
  • Dr. Robert Stewart Early Research Recognition Award, 2013
  • Research projects and publications

    Panini     My work on syntactic control of interference points and behaviors in Panini was the first to enable tractable modular reasoning about a concurrent program in the presence of interference.

    Concurrent programming is indispensable yet difficult, unsafe and error-prone because programmers cannot, yet, easily understand and reason about their programs in a scalable and modular manner. Uncontrolled arbitrary interference makes modular modular reasoning about a concurrent program difficult: Interference can happen between any two program instructions and the interference behavior is unknown. To understand a program, a programmer should consider the possibility of interference between any two program instructions and for each interference carry out a global reasoning to compute the interference behavior, which is a lot of undesirable and unscalable reasoning work. My work proposes a disciplined framework for syntactic control of interference in which interference points of a program syntactically happen at specific program points and upper bounds on interference behaviors can be statically computed. This framework enables modular reasoning about a concurrent program in the presence of interference and preserves modular reasoning in presence of program extension mechanisms such as inheritance.

  • Mehdi Bagherzadeh and Hridesh Rajan
    Panini: A Concurrent Programming Model for Solving Pervasive and Oblivious Interference    [pdf]
    14th International Conference on Modularity, 2015
    award [best papers of]  [invited to Transactions on Modularity and Composition, 2015]
  • NEW Yuheng Long, Mehdi Bagherzadeh, Eric Lin, Ganesha Upadhyaya and Hridesh Rajan
    On Ordering Problems in Message Passing Software    [pdf]
    15th International Conference on Modularity, 2016
  • Mehdi Bagherzadeh and Hridesh Rajan
    Order Types: Modular Reasoning about Message Orders
    Conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH), 2016 (in preparation)
  • Mehdi Bagherzadeh
    Panini: A Concurrent Programming Model With Modular Reasoning    [pdf]
    Doctoral Symposium, International Conference on Systems, Programming, Languages and Applications: Software for Humanity, 2015
  • Yuheng Long, Mehdi Bagherzadehand Hridesh Rajan
    Open Effects: Programmer-guided Effects for Open World Concurrent Programs    [pdf]
    Technical Report 13-04, Computer Science, Iowa State University, 2013
  • Ptolemy    My work on static control of behaviors, control flows and interactions of event publishers and subscribers in Ptolemy, was the first to enable tractable modular reasoning about normal and exceptional behaviors and control flows of an event-based program.

    Event-based programming is essential for adaptive software development yet difficult, unsafe and error-prone. Implicit and inverted control flows of event publishers and subscribers and their unknown behaviors, control flows and interactions makes understanding of an event-based program difficult. To understand a program, a programmer should carry out a global reasoning for each event to understand behaviors, control flows and interactions of its publishers and subscribers which is a lot of undesirable and intractable reasoning work. My work proposes translucid contracts, a disciplined framework to statically control behaviors, control flows and interactions of event publishers and subscribers. This framework enables modular reasoning about an event-based program in the presence of inverted control flows, unknown behaviors and control flows of event publishers and subscribers and their unknown interactions and preserves modular reasoning in the presence of program extension mechanisms such as inheritance.

  • NEW Mehdi Bagherzadeh Robert Dyer, Rex D. Fernando, Jose Sanchez and Hridesh Rajan
    Modular Reasoning in the Presence of Event Subtyping    [pdf]
    Transactions on Modularity and Composition, special edition: Best papers of Modularity'15, 2016
  • Mehdi Bagherzadeh Robert Dyer, Rex D. Fernando, Jose Sanchez and Hridesh Rajan
    Modular Reasoning in the Presence of Event Subtyping    [pdf]
    14th International Conference on Modularity, 2015
    award [best papers of]  [invited to Transactions on Modularity and Composition, 2015]
  • Henrique Rebelo, Gary T. Leavens, Mehdi Bagherzadeh, Hridesh Rajan, Ricardo Lima, Daniel Zimmerman, Marcio Cornelio and Thomas Thum
    AspectJML: Modular Specfication and Runtime Checking for Crosscutting Contracts    [pdf]
    13th International Conference on Modularity, 2014
  • Mehdi Bagherzadeh, Hridesh Rajan and Ali Darvish
    On Exceptions, Events and Observer Chains    [pdf]
    12th International Conference on Aspect Oriented Software Development, 2013
  • Mehdi Bagherzadeh, Hridesh Rajan, Gary T. Leavens and Sean Mooney
    Translucid Contracts: Expressive Specification and Modular Verification for Aspect-Oriented Interfaces    [pdf]
    10th International Conference on Aspect Oriented Software Development, 2011
  • Mehdi Bagherzadeh, Gary T. Leavens and Robert Dyer
    Applying Translucid Contracts for Modular Reasoning about Aspect and Object Oriented Events    [pdf]
    Foundations of Aspect-Oriented Languages, 2011
  • Mehdi Bagherzadeh
    Enabling Expressive Aspect Oriented Modular Reasoning by Translucid Contracts    [pdf]
    Doctoral Symposium, International conference on Object oriented programming systems languages and applications, 2010
  • Mehdi Bagherzadeh, Hridesh Rajan and Gary T. Leavens
    Translucid Contracts for Aspect-oriented Interfaces    [pdf]
    Foundations of Aspect-Oriented Languages, 2010
  • Robert Dyer, Mehdi Bagherzadeh, Hridesh Rajan and Yunafang Cai
    A Preliminary Study of Quantified, Typed Events    [pdf]
    Empirical Evaluation of Software Composition Techniques, 2010
  • Mehdi Bagherzadeh, Robert Dyer, Yuheng Long and Hridesh Rajan
    Instance-level Quantified, Typed Events for Integrated System Design    [pdf]
    Technical Report 08-15, Computer Science, Iowa State University, 2008
  • Synergistic activities

    Organizing committee
  • Midwest Big Data Summer School, Publicity/Web Chair, 2016
  • Program committee
  • 3rd Workshop on Reactive and Event-based Languages and Systems (REBLS), 2016
  • 15th Workshop on Foundations of Aspect-Oriented Languages (FOAL), 2016
  • International Conference on Systems, Programming, Languages and Applications: Software for Humanity, 2014 (Artifacts)
  • 1st Workshop on Software Modularity (WMod), Brazilian Conference on Software: Theory and Practice (CBSoft), 2014
  • 7th Latin American Workshop on Aspect-Oriented Software Development (LA-WASP) Brazilian Conference on Software: Theory and Practice (CBSoft), 2013
  • Reviewer
  • Transactions on Software Engineering (TSE), 2016
  • Science of Computer Programming Journal (SCP), 2015
  • Computer Languages, Systems and Structures Journal (COMLAN), 2015
  • Information and Software Technology Journal (IST), 2011
  • External reviewer
  • 7th International Workshop on Aliasing, Capabilities and Ownership (IWACO), 2016
  • 38th International Conference on Software Engineering (ICSE), 2016
  • 15th International Conference on Modularity, 2016
  • Computer Languages, Systems and Structures Journal (COMLAN), 2015
  • 14th International Conference on Generative Programming: Concepts & Experience (GPCE), 2014
  • International Conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH), 2013
  • 12th International Conference on Aspect Oriented Software Development (AOSD), 2013
  • International Conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH), 2012
  • 18th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS), 2012
  • 4th Verified Software: Theories, Tools and Experiments (VSTTE), 2012
  • 10th International Conference on Aspect Oriented Software Development (AOSD), 2011
  • Transactions on Aspect-Oriented Software Development (TAOSD), 2010
  • 9th International Conference on Aspect Oriented Software Development (AOSD), 2010
  • Software: Practice and Experience (SPE), 2010
  • Conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH), 2009
  • 7th International Conference on Aspect Oriented Software Development (AOSD), 2008