Ali Shokri

Ali Shokri

Ph.D. in Computer Science

Postdoctoral Associate

Bradley dept. of ECE, Virginia Tech

About Me

I am a postdoc associate in the Systems Software Research Group, Bradley Department of Electrical and Computer Engineering at Virginia Tech, VA, USA, working with Prof. Binoy Ravindran on the intersection of security, program analysis, and formal methods. I received my Ph.D. in Computing and Information Sciences from Rochester Institute of Technology (RIT), NY, USA, in 2023, under the supervision of Dr. Mirakhorli with the focus on program synthesis and program analysis. In particular, my dissertation aimed at pushing the boundary of program synthesis and supporting a wide range of software developers with inter-procedural program synthesis.

My paper on program synthesis is the First-place Award Winner of the Research Competition at the 36th IEEE/ACM International Conference on Automated Software Engineering (ASE’21).

During my Ph.D., as a Research Intern, I had the privilege to collaborate with brilliant researchers at Google (Fall 2022) and PARC (Spring 2022).

News & Announcements

Aug 2023: I will be serving the SANER'24 as a PC member of the Research track.

Aug 2023: I've joined the ECE department of Virginia Tech (among the top four best ECEs in the US!) as a postdoc associate to expand my research domain to formal-oriented software security.

Jul 2023: I successfully defended my Ph.D. dissertation!

Feb 2023: We have filed two inventions and patent out of my work on program synthesis and program analysis.

Dec 2022: Successfully defended my Ph.D. proposal, getting ready for the dissertation defense in the near future.

Dec 2022: I will be serving the MSR'23 as a Junior PC of the Research track.

Aug 2022: I’ve started a new position as a Research Intern at Google to work on Google's Large Language Models (LLM) for AI-assisted software development and software synthesis.

May 2022: I’ve finished my Research Internship at PARC, aiming at registering two inventions and 2 papers as outcomes of my contribution.

Mar 2022: I will be serving the ICSE'23 as a PC member of the Research Competition track.

Feb 2022: I will be serving the ISSTA'22 as a PC member of the Tool Demo track.

Feb 2022: I’ve joined the Palo Alto Research Center (PARC) as a Research Intern, Software Synthesis.

Jan 2022: I will be serving the SCAM'22 as a PC member of the Research track.

Jan 2022: I will be serving the PLDI'22 as a PC member of the Research Artifact track.

Jan 2022: I will be serving the ICSME'22 as a PC member of the Tool Demo track.

Dec 2021: I will be serving the ASE'22 as a PC member of the Research Competition track.

Dec 2021: I will be serving the ICPC'22 as a PC member of the Research track.

Nov 2021: My research won the Research Competition Award at ASE'21.

Latest Research Projects

Selected Papers

project name

A Program Synthesis Approach for Adding Architectural Tactics to An Existing Code Base

In this paper, we introduce a novel program synthesis approach for architectural tactic implementation task. This paper is accepted in the 36th IEEE/ACM International Conference on Automated Software Engineering (ASE 2021) and is on its way to be published.
This paper won the research competition award at ASE'21.

project name

DepRes: A Tool for Resolving Fully Qualified Names and Their Dependencies

One important barrier in front of static program analyzers is to correctly identify fully qualified names (FQN) of identifiers in a code snippet, as well as third-party libraries used in the code. Moreover, resolving the correct versioin of liibraries plays an important role in an accurate program analysis task. In this paper, we introduce a learning-based approach to address such needs.

project name

ArCode: A Tool for Supporting Architectural Concerns Comprehension and Implementation

Based on our ArCode ICSA21 paper, we implemented a tool as a plugin for IntelliJ IDEA. This tool aims to realize ArCode approach and support programmers in practice. This paper is accepted in 29th IEEE/ACM International Conference on Program Comprehension (ICPC 2021) and is on its way to be published by June 2021.

project name

ArCode: Facilitating the Use of Application Frameworks to Implement Tactics and Patterns

Programmers and software designers are increasingly incorporating framework APIs to correctly implement architectures and tactics. However, based on studies, they can not rely on frameworks' documentations nor available tutorials. In this paper, we introduce ArCode, an approach that learns the correct usage of APIs from a limited code samples. This paper is accepted in 2021 IEEE International Conference on Software Architecture (ICSA) and is on its way to be published by May 2021

project name

SHERLOCK: An integrated environment to facilitate the rapid and continuous certification of software systems

Establishing links between concerns needed to be addressed, artifacts, and evidences in a software system is crucial for software certification tasks. Tracing these links though is not a trivial process. In this paper, we introduce SHERLOCK, an integrated environment that facilitate the rapid and continuous certification of software systems. This paper is published as a preceeding of 2020 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)

Full Publication List

Work Experience

Please find an overview of my experiences as follows: Experience Overview
You may find more deails of my work experience from my CV.

Contributions to SE Community

Paper Reviewer - Conferences/Journals

  • Reviewer for the IEEE Transactions on Software Engineering (TSE)
  • Reviewer for the IEEE Software Journal (IEEE Softw.)
  • Reviewer for the Journal of Systems & Software (JSS)
  • Reviewer for the e-Informatica Software Engineering Journal (EISEJ)
  • Sub-reviewer for ACM Transactions on Software Engineering and Methodology (ToSEM)
  • Sub-reviewer at 42nd International Conference on Software Engineering (ICSE 2020)

PC Member - Conferences

  • 31st IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER'24 Research Track)
  • 20th International Conference on Mining Software Repository (MSR'23 Junior PC Track)
  • 45th International Conference on Software Engineering (ICSE'23 Research Competition Track)
  • 37th IEEE/ACM International Conference on Automated Software Engineering (ASE'22 SRC)
  • 22nd IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM'22 Research Track)
  • 38th IEEE International Conference on Software Maintenance and Evaluation (ICSME'22 Tool Demo)
  • 31st ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA'22 Tool Demo Track)
  • 43rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'22 Research Artifact)
  • 30th IEEE/ACM International Conference on Program Comprehension (ICPC'22 Research Track)
  • 37th International Conference on Software Maintenance and Evolution (ICSME'21 Tool Demo)
  • 35th European Conference on Object-Oriented Programming (ECOOP'21 Artifact Evaluation)

Lecturer - Academic/Industry

Education

Ph.D. Computer Science

Rochester Institute of Technology (2023)

M.Sc. Information Technology

Tarbiat Modares University (2014)

B.Sc. Software Engineering

University of Tehran (2007)

I was fortunate enough to be able to attend a couple of great PhD level summer schools:

International Software Architecture PhD School (2021)

PL+HCI “Swimmer” School (2020)

Awards

ASE'21 Research Competition

The winner of the Research Competition at ACM ASE'21, an A* conference in the field of software engineering. (2021)

Data61 Research Scholarship

Recipient of a prestigious scholarship for conducting my research at Data61, a world leader in data science research and engineering. (2018)

University of Melbourne

Admitted as a fully funded PhD student at the University of Melbourne (worldwide ranked 25th) with a prestigious fellowship. (2018)

Monash University

Admitted as a PhD student at Monash University (worldwide ranked 40th) as a PhD student. (2017)