CSCD420 — Compilers
Automata Theory, Regular Expressions, Backus-Naur metalanguage for specifying programming language syntax, and Interpreter and Compiler Design.
Learning Objectives & Matches
Design and implement lexical analyzers using regular expressions and finite automata
Identify, analyze, and document problems with program function, output, online screen, or content.
Analyze information processing or computation needs and plan and design computer systems, using techniques such as structured analysis, data modeling, and information engineering.
Write new functions or applications in programming languages to conduct analyses.
Assist in the development of document or content classification taxonomies to facilitate information capture, search, and retrieval.
Analyze information to determine, recommend, and plan installation of a new system or modification of an existing system.
Analyze, interpret, or disseminate system performance data.
Assist in the assessment, acquisition, or deployment of new electronic document management systems.
Implement electronic document processing, retrieval, and distribution systems in collaboration with other information technology specialists.
Write, analyze, review, and rewrite programs, using workflow chart and diagram, and applying knowledge of computer capabilities, subject matter, and symbolic logic.
Identify and classify documents or other electronic content according to characteristics such as security level, function, and metadata.
Build parsers using context-free grammars, LL, and LR parsing techniques
Generate intermediate code representations including abstract syntax trees and three-address code
Train subordinates in programming and program coding.
Compile and write documentation of program development and subsequent revisions, inserting comments in the coded instructions so others can understand the program.
Write new functions or applications in programming languages to conduct analyses.
Prepare detailed workflow charts and diagrams that describe input, output, and logical operation, and convert them into a series of instructions coded in a computer language.
Collaborate with computer manufacturers and other users to develop new programming methods.
Review and analyze computer printouts and performance indicators to locate code problems, and correct errors by correcting codes.
Develop or maintain archived procedures, procedural codes, or queries for applications.
Assign, coordinate, and review work and activities of programming personnel.
Implement code optimization techniques for improved program performance
Apply formal language theory including regular languages and context-free languages