Which computer science subjects are required to follow introductory course in compilers? [closed]

Course Queries Syllabus Queries 3 years ago

3.57K 2 0 0 0

User submissions are the sole responsibility of contributors, with TuteeHUB disclaiming liability for accuracy, copyrights, or consequences of use; content is for informational purposes only and not professional advice.

Answers (2)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 3 years ago

I am non computer science undergraduate and work as a web-developer(java, python, AS3 etc.) as a professional. I take 1 course per semester at my local university. I had taken Artificial Intelligence(comprising logic, context free grammar, CYK parsing, introductory NLP, markov chains, HMM etc.) last semester.

I am planning to take an introductory course in compilers in the coming semster which covers the following syllabus:

Lexical Analysis, Syntax Analysis, Semantic Analysis, Run-Time Environment, Intermediate Representations, Code Generation, Register Allocation, Instruction Selection and Scheduling, Introduction to Local and Global Code Optimizations, Data Flow analysis

My question is that, are there any computer science subjects which I should know before taking this course? If yes, it would be great if you could please list those courses.

0 views
0 shares

profilepic.png
manpreet 3 years ago

You should probably have a simple understanding of the following topics:

  • Discrete Math (sets, relations, trees, graphs, matrices, number theory)
  • Data Structures (in a more applied sense, how trees, lists, stacks, queues, and strings work)
  • Basic Algorithms (core concepts, sorting, searching, Big-O notation, etc)
  • Computer Architecture (digital logic, bit operations, micro-components, cache, memory, assembly programming)
  • Miscellaneous (regular expressions, context-free languages, finite state / pushdown automata, Turing machines and computability, lexical and parsing tools)

Optional, and will probably help a lot:

  • Operating System Design (process management, kernel design, synchronization, scheduling, events, locks, threads, and stack vs heap)

0 views   0 shares

No matter what stage you're at in your education or career, TuteeHUB will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.

Similar Forum