Java程序辅导

C C++ Java Python Processing编程在线培训 程序编写 软件开发 视频讲解

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
CS325 Compiler Design Skip to main content Skip to navigation Sign in Study Research Business Alumni News Engagement Search Warwick Search Department of Computer Science Study with us Undergraduate Degrees Postgraduate Taught Degrees Degree Apprenticeships Teaching Coronavirus(Restricted permissions) DCS Self Isolation Notification Student Support Appointment Booking Form Course Structures Student Handbook(Restricted permissions) Modules Taught Research Doctoral Studies Interdisciplinary Research Centres Impact and Innovation Applied Computing Artificial Intelligence and Human-Centred Computing Data Science, Systems and Security Theory and Foundations People News Events Computer Science Colloquium Outreach News Upcoming Events Past Events Projects Staff Resources(Restricted permissions) Report(Restricted permissions) Welfare Athena SWAN Dignity at Warwick Equality, Diversity and Inclusion News Vacancies Intranet(Restricted permissions) Teaching Modules Taught CS325 CS325 Compiler Design We will be adapting the way we teach and assess modules in line with government guidance on social distancing and other protective measures in response to Coronavirus. Teaching will vary between online and on-campus delivery through the year, and you should read the additional information linked on the right hand side of this page for details of how we anticipate this will work. The contact hours shown in the module information below are superseded by the additional information. You can find out more about the University’s overall response to Coronavirus at: https://warwick.ac.uk/coronavirus. CS325-15 Compiler Design Academic year 21/22 Department Computer Science Level Undergraduate Level 3 Module leader Gihan Mudalige Credit value 15 Module duration 10 weeks Assessment Multiple Study location University of Warwick main campus, Coventry Download as PDF Description Study Assessment Availability Introductory description A compiler is a program that can read a program in one language - the source language - and translate it into an equivalent program in another language - the target language Module aims The module will provide a through introduction to the principles of compiler design, with an emphasis on general solutions to common problems as well as techniques for putting the extensive theory into practice. Outline syllabus This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ. Languages and Grammars: regular expressions, context-free grammars, BNF. Parsing: top-down and bottom-up techniques. Semantic Analysis: attribute grammars, translation schemes, type inference, symbol tables. Code Generation: run-time environment, intermediate code, register allocation, optimization. Programming Paradigms: issues in the compilation of imperative, functional, and object-oriented languages Learning outcomes By the end of the module, students should be able to: A successful student will have acquired the skills to understand, develop, and analyse recognizers for programming languages. The student will also be able to deploy efficient and methodical techniques for integrating semantic analysis into the afore-mentioned recognizers, and generate low-level code for most constructs that characterise imperative and functional programming languages. Indicative reading list (a) Appell, Modern Compiler Implementation in Java, Cambridge University Press, 2003 (b) Watt and Brown, Programming Language Processors in Java, Prentice Hall, 2000 (c) Grune, Bal, Jacobs, and Langendoen, Modern Compiler Design, Wiley, 2000. (d) Aho, Sethi and Ullman, Compilers Principles, Techniques and Tools, Addison-Wesley. Subject specific skills Develop an end-to-end compiler. Use of modern and industrial-grade compiler development software, techniques and tools. Transferable skills Technical - Programming. Following online tutorials. Version control and software development. Software testing and debugging. Creativity - Designing tangible and strategic solutions (compilers). Multitasking - Time management, organisation skills and meeting deadlines. Critical thinking - Problem-solving, analysis of possible solutions. Communication - Listening, writing, technical communication skills Study time Type Required Lectures 30 sessions of 1 hour (20%) Seminars 5 sessions of 1 hour (3%) Practical classes 5 sessions of 1 hour (3%) Private study 110 hours (73%) Total 150 hours Private study description Revision of lecture notes Private study of online tutorials and coursework Background reading - reading recommended textbook sections Attempting/doing past exam paper questions Costs No further costs have been identified for this module. You do not need to pass all assessment components to pass the module. Students can register for this module without taking any assessment. Assessment group D2 Weighting Study time Unsupervised practical assignments 40% Unsupervised practical assignments. This assignment is worth more than 3 CATS and is not, therefore, eligible for self-certification. On-campus Examination 60% CS325 Exam ~Platforms - AEP Answerbook Pink (12 page) Assessment group R1 Weighting Study time Online Examination 100% CS325 resit examination. ~Platforms - AEP Online examination: No Answerbook required Feedback on assessment Written feedback on coursework. Past exam papers for CS325 Pre-requisites Students must have studied the material in CS126 or CS259 or equivalent subject material. Courses This module is Optional for: Year 3 of UCSA-G4G1 Undergraduate Discrete Mathematics Year 3 of UCSA-G4G3 Undergraduate Discrete Mathematics Year 4 of UCSA-G4G2 Undergraduate Discrete Mathematics with Intercalated Year This module is Option list A for: Year 3 of UCSA-G400 BSc Computing Systems Year 4 of UCSA-G504 MEng Computer Science (with intercalated year) Year 3 of UCSA-G500 Undergraduate Computer Science Year 4 of UCSA-G502 Undergraduate Computer Science (with Intercalated Year) Year 3 of UCSA-G503 Undergraduate Computer Science MEng This module is Option list B for: Year 4 of UCSA-G401 BSc Computing Systems (Intercalated Year) Year 3 of UCSA-G402 MEng Computing Systems Year 4 of UCSA-G403 MEng Computing Systems (Intercalated Year) Year 3 of UCSA-G406 Undergraduate Computer Systems Engineering Year 3 of UCSA-G408 Undergraduate Computer Systems Engineering Year 4 of UCSA-G407 Undergraduate Computer Systems Engineering (with Intercalated Year) Year 4 of UCSA-G409 Undergraduate Computer Systems Engineering (with Intercalated Year) Year 3 of USTA-G302 Undergraduate Data Science Year 3 of USTA-G304 Undergraduate Data Science (MSci) Year 4 of USTA-G303 Undergraduate Data Science (with Intercalated Year) UMAA-G105 Undergraduate Master of Mathematics (with Intercalated Year) Year 3 of G105 Mathematics (MMath) with Intercalated Year Year 5 of G105 Mathematics (MMath) with Intercalated Year Year 3 of UMAA-G100 Undergraduate Mathematics (BSc) UMAA-G103 Undergraduate Mathematics (MMath) Year 3 of G103 Mathematics (MMath) Year 4 of G103 Mathematics (MMath) UMAA-G106 Undergraduate Mathematics (MMath) with Study in Europe Year 3 of G106 Mathematics (MMath) with Study in Europe Year 4 of G106 Mathematics (MMath) with Study in Europe Year 4 of UMAA-G101 Undergraduate Mathematics with Intercalated Year Further Information Term 1 15 CATS (7.5 ECTS) Online Material Additional Information Department of Computer Science, University of Warwick, CV4 7AL E-mail: comp-sci at dcs dot warwick dot ac dot uk, Telephone: +44 (0)24 7652 3193 DCS Intranet FacebookTwitterLinkedIn Page contact: Jennifer Mills Last revised: Sun 24 Oct 2021 Powered by Sitebuilder © MMXXI Terms Privacy Cookies Accessibility Coronavirus (Covid-19): Latest updates and information Let us know you agree to cookies We use cookies to give you the best online experience. Please let us know if you agree to functional, advertising and performance cookies. You can update your cookie preferences at any time. Cookie policy Essential cookies Functional cookies Advertising cookies Performance cookies Accept all Remember my preference More information