Task Description Format
Name: SRE0.1/ADOxx
Code: 17-007-RD-02
Charge: JS
Period: Begin 2017년 1월 1주
End
[2016.12] Gcc-Ada code version installation
- code로 인스톨 및 확인 / Hello World.adb
- install 과정 및 설정에 대한 문서 작성 후 보관 예정 (작성 완료 후 업데이트 필요)
- Ada Parser 코드 확인 및 분석
- Parser로 예상되는 코드(par.*) 확인 중
- MK가 준 ada 코드와 비교 확인 중
[2017.01] gcc/ada 컴파일러 분석
[1주] gcc/ada 컴파일러 분석 1
- ada 코드 중 필요하다고 판단 되어지는 코드 분석
= par.* / sprint.*
- ada 코드 이해를 위한 스터디 병행
[2주] gcc/ada 컴파일러 분석 2
- Parser의 작동을 확인하기 위한 자료 부족을 느낌
- 자료 보충을 위한 자료 수집
- ada 코드 이해를 위한 스터디 병행
- par.* 코드 분석
[3주] gcc/ada 컴파일러 분석 3
- 자료 보충을 위한 자료 수집
- ada 코드 이해를 위한 스터디 병행
- par.* 코드 분석
[4주] gcc/ada 컴파일러 분석 4
- par.*가 아닌 sprint.adb에서의 parsing에 대한 결과를 출력함을 확인
- sprint.adb 코드 분석 진행
- 코드 변환 없이 예제 코드의 parsing을 그대로 출력 할수 있음을 확인
= 명령어 : gnatmake -gnatDG hello.adb
= 결과물 : hello.adb.dg [1단계]
- MK 코드의 sprint.adb / esl.adb 코드와 비교 분석 후 sprint.adb 변경 후 테스트 진행
= 결과가 나오지 않음
[2017.02] gcc/ada 컴파일러 분석 / sprint 코드 변환
[1주] gcc/ada 컴파일러 분석 5 / sprint 코드 변환 1
- MK 코드 빌드 및 설치 진행
= 만일 빌드 / 설치가 된다면 변환 작업을 하지 않아도 됨
= 하지만 버전이 달라 설치 실패 / sprint.adb 변환하기로 결정
- sprint.adb 변환 과정 중 MK 코드에서 esl stmt를 찾지 못함
= MK와 논의 필요
[2주] gcc/ada 컴파일러 분석 6 / sprint 코드 변환 2
- 진행상황 보고
= [2단계] 결과 도출
= [파일 첨부 1] 4-목-2017-02-09-SRE0.1-A_ADOxx.pptx
4-목-2017-02-09-sprint_Original_1단계.zip
4-목-2017-02-09-sprint_SRE0.1-A_ADOxx_2단계.zip
= 현재 상황까지 SRE0.1-A/ADOxx로 명명
- 쉬운 stmt (A단계) ~ 어려운 stmt (C단계) 순으로 다음 작업 진행
= [SRL ADA 정의서]의 stmt 중 p.9에 나와있는 실행문 부터 진행 예정
= [A 단계] 실행문
> 쉽게 변환이 가능하다고 생각됨
> 예제 준비
= [B 단계] 선언문
> TASK, BLOCK, PROTECTED 등
= [C 단계] 어려운 선언문 및 실행문 / Exp
= [B 단계], [C 단계]는 조금 더 확인이 필요하지만 선언문에서 쉬운것 부터 진행 예정
[3주] gcc/ada 컴파일러 분석 7 / sprint 코드 변환 3
[A 단계] 실행문 개발 및 테스트 (21)
#
Stmt Name
Ada
PAGE
201
IF
if
125
203
CASE
case
127
204
WHEN
when
129
205
SELECT
select
131
211
WHILE
while
133
213
FOR
for
135
215
LOOP
loop
137
221
ASSIGN
assignment
139
271
WITH_STAT
with
157
272
USE_STAT
use
159
281
GOTO
goto
165
284
RETURN
return
167
285
EXIT
exit
169
286
ABORT
abort
171
287
TERMINATE
terminate
173
288
DELAY
delay
175
304
RAISE
raise
177
#
Stmt Name
Ada
PAGE
391
NULL
null
183
-1
END
Delimiter
185
-2
ELSE
Delimiter
187
-3
OR
Delimiter
189
[B단계] 선언문 개발 및 테스트 (30)
#
Stmt Name
Ada
PAGE
11
GENERIC
generic
35
21
TASK_TYPE
task body
37
22
PROTECTED_TYPE
protected type
39
31
PACK_SPEC
package spec
41
32
TASK_SPEC
task spec
43
33
PROC_SPEC
procedure spec
45
34
FUNC_SPEC
function spec
47
35
PRO_OBJ_SPEC
protected object spec
49
41
PACK_BODY
package body
51
42
TASK_BODY
task body
53
43
PROC_BODY
procedure body
55
44
FUNC_BODY
function body
57
45
PRO_OBJ_BODY
protected object body
59
46
BLOCK
declare ~ begin ~ end
61
47
BEGIN
begin
63
48
DECLARE
declare
65
71
VARIABLE
variable
83
72
CONSTANT
constant
85
81
TASK_ENTRY
task entry
97
101
RENAME
rename
99
121
EXCEPTION_DCL
exception declaration
101
131
ORD_COMMENTS
ordinary
103
132
LINE_COMMENTS
inline
105
133
DOCU_COMMENTS
documentation
107
134
PREP_COMMENTS
preprocessor
109
135
COMP_COMMENTS
compiler
111
136
DEBUG_COMMENTS
debugging
113
137
EXEC_COMMENTS
execution
115
138
SU_COMMENTS
software understanding
117
151
PRAGMA
pragma
123
[?] [2017-03-21]
- [MK]
- [JS]
- 미흡한 부분 수정 및 보완
- 결과 확인에 따른 다음 개발 논의 필요
[2017.04]
[4/1]
1) Parser 개발
- a2e 코드 분석 및 SH 코드 분석
- 관련 자료 스터디(컴파일러)
[4/2]1) Parser 개발- A 단계를 중점으로 개발 시작- Procedure, Function, Block, If, Case, When, Loop, Select= [17-046-PP-06] ER2017 논문 준비로 진행을 하지 못하고 있는 상황,논문이 마무리 되고 다시 진행 필요한 최소한의 준비를 할 예정.
[4/3]
1) Parser 개발
= 금주 ER2017 논문 마감으로 크게 진전이 없어 보일 것으로 예상 됨. 시간적 여유가 생길 경우 조금씩 이라도 진행하여 ER2017 논문 마무리 후 곧바로 집중할 수 있도록 하겠음.
= 조금씩 진행을 할 예정 이였으나 진행하지 못함, 논문 마무리 되는대로 SH 도움을 받아 진행할 예정
[4/4]
1) Parser 개발
[2017.05]- 개발 정상화, A 단계 중점으로 개발
- SH 코드 Review
- A 단계 : PROC, FUNC, BLOCK, IF, CASE, WHEN, ASSIGN, CALL, VARIABLE
= SH 코드 Review를 통해 코딩의 감을 회복하는 중, 점차 속도가 붙고 있는 것을 느낌,
SH 코드 Review 간 주요 Procedure 테스트 진행, SRL 구조 구성 및 노드 간 연결 테스트 진행.
[5/1]
1) Parser 개발
- Parser 개발 및 테스트- A 단계 : PROC, FUNC, BLOCK, IF, CASE, WHEN, ASSIGN, CALL, VARIABLE (Exp는 제외)[5/2]= SH 코드를 참고하여 개발 진행 중, ADOscript의 경험과 지식이 부족하여 더디게 진행 중이지만 조금씩 속도가 붙고 있다고 생각함. A단계 테스트 단계까지 진행하지 못함, 테스트를 진행할 수 있도록 속도를 높여야함.
1) Parser 개발
- SRL Parser 개발 및 테스트- SH Parser asc 코드와 MK e2a C 코드를 참고로 개발.- A 단계 : PROC, FUNC, BLOCK, IF, CASE, WHEN, ASSIGN, CALL, VARIABLE (Exp는 제외)
= 노드 생성 및 노드 내부 속성 값을 변경하는 프로시저 생성 완료한 상태,예전의 윌프리드가 제공한 코드를 참고하여, MK의 C 코드와 비슷하게 구현함.토큰을 읽고, 파싱하는 부분 진행 중.연휴와 정보과학회 논문 준비로 많은 진전이 없었음. 다음 주 월까지 논문 마무리하고,개발의 속도를 내야함.
[5/3]
1) Parser 개발
- SRL Parser 개발 및 테스트- SH Parser asc 코드와 MK e2a C 코드를 참고로 개발.- A 단계 : PROC, FUNC, BLOCK, IF, CASE, WHEN, ASSIGN, CALL, VARIABLE (Exp는 제외)- 토큰 및 파싱 프로시져 작성 및 테스트[5/4]= 파일을 읽어 들이고 파일의 내용을 파싱하는 부분을 진행하고 있음, 파일을 읽어 들이는 부분과 파일의 내용을 토큰 단위로 변수에 저장하는 내용을 코딩 중이며, 마무리 되면 이제 이것을 노드에 적용해야하는 부분을 작성해야함. 테스트 케이스를 몇 개 추려 진행중.
1) Parser 개발[5/5]- 토큰 및 파싱 프로시져 작성 및 테스트
- 테스트 케이스 정리
- 토큰 및 파싱 결과 트리 생성
= 파서 개발을 많이 진행하지 못함. SRE 또한 아키텍쳐 및 타임 테이블 작성하여 다음주 월요일 까지 게시 해야하며, 일정에 맞춰 개발을 진행해 나갈수 있도록 해야함. 파싱 결과를 시각적으로 표현할 수 있는 방법으로 개발 초점을 맞춰야함.
1) Parser 개발- 타임 테이블 작성 및 게시
- 토큰 및 파싱 프로시져 작성 및 테스트
- 토큰 및 파싱 결과 트리 생성
= 타임테이블 작성 및 게시를 진행함. 하지만 아키텍쳐에 대해 금주 목요일에 이야기가 나왔으며, 아키텍쳐를 구성하고 추가로 게시해야함. 아키텍쳐를 통해 타임 테이블이 나와야 함. 또한 타임 테이블을 체크해본바 파서 부분이 너무 계략적으로 작성 되어 있음. 이 부분을 프로시져 별로 나눠 재구성한 후 체크할 예정에 있음. 일정상 다음 주부터 트리/시각화 관련해서 작업을 진행해야하기 때문에 일정 구성을 세세하게 할 필요가 있음.
[2017.06]
[6/1]
1) Parser 개발
- 아키텍쳐 작성 및 게시
- GetToken
- TokenToStmtType
- TokenToLevelChange
- NewNodeX
- esl_parser 프로시저 일부
- SRL 구조 시각화 Interface 작성(Stmt)