-
프로그래밍 일반IV. 사무자동화/프로그래밍 일반 2023. 4. 29. 11:27
- 저급 언어 > 실행속도 ↑ / 호환 x
(종류) 기계어, 어셈블리어
- 고급 언어 > 번역 필요 / 호환 o
(종류) FORTRAN 최초의 고급언어 / COBOL 사무용 자료처리 / LISP 리스트 처리, 인공지능형 문제 처리 /
SNOBOL 문자열 / BASIC 교육용, 초보자 / PRPLOG 논리기반, 더이터베이스 / PASCAL 프로그래밍 교육 /
C 시스템 프로그래밍 언어 / ADA 군사용 / JAVA 객체 지향
*
- 객체 > 데이터+함수
- 메소드 > 객체지향 기법에서 객체가 메시지를 받아 실행해야 할 구체적 연산 정리
- 클래스 > 공통된 특성으로 묶어서 표현한것
- 생성함수 > 초기화 처리를 행하는 함수
- 소멸함수 > 종료처리 행하는 함수
- 다형성 > 메서드 명칭은 동일/ 매개 변수와 데이터 터미널 및 기능을 다르게 정의
- 핵심어 > DO, FOR, IF 등
- 예약어 > 시스템이 알고있는 특수한 기능을 수행하도록 이미 용도가 정해져 있는 것
*
- 원시 프로그램 → 번역 → 목적프로그램(기계어 형태) → 링커(모듈을 묶음) → 로드모듈 (실행 가능한 상태) →
로더 → 실행 / 원시 프로그램 → 컴파일러 → 목적 프로그램 → 링커 → 로더
- 디버깅 > 프로그램 개발 과정에서 논리적 오류를 발견하고 수정하는 작업
- 로더 ( 할당 > 공간 확보 / 연결 > 연결 / 재배치 > 주소 재배치 / 적재 > 실행 프로그램을 공간에 넣는 과정)
- 컴파일러 > 번역 프로그램 ↔ 인터프리터 (BASIC 언어/ 해석 언어) 차이점 : 목적 프로그램 생성 여부
- 프리프로세서 > 주석 제거
- 크로스 컴파일러 > 호환되게
- 바인딩 > 매모리 주소를 실제 값 연결/ 바인딩 시간 > 언어의 특징에 영향
- 정적 > 프로그램 실행 이전 ( 호출시간/ 모듈 가동 시간/ 실행시간 中 객체 사용 시점)
- 동적 > 실행시간에 이루어짐 (번역시간/ 링크 시간/ 언어 정의 및 구현 시간)
* 번역시간 > 자료 구조의 형 + 크기, 변수의 형
- 언어의 정의 > 언어의 구조 정의/ 구조 > 프로그램의 자료 구조
- 언어 구현 > 자릿수
- 어휘 분석 > 번역의 기본 단계/ 분석 → 그룹화
*
- Shift Reduce Parser 단위 > 토근
- 일반 : 명칭 (식별자), 상수
- 두수 : 지정어 (예약어), 연산자, 구분자
- 파스트리 > 확인하는것 (트리형태 표현)
상향식 파싱 ↑ 루트 ↓ 하향식 파싱 옳고 그름 ( O / X )
우측 유도터미널 노드 맞을때까지 ↔
좌측 유도- BNF 기호
- 형식 문법의 계층 구조
Type 0 (튜링 기계 인식)
→ Type 1
→ Type 2 (파스트리)
→ Type 3 (정규 문법 / 토큰 구조 > 우선형, 좌선형)
- 정규 언어 > 스트링 길이 제한 x ↔ 유한 오토마타 > 입출력에 내부시스템을 가진 시스템의 수학적 모델
*
- 배열 > 동질적/ 순화 구조 (배열, 레코드의 공통점 : 모아서 처리함)
- 레코드 > 서로 다른 성격 (이질형)
- 포인더 > 객체 가리킬때/ 커다란 배열에 원소를 효율적으로 저장하고자할때 사용
*
스택 > 서브루틴 호출 작업시 복귀 주소 저장 및 조회\
큐 > 요소 선택과 삭제/ 삽입 (분리 및 제한)*
*
- 부동소수점 > 연산 절차 복잡/ 시간 많이 걸림
- 묵시적 순서 제어 > 정해진 틀 ↔ 명시적 순서 제어 (조건 추가)
*
- 단항 연산자
- 이항 연산자 > AND, OR, XOR, XNOR
*
- 순차
- 선택 > IF, GOTO
- 반복 > While, For, Do
*
- 부프로그램 호출 > 참조, 값, 이름
- 코루틴 > 호출
*
- SIDE EFFECT 부작용
- 커널 > UNIX 핵심
- Job Control 작업 제어 > 자원 할당 기능
- PCB (프로세서 제어 블록) > 상태, 식별자, 우선 순위 / 비동기적 (동기화X)
- 실행시간 짧은 프로세스 주는 기법 > S (short)
- HRN > (대기시간+서비스 받을 시간)/ 서비스 받은 시간
- 교착 상태 → 선정 X → 무한정 대기
- LRU (Least Recently Used) > 계수기가 스택두어 가장 오래 사용 X, 페이리 교체
* 배치 전략
- 최초 > 첫번째 분할 영역 배치 First
- 최적 > 양 가장 적게 남김 Best
- 최악 > 입력된 작업 큰 공백 Worst
*
- 워킹셋 > 일정 시간 동안 자주 창조되는 페이지들의 집합
- 스래싱 (Thrasing) > 너무 자주 페이지 교체, 시스템의 심각한 성능 저하
- 인터렙트 > 끼어들기/ 내부 > 트랩
- SVC 인터럽트 > 프로그래머에 의해 발생, 입출력의 수행, 기억장치의 할당 및 오퍼레이터와 대화시 발생
* C언어의 형식
; > 끝날때
/* ~ */ > 주석문
& > 번지 연산자, 주소
* > 포인터 변수 선언, 간접 연산자, 참조
변수명 [ 개수 지정 ] > 배열
기본적으로 auto로 간주
&buf [0] > buf 첫 배열, 주소 대입