Skip to content

Commit

Permalink
resolved conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
nishant0708 committed Jun 26, 2024
2 parents 2317ed1 + 270ce7a commit e4b3091
Show file tree
Hide file tree
Showing 15 changed files with 1,005 additions and 337 deletions.
8 changes: 8 additions & 0 deletions App Development/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,14 @@ App development refers to crafting software for diverse devices, involving plann
<th><a href="https://wdevon99.medium.com/road-map-to-becoming-a-react-native-developer-in-2018-for-beginners-cc26af18c71">Roadmap to become ReactNative Developer</a> </th>
<th> This is an excellent blog that gives quick insight and roadmap to become successful ReactNative developer.</th>
</tr>
<tr>
<th><a href="https://roadmap.sh/flutter">Flutter Roadmap</a> </th>
<th>Step by step guide to becoming a Flutter developer in 2024</th>
</tr>
<tr>
<th><a href="https://roadmap.sh/android">Android Developer</a> </th>
<th>Step by step guide to becoming an Android developer in 2024</th>
</tr>
</table>

### Tools
Expand Down
250 changes: 250 additions & 0 deletions Compiler Design/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,250 @@
# Compiler Design

Compiler design involves the creation of programs that translate high-level code written by programmers into machine code that can be executed by a computer's hardware. This field is fundamental in computer science and involves several stages including lexical analysis, syntax analysis, semantic analysis, optimization, and code generation. The study and implementation of compilers help in understanding the intricacies of programming languages and the efficient execution of programs.

## Table of Contents

