if문을 스크립트 뺀후에 스크립트로 만드는
일종에 스크립트 언어를 만들고 싶습니다. 어떻게 접근하는게 좋을까요?
제어 스크립트 문을 만들어 보고 싶은시다는 건가요??
잘 모르지만.. 무슨 말인지 이해해보려고요..
laziness, impatience, hubris
不恥下問 - 진정으로 대화를 원하면 겸손하게 모르는 것은 모른다고 말하는 용기가 필요하다.
if문을 스크립트로 만드는 방법에 대해 알고 싶어서요. 예를 들어서. test.txt라는 파일에 if(a > b) {
} 이런 식으로 넣으면 파일을 읽은 그대로 프로그램에서 돌아가게 하고 싶어서요.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
문법분석(parsing)이 무엇인지 이해하고 문법분석 라이브러리나 문법분석기를 생성하는 툴을 이용해 문법분석기를 구현할 줄 알아야 하며, 프로그래밍 언어의 실행 모델에 대한 이해가 있어야 간단한 스크립팅 언어라도 제대로 구현할 수 있습니다.
학생이시라면 프로그래밍 언어나 컴파일러 수업을 일단 들으시길 권합니다. 예를 들면 다음과 같이 숙제로 인터프리터를 작성해 보는 수업입니다. http://ropas.snu.ac.kr/~kwang/4190.310/07/
책으로 독학하신다면 SICP 같은 우리말 판이 있는 책이 편할테니 SICP 4.1 절을 이해하실 정도의 지식이 필요하므로, 4.1 절까지 중요한 연습문제를 풀어 가며 정독하시면 될 겁니다.
C나 Java같이 생긴 코드를 적어 놓고 파일을 읽어들인다고 말씀하시는 걸로 봐서는 아마도 C나 Java로 짠 프로그램 실행 중에 인터프리터를 호출하고 싶으신 모양이신데, 그런 용도라면 그야말로 Scheme 같은 LISP 계열 언어가 딱이죠 ㅎㅎ.
임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin
lex yacc 한표입니다
두 표!!
bison, flex 를 써보시길... ==== ( - -)a 이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.
대개 배포판에서 bison 도 yacc 으로, flex 도 lex 로 심볼릭 링크를 걸도록 패키징하기 때문에, 이제는 yacc 이나 lex 라고 하면 당연히 bison (혹은 bison++) 과 flex 를 뜻하는 것이나 다름없죠.
간단한 언어를 만들고 싶다면... 그러한 목적에 딱 맞는 언어가 있긴 합니다. LISP이라고. 하지만 대부분 LISP을 배우기 시작할 때 쯤이면 이미 질문하신 내용을 다 구현할 수 있는 실력일테니 패스~
아니면 간단한 기능을 지원하는 interpreter를 내장하는 것도 괜찮습니다. lua, python, guile(scheme) 등을 검색해 보기 바랍니다.
-- C FAQ: http://www.eskimo.com/~scs/C-faq/top.html Korean Ver: http://www.cinsk.org/cfaqs/
cint라고 유명한 C 인터프리터가 있죠 아마.
펄이라면.. 그냥 eval하면 되는데^^
points
제어 스크립트 문을
제어 스크립트 문을 만들어 보고 싶은시다는 건가요??
잘 모르지만.. 무슨 말인지 이해해보려고요..
不恥下問 - 진정으로 대화를 원하면 겸손하게 모르는 것은 모른다고 말하는 용기가 필요하다.
points
네
if문을 스크립트로 만드는 방법에 대해 알고 싶어서요.
예를 들어서.
test.txt라는 파일에
if(a > b)
{
}
이런 식으로 넣으면 파일을 읽은 그대로 프로그램에서 돌아가게 하고 싶어서요.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
points
스크립트 인터프리터를 만들고 싶으신 거군요
문법분석(parsing)이 무엇인지 이해하고
문법분석 라이브러리나 문법분석기를 생성하는 툴을 이용해
문법분석기를 구현할 줄 알아야 하며,
프로그래밍 언어의 실행 모델에 대한 이해가 있어야
간단한 스크립팅 언어라도 제대로 구현할 수 있습니다.
학생이시라면 프로그래밍 언어나 컴파일러 수업을 일단 들으시길 권합니다.
예를 들면 다음과 같이 숙제로 인터프리터를 작성해 보는 수업입니다.
http://ropas.snu.ac.kr/~kwang/4190.310/07/
책으로 독학하신다면 SICP 같은 우리말 판이 있는 책이 편할테니
SICP 4.1 절을 이해하실 정도의 지식이 필요하므로,
4.1 절까지 중요한 연습문제를 풀어 가며 정독하시면 될 겁니다.
C나 Java같이 생긴 코드를 적어 놓고 파일을 읽어들인다고 말씀하시는 걸로 봐서는
아마도 C나 Java로 짠 프로그램 실행 중에 인터프리터를 호출하고 싶으신 모양이신데,
그런 용도라면 그야말로 Scheme 같은 LISP 계열 언어가 딱이죠 ㅎㅎ.
points
lex yacc 한표입니다
lex yacc 한표입니다
points
두 표!! laziness,
두 표!!
不恥下問 - 진정으로 대화를 원하면 겸손하게 모르는 것은 모른다고 말하는 용기가 필요하다.
points
세표!!
bison, flex 를 써보시길...
====
( - -)a 이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.
points
대부분의 배포판에서
대개 배포판에서 bison 도 yacc 으로, flex 도 lex 로 심볼릭 링크를 걸도록 패키징하기 때문에,
이제는 yacc 이나 lex 라고 하면 당연히 bison (혹은 bison++) 과 flex 를 뜻하는 것이나 다름없죠.
points
간단한 언어를
간단한 언어를 만들고 싶다면... 그러한 목적에 딱 맞는 언어가 있긴 합니다. LISP이라고. 하지만 대부분 LISP을 배우기 시작할 때 쯤이면 이미 질문하신 내용을 다 구현할 수 있는 실력일테니 패스~
아니면 간단한 기능을 지원하는 interpreter를 내장하는 것도 괜찮습니다. lua, python, guile(scheme) 등을 검색해 보기 바랍니다.
--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/
points
cint 라고
cint라고 유명한 C 인터프리터가 있죠 아마.
펄이라면.. 그냥 eval하면 되는데^^