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.
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.
Dear COMP3131/9102 Student.
Here are two more:
cp ~cs3131/Exams/Papers01+03.zip your-directory
Dear COMP3131/9102 Student,
Please be reminded that this survey will be closed on 28 April (tomorrow).
Thanks.
--- Jingling
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.
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 let me know if you have any questions regarding the final exam.
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.
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
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.
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):
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.
These are now available.
The spec for Assignment 5 will be released soon.
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.
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.
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:
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 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.
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!
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
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
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
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.
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)
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.
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.
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.
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
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.
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.
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.
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).
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.
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.
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.
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