- [Roadmap](#Roadmap)<br>
- [Courses](courses)<br>
- [Free Cources](#free-courses)<br>
- [Paid Courses](#paid-courses)<br>
- [Books](#books)<br>
- [YouTube](#youtube)
- [Youtube Channels](#youtube-channels)<br>
- [YouTube Playlist](#youtube-playlists)<br>
- [Interview](#interview)<br>
- [GitHub Repositories](#github-repositories)<br>
- [Communities](#communities)
- [Reddit Communities](#reddit-communities)
- [Other Communities](#other-communities)
- [Conclusion](#conclusion)<br>
- [Projects](#projects)<br>

## Roadmap

To become proficient in compiler design, one needs a thorough understanding of various aspects of compilers. Here’s a roadmap to help guide your learning journey.

<table width="100%" id="Roadmap">
<tr>
<th>Resource Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://github.com/aalhour/awesome-compilers">Awesome Compilers</a></td>
<td>A comprehensive list of resources for learning about compilers, including books, tutorials, and tools.</td>
</tr>
<tr>
<td><a href="https://softwareengineering.stackexchange.com/questions/211835/path-to-learning-compiler-design">Roadmap of Compilers</a></td>
<td>IBM’s guide on getting started with compiler design and the various stages involved.</td>
</tr>
</table>

# Courses

These courses will help you learn the fundamentals and advanced topics in compiler design.

## Free Courses

<table width="100%">
<tr>
<th>Resource Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://www.coursera.org/learn/compilers">Stanford's Compilers Course</a></td>
<td>This course introduces the major ideas behind the implementation of programming languages, including how to build a compiler from scratch.</td>
</tr>
<tr>
<td><a href="https://www.mygreatlearning.com/academy/learn-for-free/courses/compiler-design">Compiler Design</a></td>
<td>A comprehensive course from MIT covering the design and implementation of compilers and interpreters.</td>
</tr>
<tr>
<td><a href="https://nptel.ac.in/courses/106/108/106108113/">NPTEL - Principles of Compiler Design</a></td>
<td>An in-depth course on compiler design offered by the National Programme on Technology Enhanced Learning (NPTEL).</td>
</tr>
</table>

## Paid Courses

<table width="100%">
<tr>
<th>Resource Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://www.udemy.com/topic/compiler-design/">Compiler Design Course on Udemy</a></td>
<td>A detailed course on Udemy that covers the theory and practical aspects of compiler construction.</td>
</tr>
<tr>
<td><a href="https://www.udemy.com/course/compiler-design-course/?couponCode=LETSLEARNNOWPP">Compiler Design Course on Udemy</a></td>
<td>A detailed course on Udemy that covers the theory and practical aspects of compiler construction.</td>
</tr>
</table>

## Books

Essential books for mastering compiler design concepts.

<table width="100%">
<tr>
<th>Book Title</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811">Compilers: Principles, Techniques, and Tools (Dragon Book)</a></td>
<td>The definitive text on compiler design, covering the theoretical and practical aspects comprehensively.</td>
</tr>
<tr>
<td><a href="https://www.amazon.com/Engineering-Compiler-Keith-Cooper/dp/012088478X">Engineering a Compiler</a></td>
<td>This book provides a detailed look at modern techniques and algorithms used in compiler design.</td>
</tr>
<tr>
<td><a href="https://www.amazon.com/Modern-Compiler-Implementation-Andrew-Appel/dp/0521607647">Modern Compiler Implementation in C/Java/ML</a></td>
<td>A series that focuses on practical compiler implementation, available in three programming languages.</td>
</tr>
</table>

# YouTube

## YouTube Channels

Channels that provide valuable tutorials and insights into compiler design.

<table width="100%">
<tr>
<th>Channel Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://www.youtube.com/@GateSmashers">GateSmashers</a></td>
<td>Offers lectures and courses on compiler design from University.</td>
</tr>
<tr>
<td><a href="https://www.youtube.com/user/NPTELHRD">NPTEL HRD</a></td>
<td>National Programme on Technology Enhanced Learning provides comprehensive lectures on compiler design and other CS topics.</td>
</tr>
</table>

## YouTube Playlists

Curated playlists focused on compiler design.

<table width="100%">
<tr>
<th>Playlist Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://youtube.com/playlist?list=PLBlnK6fEyqRjT3oJxFXRgjPNzeS-LFY-q&si=J-c09WHzcWAZN1db">Compiler Design - Neso Academy</a></td>
<td>This playlist covers the basics and advanced topics in compiler design, presented by Neso Academy.</td>
</tr>
<tr>
<td><a href="https://youtube.com/playlist?list=PLEbnTDJUr_IcPtUXFy2b1sGRPsLFMghhS&si=zOs3DeF1iv5dQr_8">Compiler Design - Gate Lectures by Ravindrababu Ravula</a></td>
<td>A series of lectures focused on compiler design, aimed at students preparing for competitive exams.</td>
</tr>
<tr>
<td><a href="https://youtube.com/playlist?list=PLxCzCOWd7aiEKtKSIHYusizkESC42diyc&si=DaQ1v0pTAi2Rp0QM">Compiler Design - Gate Smasher</a></td>
<td>A series of lectures focused on compiler design, aimed at students preparing for competitive exams.</td>
</tr>
</table>

## Interview Preparation

Resources to help you prepare for interviews related to compiler design roles.

<table width="100%">
<tr>
<th>Resource Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://www.geeksforgeeks.org/introduction-of-compiler-design/?ref=header_search">GeeksforGeeks - Compiler Design</a></td>
<td>Comprehensive set of interview questions and answers on compiler design.</td>
</tr>
<tr>
<td><a href="https://www.javatpoint.com/compiler-tutorial">JavaTpoint - Compiler Design Interview Questions</a></td>
<td>A collection of frequently asked interview questions and detailed answers on compiler design.</td>
</tr>
</table>

## GitHub Repositories

Helpful repositories that provide source code, examples, and tutorials on compiler design.

<table width="100%">
<tr>
<th>Repository Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://github.com/RichardGong/PlayWithCompiler>">Cxx</a></td>
<td>John McFarlane's repository that provides a simple, educational compiler implemented in C++.</td>
</tr>
<tr>
<td><a href="https://github.com/baquer/GATE-and-CSE-Resources-for-Students">Write a C Interpreter</a></td>
<td>A step-by-step guide to writing a simple C interpreter, useful for understanding the basics of compiler design.</td>
</tr>
</table>

## Communities

Join these communities to learn from others, share your knowledge, and stay updated with the latest trends in compiler design.

### Reddit Communities

<table width="100%">
<tr>
<th>Subreddit</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://www.reddit.com/r/Compilers/">r/Compilers</a></td>
<td>A subreddit dedicated to the discussion of compiler construction and related topics.</td>
</tr>
<tr>
<td><a href="https://www.reddit.com/r/ProgrammingLanguages/">r/ProgrammingLanguages</a></td>
<td>Discussion about programming languages, including their design, implementation, and compilers.</td>
</tr>
</table>

### Other Communities

<table width="100%">
<tr>
<th>Community</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://stackoverflow.com/questions/1494308/compiler-design">Stack Overflow</a></td>
<td>A large community where you can ask questions and share knowledge about compiler design.</td>
</tr>
<tr>
<td><a href="https://discord.com/invite/programming">Discord Programming Community</a></td>
<td>A Discord server with channels dedicated to various aspects of programming, including compiler design.</td>
</tr>
</table>

## Conclusion

Mastering compiler design requires a combination of theoretical knowledge and practical experience. Utilize the resources provided to build a strong foundation and stay engaged with the community to keep up with advancements in the field.

## Projects

Apply your knowledge by working on these projects to gain hands-on experience.

<table width="100%">
<tr>
<th>Project</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://github.com/Rashed112/Compiler-Design-Projects">A Basic Compiler </a></td>
<td>Built a project to understand the working basics of compiling for academic purposes, where I customized a programming language that can be compiled using Flex and Bison.</td>
</tr>
<tr>
<td><a href="https://github.com/SandyaSivakumar/Mini-Compiler">Mini Compiler</a></td>
<td>A simple compiler for a custom language, implemented to illustrate compiler design concepts.</td>
</tr>
</table>

By following this guide, you'll be well-equipped to dive into the world of compiler design, from learning the fundamentals to applying your skills in practical projects and participating in the community.
Loading

0 comments on commit e4b3091

Please sign in to comment.