Developing a C compiler
The compiler is an essential tool in the software development process, and the development of a compiler encapsulates many advanced concepts in the realm of computer science. In this project, a C compiler is developed from scratch. The compiler is capable of translating C11-compliant source code int...
Saved in:
Main Author: | |
---|---|
Other Authors: | |
Format: | Final Year Project |
Language: | English |
Published: |
Nanyang Technological University
2024
|
Subjects: | |
Online Access: | https://hdl.handle.net/10356/175271 |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Institution: | Nanyang Technological University |
Language: | English |
id |
sg-ntu-dr.10356-175271 |
---|---|
record_format |
dspace |
spelling |
sg-ntu-dr.10356-1752712024-04-26T15:44:13Z Developing a C compiler Zhong, Ruoyu Huang Shell Ying School of Computer Science and Engineering ASSYHUANG@ntu.edu.sg Computer and Information Science Compiler C LLVM The compiler is an essential tool in the software development process, and the development of a compiler encapsulates many advanced concepts in the realm of computer science. In this project, a C compiler is developed from scratch. The compiler is capable of translating C11-compliant source code into the target machine's native code. It is designed with a modern, modular architecture with seven major components, including the lexer, the parser, the semantic analyser, the intermediate code generator, the target-independent optimiser, the target-specific optimiser, and the code generator. LLVM Core libraries are used to support the code generation and optimisation stages. Special techniques are employed to address the implementation challenges, which include recovery of symbol table state in backtracking, disambiguation of typedef names with identifiers, and inference of complex type names. Bachelor's degree 2024-04-23T05:36:26Z 2024-04-23T05:36:26Z 2024 Final Year Project (FYP) Zhong, R. (2024). Developing a C compiler. Final Year Project (FYP), Nanyang Technological University, Singapore. https://hdl.handle.net/10356/175271 https://hdl.handle.net/10356/175271 en SCSE23-0413 application/pdf Nanyang Technological University |
institution |
Nanyang Technological University |
building |
NTU Library |
continent |
Asia |
country |
Singapore Singapore |
content_provider |
NTU Library |
collection |
DR-NTU |
language |
English |
topic |
Computer and Information Science Compiler C LLVM |
spellingShingle |
Computer and Information Science Compiler C LLVM Zhong, Ruoyu Developing a C compiler |
description |
The compiler is an essential tool in the software development process, and the development of a compiler encapsulates many advanced concepts in the realm of computer science. In this project, a C compiler is developed from scratch. The compiler is capable of translating C11-compliant source code into the target machine's native code. It is designed with a modern, modular architecture with seven major components, including the lexer, the parser, the semantic analyser, the intermediate code generator, the target-independent optimiser, the target-specific optimiser, and the code generator. LLVM Core libraries are used to support the code generation and optimisation stages. Special techniques are employed to address the implementation challenges, which include recovery of symbol table state in backtracking, disambiguation of typedef names with identifiers, and inference of complex type names. |
author2 |
Huang Shell Ying |
author_facet |
Huang Shell Ying Zhong, Ruoyu |
format |
Final Year Project |
author |
Zhong, Ruoyu |
author_sort |
Zhong, Ruoyu |
title |
Developing a C compiler |
title_short |
Developing a C compiler |
title_full |
Developing a C compiler |
title_fullStr |
Developing a C compiler |
title_full_unstemmed |
Developing a C compiler |
title_sort |
developing a c compiler |
publisher |
Nanyang Technological University |
publishDate |
2024 |
url |
https://hdl.handle.net/10356/175271 |
_version_ |
1806059763689062400 |