Teaching
Compilers (Undergraduate)
In this module, the students will learn how modern compilers work. A compiler is a tool for translating computer programs written in a higher-level programming language (such as Java or C) to a lower-level language or machine code. Major components of a compiler are lexical and syntactic analysis, semantic analysis, code generation and optimization. The module will provide an introduction to a range of concepts in programming language design and implementation, including runtime organization, memory management, assembler, linker, loader, static vs dynamic types and scopes, compilers vs interpreters, just-in-time compilation, bootstrapping, data-flow analysis, and link-time optimizations. The coursework includes 3-5 programming assignments, each of which builds a different component of the compiler. The students are encouraged to work in small teams. At the end of the semester, each team will have implemented a working (albeit simple) compiler from basic blocks and templates provided. Most students find it very rewarding experience.
Research
Publications
-
Lobo FG, Bazargani M (2022). When Hillclimbers Beat Genetic Algorithms in Multimodal Optimization. nameOfConference
DOI: 10.1162/evco_a_00312
-
Lobo FG, Bazargani M, Burke EK (2020). A cutoff time strategy based on the coupon collector's problem. nameOfConference
-
Bazargani M, Drake JH, Burke EK (2018). Late Acceptance Hill Climbing for Constrained Covering Arrays. 21st International Conference on Applications of Evolutionary Computation, EvoApplications
-
Bazargani M, Lobo FG (2017). Parameter-less late acceptance hill-climbing. nameOfConference
QMRO: qmroHref -
Guizzo G, Bazargani M, Paixao M et al. (2017). A hyper-heuristic for multi-objective integration and test ordering in google guava. nameOfConference
QMRO: qmroHref -
Lobo FG, Bazargani M (2015). When hillclimbers beat genetic algorithms in multimodal optimization. nameOfConference
QMRO: qmroHref -
Bazargani M, Mateus L, Loja MAR (2015). Planar surfaces recognition in 3D point cloud using a real-coded multistage genetic algorithm. nameOfConference
QMRO: qmroHref -
Bazargani M, Mateus L, Loja MAR (2014). Logarithmically proportional objective function for planar surfaces recognition in 3D point cloud. nameOfConference
QMRO: qmroHref -
Bazargani M, Dos Anjos A, Lobo FG et al. (2012). Affine image registration transformation estimation using a real coded genetic algorithm with SBX. nameOfConference
QMRO: qmroHref