deer-develop / study

2 stars 0 forks source link

6장 예전 IoT 팀은 일종의 어셈블러였다 #28

Open Deocksoo opened 4 months ago

Deocksoo commented 4 months ago

6.1 배경

어샘블러는 기본적으로 번역 기능이 있는 텍스트 처리 프로그램이다. 따라서 어셈블러를 작성할 때는 한손에는 어셈블리 문법에 대한 전체 문서, 다른 손에는 그에 대응하는 2진 코드 목록이 있어야 한다.

세그웨이가 준 IoT 프로토콜이 이와 비슷하다. IoT Biz는 이 명령어를 해석하는 해석기이다.

*HBCR,NB,860517046664951,D0,0,081622.00,A,3734.3458,N,12704.7581,E,13,0.67,210421,15.9,M,A#\n
<=>
ModelType: Max plus
CommandType: D0
IotId: 860517046664951
...

헷갈릴 만한 용어 기호(symbol): 선언 기호(predefined symbol), 레이블(label), 변수(variable)
예약어, 전역 변수, scoped 변수를 뜻하는건가? -> 일단은 아님!

의문: 어셈블러도 결국 프로그램이다. 처음에 이 어셈블러 프로그램은 어떻게 프로그래밍 됐을까?

Deocksoo commented 4 months ago

https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf

myeongjae-kim commented 4 months ago

'sturctured programming은 label대신 scope를 적극적으로 활용하는 패러다임' 이라고 이해하면 얼추 맞는다 (정확한 건 아님)

myeongjae-kim commented 4 months ago

의문: 어셈블러도 결국 프로그램이다. 처음에 이 어셈블러 프로그램은 어떻게 프로그래밍 됐을까? -> 기계어로 직접 간단한 어셈블러를 만들고, 그 어셈블러로 더 좋은 어셈블러를 만들고, 더 좋은 어셈블러로 더 더 좋은 어셈블러를 만들고.......