| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
이승중
가입: 2010년 6월 22일 올린 글: 561
|
올려짐: 2012년9월25일 14:10 주제: 숙제 2-5 테스트를 위한 뼈대코드를 제공합니다 (9/26 15:50 수정) |
|
|
숙제 2-5를 광범위하게 테스트 하기 위해 뼈대코드를 제공합니다.
http://ropas.snu.ac.kr/~ta/4190.310/12/stuff/hw2/ex5.zip
answer.ml의 TODO부분만 채워넣고 숙제 제출시에는 answer.ml만 제출해주세요
(이미 제출하신 분들도 파일이름만 answer.ml로 바꿔주면 적용해 볼 수 있을 겁니다, 다시 제출할 필요 없습니다)
컴파일 방법은 마티니나 윈도우에서
라고 치면 됩니다. (윈도우에서는 ocamlc가 바로 실행가능할 수 있어야 합니다) 그러면 ex5 (또는 ex5.exe) 가 생성되며
| 코드: | | ex5 s1.txt 또는 ./ex5 s1.txt |
하면 s1.txt에 적혀있는 텍스트를 Zexpr.expr타입으로 바꿔서
Zexpr.eval의 인자로 넣어줍니다.
main.ml에는 디버깅을 위해 pprint를 제공합니다.
pprint 함수는 zexpr을 받아서 사람이 읽을 수 있는 텍스트로 출력해주고
pprint_ocaml 함수는 Ocaml에서 쓸 수 있는 코드로 출력해줍니다.
텍스트 파일의 문법은 s1.txt를 보면 대부분 알 수 있을겁니다.
혹시 궁금한 점이나 버그 있으면 알려주세요
이승중 가 2012년10월6일 19:40에 수정함, 총 3 번 수정됨 |
|
| 위로 |
|
 |
이승중
가입: 2010년 6월 22일 올린 글: 561
|
올려짐: 2012년9월25일 15:10 주제: |
|
|
| 추가: 음수를 사용할 수 있게 바꾸었습니다 (-10) 이런식으로 만들 수 있습니다. |
|
| 위로 |
|
 |
권윤
가입: 2012년 9월 26일 올린 글: 2
|
올려짐: 2012년9월26일 14:34 주제: |
|
|
저, 음수에서 좀 문제가 있는것 같습니다.
let x1 = max [3 + (-6) * 7; 3; 20; 80; let y = 3 in
y / 3] in
let y2 = 6 in
x1 / y2 + 2
에 대해서 변환결과에서
LET ("x1",
MAX [MULT (PLUS (NUM 3,
NUM -6), 여기가 NUM (-6)이렇게 나와야 하지 않나요??
NUM 7);
NUM 3;
NUM 20;
NUM 80;
LET ("y",
NUM 3,
DIVIDE (VAR "y",
NUM 3))],
LET ("y2",
NUM 6,
DIVIDE (VAR "x1",
PLUS (VAR "y2",
NUM 2)))) |
|
| 위로 |
|
 |
이승중
가입: 2010년 6월 22일 올린 글: 561
|
올려짐: 2012년9월26일 15:51 주제: |
|
|
네 감사합니다
pprint 에서 음수 문제와 + - 에서 우선순위에 맞게 괄호를 안쳐주던 문제를 해결해서 다시 올렸습니다. |
|
| 위로 |
|
 |
김상우
가입: 2011년 9월 10일 올린 글: 50
|
올려짐: 2012년9월26일 17:18 주제: 그대로인것같은데요? |
|
|
| 결과가 이전과 똑같이 나오는데 한번 더 확인해주실 수 있으신가요?ㅠ |
|
| 위로 |
|
 |
이승중
가입: 2010년 6월 22일 올린 글: 561
|
올려짐: 2012년9월26일 18:09 주제: |
|
|
링크로 다운받아서 바뀐것 확인하였습니다.
캐시 적용된거 아닌지 확인해 보세요 |
|
| 위로 |
|
 |
|