프로그래밍 언어란?
→ 기계가 읽을 수 있고 사람이 읽을 수 있는 형식으로 계산을 표기하는 표현 체계이다.
기계 종속적 : 컴퓨터의 종류만큼 어셈블리어가 있다
→ 고급 언어 등장 : 간략, 이해용이, 이식성 증가
이식성 = 다른 기기여도 같은 언어 사용 가능
특징
컴퓨터 내부 자료 표현을 추상화 한다.
- int x, float y (기억 장치의 장소를 x라는 변수로 추상화)
- x = 5.7 (이진수인 자료의 값을 십진 자료형으로 추상화)
관련된 자료의 집합을 추상화
- 배열, 레코드,struct 등 → 구조 자료형(Structured type) 혹은 구조형이라 부른다
- 형 선언문(type declaration)으로 구조형에 새로운 형 이름을 부여함으로 새 차원의 추상화 가능.
- type student = record
데이터 정의, 인터페이스, 값을 하나로 캡슐화(Encapsulation)
한 자료형의 생성과 사용에 대한 정보를 한 장소에 모아두고 세부 사항에 대한 접근을 제한 → 자료형 구조에 대한 변경이 프로그램 전체에 영향 X
이를 자료 캡슐화 혹은 추상 자료형.
Modula-2 : module, Ada : package, C++/Java: class
몇 개의 기계 명령어를 모아 추상 구문(Abstrat Statement)으로 만든 것
배정문 - x:=x+y
Fortran의 GOTO
- IF (A.GT.B) GOTO 10
검사된 값에 따라 분할된 명령어 그룹 수행.
택일문 - if, case, switch / 반복문 / 부프로그램 호출(Sub-Program Call)
반복 - C/Java -for // Pascal - repeat,while // Ada/Modula-2 - loop_exit
강력한 구조 제어 : 부프로그램 (프로시저 추상화)
- 이름과 실행 동작 결합 되어야 & 실행될 곳에서 호출되어야한다
- function, procedure def
Procedure의 집합을 추상화
프로그래머는 인터페이스, 기능 숙지하고 내부의 구현사항 알 필요 없다
Library 형태가 단위 제어 추상화의 결과
C++/Java - class, Ada - package, Modula-2 - module
병행프로그래밍 (동기회, 통신 개념 지원)
Modula-2 -Coroutine, Java - Multithread
특징
문제
예
특징
예
특징
특징
EX)