이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
김재원 손님
|
올려짐: 2008년10월2일 0:13 주제: 뼈대의 리드미 파일이 깨지는데요..ㅠ |
|
|
윈도우에서 열어도 그렇구 리눅스에서 vim으로 열어도 그런데..ㅠㅠ
확인 부탁드려요 ^^ |
|
위로 |
|
|
최원태
가입: 2006년 9월 16일 올린 글: 369
|
올려짐: 2008년10월2일 0:34 주제: |
|
|
인코딩이 utf-8로 되어있습니다.
iconv를 사용하여 인코딩을 변경하면 리눅스에서 euc-kr로 볼 수 있습니다.
코드: | iconv -f utf-8 -t euc-kr README |
윈도우를 안쓴지 오래되어 윈도우에서는 잘 모르겠습니다.
수강생중 아는 분이 있으면 알려주세요. |
|
위로 |
|
|
강지훈
가입: 2008년 9월 2일 올린 글: 291 위치: 302동 312-2호
|
올려짐: 2008년10월2일 1:20 주제: 1 |
|
|
in gvim or vim, use
:set encoding=utf8 _________________ 강지훈
프로그래밍의 원리 조교
Jeehoon Kang
TA, Principles of Programming |
|
위로 |
|
|
최종식
가입: 2008년 9월 2일 올린 글: 40
|
올려짐: 2008년10월2일 1:42 주제: 전 그냥 브라우저에서 열었어요 [..] |
|
|
vim에서 저걸 해도 안되는 경우가 많으니 =ㅁ=;
암튼 내용은 이거이빈다....
복잡하네요 ㅠㅠ 그런데 저기 아래의 3.n 만제출하라는 부분이 잘 이해가 안되는데 무슨말인지 ;
=====[ 문법 ] =======================================
제공되는 파서가 정의하고 있는 문법은 강의 TP에 있는
expression과 statement가 합쳐있는 언어입니다.
=====[ 우선 순위 ]======================================
사용되는 기호들의 우선순위는 아래와 같습니다.
위에 있는 기호가 우선 순위가 가장 높고,
아래로 갈수록 우선 순위가 낮아집니다.
not (오른쪽)
*, / (왼쪽)
+, - (왼쪽)
=, < (왼쪽)
write (오른쪽)
:= (오른쪽)
else
then
do
; (왼쪽)
in
우선순위를 고려해야 되는 몇가지 일반적인 경우를 보여드리면
다음과 같습니다.
x := e1 ; e2 => (x := e1) ; e2 ( := 이 ; 보다 우선 순위가 높기때문 )
while e do e1;e2 => (while e do e1);e2
if e1 then e2 else e3;e4 => (if e1 then e2 else e3); e4
let x := e1 in e2 ; e3 => let x :=e in (e2;e3)
즉 :=, while, for, if 의 바디로 sequence를 쓰고 싶으면 sequence를
다음과 같이 괄호로 묶어 줘야 합니다.
while e do (e1;e2)
마찬가지로 let in 의 바디에서는 scope를 제한시키려면 괄호를 쳐줘야 하게 됩니다.
(let x := e1 in e2); e3
방향성은 우선순위가 같은 경우에 적용이 됩니다.
예를 들어 방향성이 오른쪽인 := 은
x := y := 1 => x := (y := 1)
이 되게 됩니다.
우선순위를 잘 모르겠을시에는 괄호를 쳐주는 것이 한가지 방편이 될 수 있습니다.
=====[ 컴파일 및 실행 방법 ]======================================
제공되는 3.n 파일에는 숙제 구현 부분은 비워져 있습니다. 이 파일을 수정해서
interpreter를 완성하고 다음과 같이 컴파일 및 실행을 하면 됩니다.
[UNIX]
1. nmakegen -f
2. make
3. run examples/test.k-
[WINDOWS]
1. nmakegen -f
2. make ( nml 설치시에 같이 설치됩니다. )
3. run examples\test.k-
차후에 수정을 해서 다시 컴파일하는 경우는 2~3과정만 다시 실행하면 됩니다.
====[ 숙제 제출 방법 ] ===================================
숙제 제출은 3.n 파일만 해주세요..
즉 조교가 여기서 제공되고 있는 파일 중 2.n만 각자가 제출한 것으로
바꿔서 컴파일 및 실행이 되도록 해서 제출해 주시기 바랍니다.
=====[ pretty-printer ] =================================
입력 프로그램을 간단히 화면에 출력시켜주는 pretty-printer가
제공된 pp.n 파일에 포함되어 있습니다.
사용법은 'run -pp test.k-'를 실행하면 main.n에서 run 함수를 불러서
intepreter를 돌리는 것이 아니라 test.k-를 파싱 해서 입력된 프로그램을
화면에 출력해주고 마치게 됩니다.
이를 통해 파싱이 의도한 대로 되고 있는지 확인해 보실 수 있을 겁니다.
=====[ 주석 ]==========================================
K- 프로그램 안에서 (* *) 로 주석을 사용할 수 있습니다.
--
03 최웅식 <wschoi@ropas.kaist.ac.kr>
04 신재호 <netj@ropas.snu.ac.kr>
05 김덕환 <dk@ropas.snu.ac.kr>
05 오학주 <pronto@ropas.snu.ac.kr>
06 이희종 <ihji@ropas.snu.ac.kr>
07 오학주 <pronto@ropas.snu.ac.kr>
08 최원태 <wtchoi@ropas.snu.ac.kr> |
|
위로 |
|
|
hjshin
가입: 2008년 9월 25일 올린 글: 4
|
올려짐: 2008년10월2일 11:54 주제: Re: 전 그냥 브라우저에서 열었어요 [..] |
|
|
인용: | 복잡하네요 ㅠㅠ 그런데 저기 아래의 3.n 만제출하라는 부분이 잘 이해가 안되는데 무슨말인지 ;
|
뼈대 파일의 3.n 파일에서 (* implement it! *) 라고 표시되어 있는 부분 (run함수) 를 구현하시고 그 파일을 제출하시면 될것 같습니다. |
|
위로 |
|
|
최원태
가입: 2006년 9월 16일 올린 글: 369
|
올려짐: 2008년10월2일 12:17 주제: |
|
|
뼈대 파일을 수정하다가 다 고치지 않은 부분이 있군요.
2.n은 없으니, 3.n을 고쳐서 3.n을 재출하세요. |
|
위로 |
|
|
|