You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Project TitleSolang: LALRPOP Parser, Intermediate Code Representation (ICR), and Code Optimization
Status

PENDING TOC REVIEW

Primary Focus

RESEARCH DOCUMENTATION

Description 

Our goal is to provide comprehensive documentation of the LALRPOP Parser, Intermediate Code Representation (ICR), and Code Optimization techniques utilized in Solang.

Solang is a compiler for the Solidity Programming language, targeting the Ethereum Virtual Machine (EVM) and WebAssembly (Wasm) platforms. The documentation will encompass a detailed exploration of the parser's functionality, the structure of the intermediate representation, and various code optimization strategies employed within Solang.

Additionally, we aim to propose improvements and enhancements to these components based on the latest research and advancements in compiler construction. Specifically, we will focus on suggesting advancements in error handling techniques, enhancing the ICR, and introducing more effective code optimization techniques.

Learning Objectives

  • Understand Hyperledger DLT Frameworks: Gain deep knowledge of Hyperledger frameworks, focusing on Hyperledger Fabric and its components, including Chaincode (smart contracts), Ordering Service, and Peer nodes.

  • Blockchain Forensics Techniques: Acquire expertise in blockchain forensics methods and tools, including transaction tracing, data analysis, and forensic investigation techniques specific to Hyperledger environments.

  • Advanced Programming Skills: Enhance programming proficiency in languages commonly used in Hyperledger development, such as GoLang for Chaincode development and JavaScript for client applications interacting with the blockchain.

  • Security and Privacy Considerations: Understand security best practices and privacy considerations specific to Hyperledger frameworks, including permissioned networks, identity management, and access control.

Expected Outcome and Deliverables

  • Comprehensive Documentation:

    • Detailed documentation of the LALRPOP parser, including its design, implementation, and functionality.
    • In-depth exploration of the intermediate code representation (ICR) used in Solang, covering its structure, semantics, and usage within the compiler.
    • Thorough documentation of existing code optimization techniques employed in Solang, including their principles, algorithms, and application scenarios.
  • Research-Based Suggestions:

    • Recommendations for improvements and enhancements based on the latest research and advancements in compiler construction.
    • Suggestions for refining error handling techniques to improve error reporting and recovery mechanisms within the parser.
    • Proposals for enhancing the intermediate code representation (IR) to better support optimizations and facilitate code transformations.
  • Implementation of Improvisations:

    • Implementation of suggested improvements and enhancements wherever applicable, with a focus on enhancing the functionality, performance, and maintainability of the Solang compiler.
    • Integration of refined error handling mechanisms, enhanced IR features, and improved code optimization techniques into the Solang compiler codebase.

Relation to Hyperledger 

  • Core Contribution: Hyperledger Solang

Recommended Skills

  • Background in Compiler Construction: Proficiency in compiler construction principles and techniques, including lexical analysis, parsing, semantic analysis, and code generation.
  • Basic Knowledge of Rust: Familiarity with the Rust programming language, as Solang is implemented in Rust. Understanding of Rust's syntax, features, and ecosystem will be beneficial for contributing to the project.
  • Understanding of Common Data Structures and Algorithms: Knowledge of common data structures (e.g., arrays, linked lists, trees) and algorithms (e.g., sorting, searching) used in software development and compiler construction.
  • Willingness to Learn New Concepts: Eagerness to explore and learn new concepts, tools, and techniques related to compiler construction, Rust programming, and code optimization.
  • Analytical and Problem-Solving Skills: Ability to analyze complex problems, identify areas for improvement, and propose effective solutions within the context of compiler construction and optimization.

Mentor Names and Contact Info

Email: r_ramaguru@cb.amrita.edu

Designation:


Email: kn_ambili@cb.amrita.edu

Designation:

References


  • No labels