2018년 7월 2일 월요일

[한이터백승기] AI준비단계 - 마지막(6)

이번것으로 컴파일러 준비단계는 마지막입니다.
프로그램은 소스코드를 메모리로 읽고 번역하고 실행하는 것으로 이어졌습니다.
실행대상은 변수구조체 선언문과 간단한 실행문을 처리하는 것으로 마무리됩니다.
1. 변수는 구조체만 정의 하였습니다.
    => 이유는 대표명이 있는 구조체가 분석하기 쉽습니다.
2. 실행코드는 간단한 연산문 덧셈과 할당 뿐입니다.
   => 사실은 사칙연산은 다 됩니다. 
뜻밖이지만 다중계산도 될지도 모릅니다.
여기서 마무리 짖는 것은 다음에 해야할 내용이 문장 및 구조 분석입니다.
물론  한글문장 분석은 좀더 나중에 할것입니다. 
지금은 좀더 고도의 산술식만 처리하는 스크립트 코드를 번역하고 실행하는 프로그램에 집중할것입니다.
=> 프로그램은 남이 한것을 가져다 자기이름으로 바꾸는 것은 쉽지만 , 
자기 스스로 프로그램을 만드는 것은 오랜경험없이 쉽게 만든다는것은 전부 거짓말입니다.
=> 이 프로그램은 제가 지금 몸이 아파 병원신세를 지기직전 상태로 요양중에 매일 잠깐동안만  작성하고 있는 것입니다. ( 1~2시간 정도 )
=> 한국에서는 이런 초급수준의 컴파일러도 만들수 없을 것입니다. 
( 연구소도 못할 것이고  대학생들은 가능할듯 합니다. => 빨리빨리 문화의 피해입니다. )

다음은 스크립트 소스코드 입니다.
  ==> [ 스크립트 컴파일러 소스코드는 공개하지 않을 예정입니다. ]

gRTN.demo(""
"struct one1 begin;"
"int A=111,B=222,C=333;"    // 정수:초기화 -> to int array
"chr D:40='aaa',E:32;" // 문자열:길이 -> to 크기를 지정함 <- 추가
"int A=111,B=222,C=333;"    // 정수:초기화 -> to int array
"str D1='ab cd',E1='';"      // 문자열:길이 -> to 가변 미구현
"num F=11.1,G=12.12;" // FLOAT NUMBER  -> to double
"end;"
"program main begin;"
"one1.A = 100;"
"one1.B = 2;"
"one1.C = one1.A + one1.B;"
"exec notepad.exe;"  
// <= 이것이 출력창입니다.
"putln one1.F,one1.B,one1.G;" // like prinf
"putln one1.A,one1.B,one1.C;" // like prinf

"putln A = one1.A;" // like prinf
"putln B = one1.B;" // like prinf
"putln C = one1.C;" // like prinf
"end;"
);





댓글 없음:

댓글 쓰기