Notices

  • Exam Paper is Ready

    Posted by Jingling Xue Friday 06 May 2022, 09:08:15 AM.

    Dear COMP3131/9102 Student.

    My laptop was dead briefly. I have just fixed it. Now the paper is ready.

    Given 7 mins wasted, the exam will now close at 12:10 (10 mins after 12noon).

    I apologise for the inconvenience.

  • Tomorrow's Exam

    Posted by Jingling Xue Thursday 05 May 2022, 09:30:15 AM.

    Dear COMP3131/9102 Student,

    As announced before, our exam will take place tomorrow morning (6 May) during 9am -- 12 noon. You will be able to download the exam paper from this course page as indicated earlier at 9am.

    If you haven't signed your declaration as required, please do it today.

    It will also be a good idea to try to use give to do some dryrun submissions to make sure you know how to submit your solutions.

    During the exam, I cannot answer questions regarding whether your solutions are correct or not or whether you are on the right track in solving some problems.

    Good luck.

  • Two more paper exam papers

    Posted by Jingling Xue Thursday 28 April 2022, 04:22:07 PM.

    Dear COMP3131/9102 Student.

    Here are two more:

    cp ~cs3131/Exams/Papers01+03.zip your-directory

  • MyExperience Survey

    Posted by Jingling Xue Wednesday 27 April 2022, 09:51:43 AM.

    Dear COMP3131/9102 Student,

    Please be reminded that this survey will be closed on 28 April (tomorrow).
    Thanks.

    --- Jingling

  • Last Year's Exam Paper

    Posted by Jingling Xue Tuesday 26 April 2022, 10:30:19 PM.

    Dear COMP3131/9102,

    You can find the information on last year's exam paper from the last set of lecture notes released in Week 10.

  • Final Exam

    Posted by Jingling Xue Monday 25 April 2022, 08:20:09 PM.

    Dear COMP3131/9102 Student,

    Our final exam will take place during 9am -- 12noon (Sydney Time) on Friday 6 May 2022. Our exam will be done online without using any webcam monitoring. All the answers will be submitted via give.

    On our course web page, there is a menu item called "Exams" under "Course Work". This is where you will retrieve the exam paper at 9:00am during the day of our exam and submit your answers.

    The exam will be 3 hours (including 10-min reading time).

    There will be five questions.

    Please visit the resource pages under "Exams" and do the following now :

    • Please sign the declaration page and submit it before the exam starts.
    • Please read the instructions now to save your time reading them during the exam.
    • Please try to submit a few dummy answer files to some questions to become familiar with the submission process. This is the same process by which you submitted your five programming assignments before.

    Please let me know if you have any questions regarding the final exam.

  • Assignment 5 Marked

    Posted by Jingling Xue Sunday 24 April 2022, 07:18:39 PM.

    Dear COMP3131/9102 Student,

    I have marked Assignment 5. Please let me know if you have any issues with your marks.

    As usual, you can find some feedback for this assignment on our course's web page.

    If you think your code generator depends on some particular details of your own checker so that you may get better marks if we mark your code generator by using your own checker, please resubmit it and drop me an email. I will remark it without applying any penalty.

    If you think your implementation has a small bug and you can fix it by changing just a few lines so that you can pass, say, 20 more test cases, please resubmit a revised implementation and email me the diff, I will remark it by applying a penalty appropriate to the small changes made. For example, this can happen when your solution has a null pointer bug, which caused your code generator to throw runtime errors in many test cases.

  • Today's make up tutorial

    Posted by Jingling Xue Wednesday 13 April 2022, 05:31:47 PM.

    Dear COMP3131/9102 Student,


    I hope this is not too late.



    It seems the url you shared for today's make-up tute is wrong. Please use this:

    https://unsw.zoom.us/j/81345787013?pwd=ZTlSL1hQakVnZTF5U25UY01Kc0k0UT09
    Meeting ID: 81345787013
    Password: 669333

  • Assignment 4 Marked

    Posted by Jingling Xue Thursday 07 April 2022, 12:12:06 AM.

    Dear COMP3131/9102 Student,

    Assignment 4 has been marked. Please check your mark and let me know if you have any issues with your marks.

  • 2pm on Wed 13 April (in person) ==> 4pm on Wed 13 April (online)

    Posted by Jingling Xue Wednesday 06 April 2022, 09:15:09 PM, last modified Wednesday 06 April 2022, 09:17:49 PM.

    Dear COMP3131/9102 Student,

    If you are in the in-person tutorial class at 2 pm on Wed 13 April, please make a note. As the tutor cannot make it in person that day, this in-person tutorial class has been rescheduled to

    4 pm on Wed 13 April ( online ).

    You can find the zoom link to be used in our course home page (replicated below for your convenince):


  • Assignment 5 Released

    Posted by Jingling Xue Wednesday 06 April 2022, 09:10:21 PM.

    Dear COMP3131/9102 Student,

    The spec for Assignment 5 has just been released. By the time you have written a code generator for VC, you would have obtained a compiler for VC.

  • Lecture Recordings for Week 8 on Code Generation

    Posted by Jingling Xue Monday 04 April 2022, 11:49:20 AM.

    These are now available.

    The spec for Assignment 5 will be released soon.

  • Assignment 4: Type Checking

    Posted by Jingling Xue Monday 04 April 2022, 09:18:57 AM.

    Dear COMP3131/9102 Student,

    I can see that some students have already submitted their Assignment 4 and some others are working on it.

    I hope that we can take advantage of this opportunity of writing a type checker to think about more about programming languages, especially types. For newer programming languages such as Rust, types play an increasingly more important role in improving the safety and reliability of software written.

  • The VC Specification

    Posted by Jingling Xue Sunday 27 March 2022, 07:22:21 PM.

    Dear COMP3131/9102 Student,

    It is important to go through the VC spec provided online:

    https://www.cse.unsw.edu.au/~cs3131/22T1/Assignments/VC.html

    before you start implementing your type checker, since the VC spec defines precisely all the type rules for VC.

  • The Bonus Assignment Released

    Posted by Jingling Xue Sunday 20 March 2022, 11:03:05 AM.

    Dear COMP3131/9102 Student,

    I have just released our bonus assignment specification for those who are interested in having a go so that they can plan ahead now. This involves modifying all the four modules of the VC compiler to handle a few new language features added to VC, including pointers, for example.

    There is a minimal spec so that you have more freedom to pursue your own style of implementation for the new language features.

    Here is the assessment formula mentioned in the course outline:



  • Week 7 Tutorial Questions

    Posted by Jingling Xue Saturday 19 March 2022, 12:25:17 PM.

    Dear COMP3131/9102 Student,
    If you haven't downloaded the tutorial questions for Week 7, you can ignore this message. Otherwise, please re-download the questions. Thanks.

  • Assignment 3 Marked

    Posted by Jingling Xue Saturday 19 March 2022, 11:52:58 AM, last modified Saturday 19 March 2022, 11:53:56 AM.

    Assignment 3 has been marked. Please check your marks and let me know if there are any issues with your marks.
    Once again, the test cases used, together with the reference solution (in bytecode ), will be available tonight (from 9pm).

    As before, please read the feedback page for this assignment. I have provided a short feedback video for this assignment.

  • Assignment 4

    Posted by Jingling Xue Saturday 19 March 2022, 10:00:44 AM.

    Dear COMP3131/9102 Student,

    The spec for Assignment 4 has just been released.

    The reference solution for the parser (in bytecode) will be released today so that you can use it for the next two assignments if your own solution doesn't fully work yet.

    Have fun!

  • Today's In-Person Tutorial Class (W14A) Changed to Onliine

    Posted by Jingling Xue Wednesday 09 March 2022, 01:30:44 PM.

    Due to heavy rain, today's in-person tutorial class (W14A) will be done online. Sorry for the short notice.

    Here is the email from the tutorial (including a zoom link):

    Hi Jingling,

    Thanks. Here is the link:

    https://unsw.zoom.us/j/81345787013?pwd=ZTlSL1hQakVnZTF5U25UY01Kc0k0UT09
    Password: 669333

    Regards,

    Samad

  • Assignment 2 Marked

    Posted by Jingling Xue Tuesday 08 March 2022, 08:52:56 AM.

    Dear COMP3131/9102 Student,

    Assignment 2 has been marked. Please check your marks. I am pleased to see a lot of great implementations in Assignment 2!

    Please take a look at the assignment 2 page (including a short feedback video for this assignment).

    Please move on to extend your recogniser to obtain a parser in Assignment 3.

    --- Jingling

  • Assignment 3

    Posted by Jingling Xue Wednesday 02 March 2022, 03:46:20 PM.

    The spec for Assignment 3 has been released.

    Today's lecture explains how to extend your recogniser (developed in Assignment 2) to obtain a parser to be developed in Assignment 3.

    Please compare Recogniser.java (provided in Assignment 2) with Parser.java (provided in Assignment 3) carefully to understand how the former can be easily extended to obtain the latter for a subset of VC.

    Please note once again that Assignments 2 and 3 are actually one assignment focusing on developing an (AST-building) parser for VC. After Assignment 3, the recogniser will no longer be used. For this reason, the spec for Assignment 3 is released before Assignment 2 is due (as planned according to the course outline). If you have submitted your Assignment 2, you are welcome to work on Assignment 3 now. Otherwise, you can do it after you have completed your Assignment 2 before 7 March.

    --- Jingling

  • Assignment 2

    Posted by Jingling Xue Sunday 27 February 2022, 05:47:36 PM, last modified Monday 28 February 2022, 09:37:11 AM.

    Dear COMP3131/9102 Student,

    Please take a look at Parser.java provided in the supporting code, which is already a working parser written for a subset of VC. This implementation demonstrates clearly how to eliminate left recursion (based on the rules introduced in lectures (Slide 194)). All it remains to be done is to perform a left factoring transformation to eliminate the common prefix shared by func-decl and var-decl. Otherwise, you would need to look ahead by 3 tokens to distinguish two constructs. Once you have eliminated the common prefix (and the left recursion), the resulting grammar will be LL(1) and can be parsed by using one single token of lookahead. In other words, the supporting code already provides most of the implementation for the parser to be developed for VC.

  • Feedback video for Assignment 1

    Posted by Jingling Xue Friday 25 February 2022, 10:29:29 AM.

    Dear COMP3131/9102 Student,

    I have just released a short feedback video for Assignment 1, which can be found from the course's home page.


    Assignments ==> Assignment 1 ==> Feedback (Video)

  • Assignment 1 Marked and Assignment 2 Released

    Posted by Jingling Xue Friday 25 February 2022, 12:24:25 AM.

    Dear COMP3131/9102 Student,

    Assignment 1 has been marked. Please let me know if you have any issues with your marks. Please go to the course's home page to look for some feedback for this assignment. I will also release a short feedback video tomorrow.

    Assignment 2, which asks you to write a recogniser, has been released.

  • Tutorial Recordings

    Posted by Jingling Xue Wednesday 23 February 2022, 10:28:22 PM.

    Dear COMP3131/9102 Student,

    The tutorial recordings can be accessed from the course's home page (by clicking the Tutorial button on the left menu).

    The tutor will make a week's tutorial recording available here usually after he has done all the tutorial classes for that week.

  • Today's lecture recording

    Posted by Jingling Xue Wednesday 23 February 2022, 08:52:05 AM.

    Dear COMP3131/9102 Student,


    In today's lecture recording (divided into 3 parts), I have spent some time working out some examples to show you how to apply the first and follow set construction algorithms to compute the first and follow sets for a CFG. As a result, the total duration of the lecture time is longer than 2 hours. I hope this is OK with you. Of course, you are also encouraged to try a few examples given in the tutorials yourself to ensure your understanding of both algorithms.

  • Tutorials (Zoom Links)

    Posted by Jingling Xue Tuesday 22 February 2022, 03:08:46 PM, last modified Tuesday 01 March 2022, 05:06:40 PM.

    Dear COMP3131/9102 Student,

    Students cannot find the zoom links for their tutorials.

    Below, you will find an email that I sent to the class just before our first tutorial.

    --- Jingling



    Dear COMP3131/9102 Student,

    Here is a message from our tutor regarding the zoom links used for our tutorial classes:

    Hi Jingling,

    Here is the list of tutorials' meetings info. The same link and passcode should work for all weeks.


    Regards,

    Samad

  • Public Interface vs. Private Implementation

    Posted by Jingling Xue Friday 18 February 2022, 04:46:30 PM.

    Dear COMP3131/9102 Student,

    For each compiler module implemented in an assignment, there is always a public interface dictating how the compiler module can be used. In the case of Assignment 1 for writing a scanner for VC, its public interface is simply just getNextToken(). You are certainly allowed to use whatever is necessary (by, e.g., using some additional classes from JDK or yourself) in your private implementation if you think this is a good design for your solution. This will be where you should practise information hiding.

  • Compilation vs. Coding

    Posted by Jingling Xue Friday 18 February 2022, 09:06:10 AM.

    Dear COMP3131/9102 Student,

    As I explained in my first lecture, this course focuses on learning how to write a compiler in Java for a realistic programming language. As COMP2511 is a pre-requisite, you are assumed to know OO and you are also assumed to be able to write programs in Java efficiently. Therefore, there are no lectures on how to code in Java. However, the course does provide an opportunity for you to develop a better understanding of OO and improve your programming/software engineering skills in Java.

  • The videos for Week 1's Wed Lecture

    Posted by Jingling Xue Wednesday 16 February 2022, 09:37:39 AM.

    Dear COMP3131/9102 Student,

    The videos for today's lecture are now available.

    From now on, the video(s) for a particular lecture will always be released before the lecture. I will not send further notices on this matter.

    Once again, if you haven't started working on Assignment 1, you may consider to start asap.

  • Microsoft Teams

    Posted by Jingling Xue Monday 14 February 2022, 02:17:23 PM.

    In the Team Page set up for this course, I have created one channel for each lecture time slot as shown below. For each lecture, I may use the lecture hours at its corresponding channel for consultation purposes (and for providing feedback to our programming assignments).

  • The spec for Assignment 1

    Posted by Jingling Xue Monday 14 February 2022, 01:03:24 PM.

    Dear COMP3131/9102 Student,

    Please be reminded that the spec for Assignment has already been released with 24 Feb as the submission deadline.

    Once again, there will not be live lectures this term. If you have some questions to ask me, I will be available via our course's Team page during the lecture hours. Of course, you are welcome to post your questions to the course forum at any time.

  • Welcome Video

    Posted by Jingling Xue Monday 14 February 2022, 09:39:01 AM.

    Dear COMP3131/9102 Student,

    I have also made the short welcome video available under "Lectures" (just before Week 1's teaching material) on our course's home page.

  • Lecture Recordings

    Posted by Jingling Xue Sunday 13 February 2022, 09:54:41 PM.

    Dear COMP3131/9102 Student,

    I have decided to use Echo360 (instead of Microsoft Teams) to host our lecture recordings.


    I will make the lecture recording(s) for a lecture, together with its lecture notes, available on our course's home page. As shown below, the lecture recording for our first lecture is now available:

    I will no longer make our lecture recordings (also) available on Microsoft Teams, as it takes ages to upload a video to Microsoft Teams and the uploaded video seems quite blurry.

    We will continue to use the Team Page created for this course for consultation purposes and for providing feedback to our programming assignments after they have been marked.


  • Welcome to COMP3131/9102

    Posted by Jingling Xue Monday 07 February 2022, 04:46:19 PM.

    Dear COMP3131/9102 Student,

    1. I have created a short welcome video for this course. You can find this video from the
    "Week 0 (Introduction)" channel of this course set up at Microsoft Teams:
    Name: COMP3131/9102 (22T1)
    Team Code: grez5g2

    2. All the lectures will be released as pre-recorded videos and made available at our course's team.

    3. The lecture time slots will be used for providing assignment feedback (and consultation).

    4. Moodle will not be used.


    --- Jingling





Back to top

COMP3131/COMP9102 22T1 (Programming Languages and Compilers) is powered by WebCMS3
CRICOS Provider No. 00098G