프로그램 언어 특성
- 프로그래밍 언어의 유형 분류
- 개발 편의성 측면에 따른 분류
- 저급언어
- 컴퓨터가 직접 이해할 수 있는 언어
- 빠름
- 고급언어
- 인간이 이해할 수 있는 소스코드
- 느림
- 저급언어
- 실행 및 구현 방식에 따른 분류
- 명령형 언어(Imperative Language)
- 컴퓨터가 동작해야 할 절차를 통해 프로그래밍의 상태를 변경시키는 구문에 중점을 둔 방식
- 종류
- Fortran
- C
- 함수형 언어(Functional Language)
- 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임 중 하나
- 종류
- LISP
- Scala
- 논리형 언어(Logic Language)
- 논리 문장을 이용해 프로그램을 표현하고 조건이 만족되면 연관된 규칙이 실행되는 방식
- 종류
- Prolog
- 객체지향 언어(Object-Oriented Language)
- 객체 간의 메시지 통신을 이용하여 동작하는 방식
- 종류
- JAVA
- C++
- 명령형 언어(Imperative Language)
- 빌드 방식에 따른 분류
- 컴파일 언어(Compile Language)
- 소스코드를 목적 코드로 변환하여 실행
- 소스코드를 컴퓨터가 이해할 수 있는 언어로 번역을 하는 방식
- 종류
- C
- C++
- 인터프리터 언어(Interpreter Language)
- 소스코드를 한 줄씩 실행하는 방식
- 소스코드를 컴퓨터가 이해할 수 있는 언어로 통역을 하는 방식
- 종류
- BASIC
- Python
- 바이트 코드 언어(Byte Code Language)
- 컴파일을 통해 가상머신이 번역할 수 있는 Byte Code로 변환되고, 가상머신이 기계어로 번역하는 방식
- 종류
- JAVA
- Scala
- 컴파일 언어(Compile Language)
- 개발 편의성 측면에 따른 분류
- 절차적 프로그래밍 언어(하향식)
- 개념
- 일련의 처리 절차를 정해진 문법에 따라 순서대로 기술하는 언어
- Procedure(루틴, 서브루팅, 메서드, 함수)를 이용해 작성하는 프로그래밍 스타일
- 순차적인 처리를 중요시 하여, 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법
- C언어가 대표적
- 장점
- 함수를 통해 코드의 재활용성이 높아지며, 실행 속도가 빠르다
- 단점
- 프로그램 분석이 어려우며, 유지보수 및 코드의 수정이 어렵다.
- 종류
- C언어
- 1972년 데니스 리치에 의해 개발됨
- 운영체제를 작성하기 위한 시스템 프로그래밍 언어로 개발
- 이식성이 뛰어남
- 예시로 리눅스는 C언어로 만들어서 이식이 좋지만, 유닉스는 90%는 C언어, 10%는 어셈블리 언어로 만들었기에 이식이 좋지 못하다.
- COBOL
- 금융 및 인적 자원과 같은 비즈니스 컴퓨터 프로그램을 위해 설계됨
- FORTRAN
- 과학 계산용으로 주로 사용되는 언어
- BASIC
- 교육용으로 개발되어 언어의 문법이 쉽다.
- C언어
- 개념
- 객체지향 프로그래밍 언어(상향식)
- 개념
- 만들고자 하는 소프트웨어의 구조를 객체로 만들고, 객체들끼리 상호작용 하도록 만드는 프로그램이 언어
- 객체들을 적절히 조립하고, 연결하여 소프트웨어가 동작하도록 만드는 것.
- 특징
- 캡슐화(Encapsulation)
- 데이터와연산을 하나로 묶어 캡슐처럼 만드는 것
- 정보은닉
- 캡슐화된 객체들은 재사용이 용이하다.
- 상속(Inheritance)
- 상위 클래스의 데이터와 연산을 하위 클래스가 물려받는 것.
- private한 요소 외의 모든 내용을 하위 클래스가 사용할 수 있다.
- extends라는 키워드를 사용한다.
- 다형성(Polymorphism)
- 메시지를 통해 연산을 수행할 때, 같은 이름을 가진 여러 메서드 중 특정 메서드가 호출되는 것.
- 종류
- 오버로딩
- ex) a(), a(x), a(x,y)
- 오버라이딩
- 오버로딩
- 추상화(Abstraction)
- 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화하는 것
- 공통의 성질을 모아둔 것
- 정보은닉(Information Hiding)
- 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근을 허용하는 것.
- 캡슐화(Encapsulation)
- 장/단점
- 장점
- 재사용성
- 생산성 향상
- 자연적인 모델링
- 유지보수의 우수성
- 단점
- 개발 속도가 느려진다.
- 실행 속도가 대체적으로 느리다.
- 코딩 난이도 상승
- 장점
- 종류
- JAVA
- 객체지향 언어의 대표적인 언어
- 시뮬라67
- 최초의 객체지향언어
- 스몰토크
- 최초로 GUI를 제공하는 언어
- 오브젝티브-C
- 애플의 운영체제인 IOS에서 사용되는 언어, 맥용
- C++
- 객체지향성이 더해진 C언어의 확장형
- 파이썬
- 플랫폼 독립적이며 인터프리터식, 객체지향적, 동적 타이핑 대화형 언어
- 플랫폼 독립적
- 리눅스, 유닉스 등 어디에서든 잘 돌아간다.
- 동적 타이핑
- 동적으로 자료 타입을 할당
- JAVA
- 개념
- 스크립트 언어
- 개념
- 응용 소프트웨어를 제어하는 컴퓨터 프로그래밍 언어
- 다른 응용 프로그램에 삽입되어서 동작하는 프로그래밍 언어
- 최종 사용자가 응용 프로그램의 동작을 사용자의 요구에 맞게 수행할 수 있도록 한다.
- 종류
- 자바 스크립트(Java Script)
- HTML 문서 내에 삽입되어 사용되며, 동적인 인터렉티브한 페이지를 만들 수 있게 한다.
- JSP(Java Sever Pages)
- HTML 페이지 안에 자바 코드를 직접 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹브라우저가 표현할 수 있도록 전달해 주는 스크립트 프로그래밍 언어
- PHP
- HTML 문서 안에 포함하여 작동하는 서버 측 스크립트 프로그래밍 언어
- 리눅스 운영체제에 아파치 웹 서버를 설치하고 MYSQL DB 환경에서 PHP 프로그래밍 언어가 주로 사용된다.
- ASP
- MS사의 웹 프로그래밍 언어
- Perl
- 유닉스 계열 운영체제의 스크립트 프로그래밍 언어
- Python
- 귀도 반 로썸이 개발한 객체 지향 스크립트 프로그래밍 언어
- 별도의 컴파일 과정이 필요 없다.
- 자바 스크립트(Java Script)
- 개념
- 선언형 언어
- 개념
- 프로그램이 수행해야 하는 문제를 기술하는 언어
- 목표를 명시하고 알고리즘은 명시하지 않는다.
- 가독성이나 재사용성이 좋고, 오류가 적다.
- 종류
- 하스켈(Haskell)
- 함수형 프로그래밍 언어
- HTML
- 웹 콘텐츠의 의미와 구조를 정의할 때 사용
- SQL
- 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어
- 하스켈(Haskell)
- 개념
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 소프트웨어 구축 (2) (0) | 2023.07.04 |
---|---|
[정보처리기사] 소프트웨어 구축 (1) (0) | 2023.07.04 |
[정보처리기사] 알고리즘 표현 방법 및 변수 표기법 (0) | 2023.07.03 |
[정보처리기사] 프로그래밍 언어 (0) | 2023.07.03 |
[정보처리기사] 네트워크_데이터 베이스_신기술 용어 (0) | 2023.07.02 |