The main proposal for my doctoral dissertation is to be able to select a certain algorithm snippet to generate a custom ISA. The idea is to create a VSCode extension to automate the process.
The process steps:
Code Analysis
The objective of this section is to develop or integrate a code analysis mechanism that can identify C language code patterns and extract relevant information for the creation of ISA instructions. This may include identifying mathematical operations, flow control, memory access, etc.
The "Code Analysis" stage is often one of the most complex parts of projects like this. Code analysis involves understanding and interpreting source code, identifying relevant patterns and structures, isolating semantic information, and then translating that information into instructions for a custom ISA. This stage may involve:
Lexer and Parser: Develop or use a lexical analyzer (lexer) and a syntactic analyzer (parser) to separate source code into tokens and programming structures. This is essential to identify the relevant parts of the code.
Semantic Analysis: In addition to syntactic analysis, you will also need to perform a semantic analysis to understand the meaning of instructions and expressions in the code. This may include identifying variables, constants, operators, etc.
Internal Representation: Develop an algorithm that will represent the extracted information in an internal structure that allows the generation of ISA instructions. This may involve creating abstract syntax trees or other suitable representation.
Error Handling: Consider how to handle parsing errors, such as invalid or unsupported code. Developing a robust error handling mechanism is important to ensure the reliability of the extension.
Optimization: Explore code optimization during the analysis process, identifying opportunities to improve the performance of the generated code, I believe that here will be the main contribution, developing an algorithm for optimization, being able to use machine learning to help with code analysis, especially for recognize complex patterns.
ISA Design: Based on code analysis, you must create an instruction design that is efficient and suitable for the identified operations. This may involve defining new instructions or adapting existing instructions.
Assembly Code Generation: Your extension must be able to generate assembly code corresponding to the ISA instructions you defined.
Integration with OpenASIP: as a basis for creating the ISA, it will be necessary to integrate the extension with the tool. This may involve generating VHDL descriptions for the new processor core.
User Interface (UI): Develop a friendly user interface within VSCode that allows users to select code snippets and begin the ISA creation process.
Expected Final Result, automatically generate the new ISA within the VSCode IDE
I would like to know your opinion on whether my proposal is interesting.
The main proposal for my doctoral dissertation is to be able to select a certain algorithm snippet to generate a custom ISA. The idea is to create a VSCode extension to automate the process.
The process steps:
Code Analysis
The objective of this section is to develop or integrate a code analysis mechanism that can identify C language code patterns and extract relevant information for the creation of ISA instructions. This may include identifying mathematical operations, flow control, memory access, etc.
Lexer and Parser: Develop or use a lexical analyzer (lexer) and a syntactic analyzer (parser) to separate source code into tokens and programming structures. This is essential to identify the relevant parts of the code.
Semantic Analysis: In addition to syntactic analysis, you will also need to perform a semantic analysis to understand the meaning of instructions and expressions in the code. This may include identifying variables, constants, operators, etc.
Internal Representation: Develop an algorithm that will represent the extracted information in an internal structure that allows the generation of ISA instructions. This may involve creating abstract syntax trees or other suitable representation.
Error Handling: Consider how to handle parsing errors, such as invalid or unsupported code. Developing a robust error handling mechanism is important to ensure the reliability of the extension.
Optimization: Explore code optimization during the analysis process, identifying opportunities to improve the performance of the generated code, I believe that here will be the main contribution, developing an algorithm for optimization, being able to use machine learning to help with code analysis, especially for recognize complex patterns.
Expected Final Result, automatically generate the new ISA within the VSCode IDE
I would like to know your opinion on whether my proposal is interesting.