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 개발

- 개발 정상화, A 단계 중점으로 개발

- SH 코드 Review

- A 단계 : PROC, FUNC, BLOCK, IF, CASE, WHEN, ASSIGN, CALL, VARIABLE

= SH 코드 Review를 통해 코딩의 감을 회복하는 중, 점차 속도가 붙고 있는 것을 느낌

   SH 코드 Review 간 주요 Procedure 테스트 진행, SRL 구조 구성 및 노드 간 연결 테스트 진행.


[2017.05] 
[5/1]
1) Parser 개발
- Parser 개발 및 테스트
- A 단계 : PROC, FUNC, BLOCK, IF, CASE, WHEN, ASSIGN, CALL, VARIABLE (Exp는 제외)

= SH 코드를 참고하여 개발 진행 중, ADOscript의 경험과 지식이 부족하여 더디게 진행 중이지만 조금씩 속도가 붙고 있다고 생각함. A단계 테스트 단계까지 진행하지 못함, 테스트를 진행할 수 있도록 속도를 높여야함


[5/2]
1) Parser 개발
- SRL Parser 개발 및 테스트
- SH Parser asc 코드와 MK e2a C 코드를 참고로 개발.
- A 단계 : PROC, FUNC, BLOCK, IF, CASE, WHEN, ASSIGN, CALL, VARIABLE (Exp는 제외)
= 노드 생성 및 노드 내부 속성 값을 변경하는 프로시저 생성 완료한 상태,
예전의 윌프리드가 제공한 코드를 참고하여, MKC 코드와 비슷하게 구현함.
토큰을 읽고, 파싱하는 부분 진행 중.
연휴와 정보과학회 논문 준비로 많은 진전이 없었음. 다음 주 월까지 논문 마무리하고,
개발의 속도를 내야함.
 
[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 개발

- 토큰 및 파싱 프로시져 작성 및 테스트

- 테스트 케이스 정리

- 토큰 및 파싱 결과 트리 생성

= 파서 개발을 많이 진행하지 못함. SRE 또한 아키텍쳐 및 타임 테이블 작성하여 다음주 월요일 까지 게시 해야하며, 일정에 맞춰 개발을 진행해 나갈수 있도록 해야함. 파싱 결과를 시각적으로 표현할 수 있는 방법으로 개발 초점을 맞춰야함.

 

[5/5]
1) Parser 개발

- 타임 테이블 작성 및 게시

- 토큰 및 파싱 프로시져 작성 및 테스트

- 토큰 및 파싱 결과 트리 생성

= 타임테이블 작성 및 게시를 진행함. 하지만 아키텍쳐에 대해 금주 목요일에 이야기가 나왔으며, 아키텍쳐를 구성하고 추가로 게시해야함. 아키텍쳐를 통해 타임 테이블이 나와야 함. 또한 타임 테이블을 체크해본바 파서 부분이 너무 계략적으로 작성 되어 있음. 이 부분을 프로시져 별로 나눠 재구성한 후 체크할 예정에 있음. 일정상 다음 주부터 트리/시각화 관련해서 작업을 진행해야하기 때문에 일정 구성을 세세하게 할 필요가 있음.


[2017.06]

[6/1]

1) Parser 개발

- 아키텍쳐 작성 및 게시

- GetToken

- TokenToStmtType

- TokenToLevelChange

- NewNodeX

- esl_parser 프로시저 일부

- SRL 구조 시각화 Interface 작성(Stmt)