728x90
Tokenizer, Lexer, Parser컴파일러 실행 순서------ 전단부 ------1. 어휘 분석(Lexical Analysis)2. 구문 분석(Synatax Analysis)3. 중간 코드 생성(Intermediate Code Generation) ------ 후단부 ------4. 코드 최적화(Code Optimization)5. 목적 코드 생성(Target Code Generation ) 어휘 분석 / 구문 분석 단계 과정에서소스 코드 > (Tokenizer) > 토큰 > (Lexer) > 노드 > (Parser) > AST 과정을 거친다. Tokenizer / Lexer / Parser란?Tokenizer와 Lexer는 함께 어휘 분석(Lexical Analysis)을 수행하는 역할을 한..
컴파일러컴파일러란?`컴파일러` : 프로그래밍 언어로 작성된 소스 코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 소프트웨어 도구이다.`컴파일` : 고수준 언어 > (컴파일러) > 저수준 언어 따라서, 컴파일하여 실행 가능한 `바이너리 파일`을 생성하여 컴퓨터에서 직접 실행할 수 있고,최적화된 코드를 생성하여 실행 속도를 향상할 수 있다. 컴파일러 구조컴파일러는 입력받은 소스 프로그램을 후단부가 이해할 수 있는 코드로 번역하는 `전단부`,해당 코드를 입력받아 동작시킬 기계에서 적합한 코드로 번역하는 `후단부`로 구분할 수 있다. 전단부는 언어에 의존적이고, 후단부는 기계에 의존적이기 때문에,전단부는 후단부가 이해할 수 있는 별도의 코드인 `중간 코드`를 생성한다. 컴파일러는 이러한 단계로 실행된다.---..
TCP 연결 해제TCP 연결 해제(4 way handshake) 1.FIN: 클라이언트 연결 해제 요청 먼저 클라이언트가 연결을 닫으려고 할 때 FIN으로 설정된 세그먼트를 서버에 보낸다. 그리고 클라이언트는 FIN_WAIT_1의 상태로 들어가 서버의 응답을 기다린다. 2.ACK: 클라이언트 연결 해제 요청 확인 서버는 클라이언트에게 ACK를 보내 해제 요청 승인 세그먼트를 보낸다. 그리고 CLOSE_WAIT 상태에 들어간다. 클라이언트가 서버의 ACK 세그먼트를 받으면 FIN_WAIT_2 상태에 들어간다. 3.FIN: 서버 연결 해제 요청 서버는 2에서 ACK 세그먼트를 보내고 일정 시간 이후에 클라이언트에 FIN이라는 세그먼트를 보낸다. 서버로부터 FIN 세그먼트를 받은 클라이언트는 TIME_W..
CPU의 구조 / 원리CPU⸰ 중앙처리장치(Centrol Processing Unit)⸰ 명령어 해석, 자료의 연산 / 비교 등 처리를 제어하는 핵심장치⸰ 다양한 입력 장치로 정보를 받아 처리한 후, 결과를 출력 장치로 보내는 모든 과정을 제어, 조정 CPU의 구성 요소⸰ Control Unit(제어 장치), ALU(연산 장치), Register(레지스터)⸰ 각 요소들은 Data Bus를 통해 데이터를 주고받음 Control Unit(CU, 제어장치) ⸰ CPU 제어하는 장치 ⸰ PC(프로그램 카운터), 명령 해독기, 부호기, 명령 레지스터 등 구성 1. ROM(기억 장치)으로부터 프로그램 명령어를 순차적으로 꺼내 해석 2. 어떤 작업을 수행해야 하는지 결정 3. 실행에 필요한 제어 신호를 전..
[CS50] 「3」 스크래치(엔트리), C언어 자료형「1」 컴퓨터와 컴퓨팅「2」 알고리즘 기초> 「3」 프로그래밍 기초 > 1. 스크래치(엔트리)> 2. C언어 자료형1. 스크래치(엔트리)○ 블록들을 조립하여 만드는 프로그래밍 언어○ 각 블록은 문장으로 나타내며, 스프라이트(오브젝트)가 하는 동작임○ 문장 : 컴퓨터가 따라야 하는 명령어○ 스프라이트(오브젝트) : 스크래치(엔트리) 화면에서 볼 수 있는 캐릭터 같은 객체○ 조건 블록과 반복 블록도 존재 2. C언어 자료형 CS50 강의
[CS50] 「2」 의사 코드, 정렬, 탐색, 시간 복잡도「1」 컴퓨터와 컴퓨팅> 「2」 알고리즘 기초「3」 프로그래밍 기초 > 1. 알고리즘> 2. 의사 코드> 3. 선형 탐색> 4. 버블 정렬> 5. 선택 정렬> 6. 삽입 정렬> 7. 시간 복잡도> 8. 합병 정렬> 9. 이진 탐색1. 알고리즘○ 입력을 출력으로 바꾸기 위해 수행되는 명령의 절차○ 정확성과 효율성 중요○ 자연어, 의사 코드, 순서도 등으로 표현2. 의사 코드○ 프로그래밍 언어보다 문법적 제약을 적게 받으므로 알고리즘 표현에 많이 사용 의사 코드 요소○ 반복문, 조건문 포함○ 정의된 문법 없음3. 선형 탐색○ 원하는 원소가 발견될 때까지 차례대로 탐색○ 정확성 높고, 효율성 낮음○ 자료가 정렬되지 않거나, 하나씩 찾아야 하는 경우 사용..
[CS50]「1」 컴퓨터, 진수, 가상 현실/증강 현실, 인공지능> 「1」 컴퓨터와 컴퓨팅「2」 알고리즘 기초「3」 프로그래밍 기초 > 1. 하드웨어> 2. 기억장치> 3. 비트와 바이트> 4. 2진수> 5. ASCII 코드> 6. 16진수> 7. 이미지> 8. 가상현실과 증강현실> 9. 인공지능1. 하드웨어○ 컴퓨터를 물리적으로 구성하는 요소, 컴퓨터의 추가적인 기능을 수행 중앙처리장치(CPU)○ 입력장치에서 받은 명령을 실제로 처리 기억장치 ○ 입력된 명령이나 데이터가 저장되는 공간 ○ 주기억장치 - RAM : 일시적으로 기억된 정보를 읽거나 다른 정보를 기억시키는 메모리, 임의 접근 기억 장치○ 보조기억장치 - 하드드라이브 : 영구적으로 데이터 저장 - 하드디스크 : 원판 모양의..