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
- Name: Ramaguru Radhakrishnan (Ramaguru Radhakrishnan)
Email: r_ramaguru@cb.amrita.edu
Designation:
- Founder and Lead Researcher - நம்Chain® Open Initiative Research Lab, Coimbatore.
- Assistant Professor (Senior Grade), TIFAC-CORE in Cyber Security, Amrita Vishwa Vidyapeetham, Coimbatore.
- Faculty Advisor - Blockchain-Research Interest Group (B-RIG), Amrita Vishwa Vidyapeetham, Coimbatore and HIC Student Society Chapter Amrita Vishwa Vidyapeetham.
- Name: Ambili K N (amb k)
Email: kn_ambili@cb.amrita.edu
Designation:
- Assistant Professor (Senior Grade), TIFAC-CORE in Cyber Security, Amrita Vishwa Vidyapeetham, Coimbatore.