HW 5 is out! #532
Replies: 4 comments 2 replies
-
|
Dear students, It will be interesting if you 1) implement your unique precision-improving strategies (as we discussed today), and 2) add examples such that your strategy is effective to analyze them (so KILL other students' analyzers!). I will be happy to see the final results. |
Beta Was this translation helpful? Give feedback.
-
|
@goodtaeeun |
Beta Was this translation helpful? Give feedback.
-
|
안녕하세요, 과제 레포의 release:
$(DUNE) build --profile=release src/main.exe
$(LN) _build/default/src/main.exe $(EXE)
+ @$(foreach item, $(SRC), checkml $(item) || exit 1;)Hi all. You can check the value oriented programming requirements with release:
$(DUNE) build --profile=release src/main.exe
$(LN) _build/default/src/main.exe $(EXE)
+ @$(foreach item, $(SRC), checkml $(item) || exit 1;) |
Beta Was this translation helpful? Give feedback.
-
|
안녕하세요 make validate은 통과하고, 소스코드에서 ref 사용을 하지 않는데도 autograder에서 All submitted tests must be valid (validated: 2, submitted: 63)가 뜨는 상황입니다. 혹시 확인 부탁드릴 수 있을까요? When I run |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
안녕하세요. 다섯 번째 과제인 ThriLLVM Analyzer에 대한 공지입니다.
여러분은 이 과제를 통해 ThriLLVM 언어에서 division-by-zero, null-dereference 오류를 검출하는 정적 분석기를 구현하게 됩니다.
더 자세한 설명과 안내는 과제의
README.md를 참고해 주세요.제출
아래 링크를 통해 과제 레포지토리를 생성하고 과제를 진행해주시기 바랍니다.
https://classroom.github.com/a/SWbxP2o5
과제 채점은 Gradescope 를 통해 이루어집니다.
5. Thrillvm Analyzer라는 이름의 과제에 제출해주시기 바랍니다.채점
과제 점수는 네 가지 점수의 합으로 결정됩니다.
quiz파일에 있는 문제에 대한 점수입니다. 과제 제출 시 반드시quiz파일에 답안을 작성하여 제출해 주세요.정확성 점수는 오탐 비율로 결정되며, 다음과 같이 계산됩니다.
효율성 점수는 분석기를 실행하는 동안 사용된
join,widen,narrow연산 개수의 합을 기존의 가장 효율적이었던 분석기와 비교하여 결정합니다.계산 방식은 다음과 같습니다.
추가로 Interval과 Sign 도메인의 경우, 각 도메인의 함수에 대한 단위 테스트(Unit Test)를 통해 각 함수가 올바르게 구현되었는지 검사할 것입니다.
이번 과제의 커버리지 기준은 80%입니다.
중요: 테스트 요구사항
이번 과제부터 여러분이 제출할 테스트의 기준이 보다 엄격해집니다. 여러분이 제출하는 모든 테스트는 다음과 같은 기준을 만족해야 합니다.
위의 기준은 Gradescope 오토그레이더를 통해서 자동으로 검사됩니다. 검사 방식과 이에 따른 구체적인 요구사항은 문서를 참고해주세요.
1번 기준의 경우, 여러분의 편의를 위해 과제 레포지토리에서 미리 검사할 수 있는 기능을 제공하고 있습니다.
테스트를 준비하신 후
make validate를 실행하시면 다음과 같이 명시된 위치에 실제 오류가 존재하는지 자동으로 검사할 수 있습니다.참고: make validate는 내부적으로 Clang Sanitizer를 사용합니다. 프로그램 살균기(Sanitizer)는 특정한 종류의 오류를 동적으로 검출하는 검사기입니다. 예를 들어, 모든 나눗셈에 앞서 분모가 0인지 확인하는 등의 검사를 자동으로 삽입하는 방식으로 작동합니다. 더 관심이 있는 분은 UndefinedBehaviorSanitizer를 참고해 주세요.
위의 자동화된 작업을 각 테스트에 대해 수동으로 진행할 수도 있습니다.
test/student/homework.h파일을test/student/validate_header.h파일로 교체합니다../test.bin < test.input마감 이후에는 숨겨진 20%의 테스트가 추가되어 최종 채점이 진행됩니다. 여러분이 제출한 테스트도 이 20%에 포함될 예정이니 참고해 주시기 바랍니다.
기한
제출 마감: 05. 13 (수) 23:59
늦은 제출 마감: 05. 15 (금) 23:59
감사합니다.
P.S. Gradescope 리더보드에 있는 Elvis (TA)는 조교의 점수이며, Hoseong Lee (2024S)는 이전 수강생들 중 우수한 성적을 거둔 학생의 점수입니다. 이 점수를 뛰어넘어서 다음 수강생들에게 이름을 남겨보시길 바랍니다!
Hello. This is an announcement regarding the fifth assignment, ThriLLVM Analyzer.
Through this assignment, you will implement a static analyzer that detects division-by-zero and null-dereference errors in the ThriLLVM language.
Please refer to
README.mdfor more detailed explanations and guidance.Submission
Please create the assignment repository using the link below and proceed with the assignment.
https://classroom.github.com/a/SWbxP2o5
Assignment grading will be done through Gradescope. Please submit to the assignment named
5. Thrillvm Analyzer.Grading
The assignment score will be determined by the sum of the four scores.
The precision score accounts for the false positive ratio.
It will be computed as follows
The efficiency score is determined by comparing the sum of the number of join, widen, and narrow operations used during the analyzer’s execution with that of the past best-performing analyzer.
It is computed as follows:
We will also run unit tests for the Interval and Sign domains to test that each function is implemented correctly.
The coverage threshold for this assignment is 80%.
Important: Test Requirements
We will apply stricter requirements to your submitted tests starting with this assignment. All additional tests you add must meet the following requirements:
The above requirements will be automatically checked through the Gradescope autograder. Please refer to this document for the checking method and specific requirements accordingly.
We support automatically checking the first requirement in your assignment repository.
After preparing the required test files, run
make validate, which should print out the following output:NOTE: We use Clang sanitizers to detect bugs. Sanitizer is a checker to detect specific types of bugs. For example, you can think of it as inserting a check for the divisor before every division. This is all you need to know about the sanitizer for this assignment. However, you may refer to UndefinedBehaviorSanitizer if you are further interested.
You can also manually check with the following steps.
test/student/homework.hwithtest/student/validate_header.h../test.bin < test.inputFurthermore, a hidden 20% of the test suite will be added after the deadline for final grading. Note that your submitted tests will also be included in this portion.
Deadline
Submission Deadline: 05. 13 (Wed) 23:59
Late Submission Deadline: 05. 15 (Fri) 23:59
Thank you.
P.S. The name Elvis (TA) on the Gradescope leaderboard is the TA’s scores, and Hoseong Lee (2024S) is the past best-performing submission. Aim for your name to appear on the leaderboard the next semester!
Beta Was this translation helpful? Give feedback.
All reactions