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

Course Queries Syllabus Queries 2 years ago

0 2 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Syllabus Queries related to Course Queries. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (2)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 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.

profilepic.png
manpreet 2 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.