0 + Study/0 + 정보처리기사(실기)

[정보처리기사 실기] 프로그래밍 언어#2

힘들면힘을내는쿼카 2020. 10. 4. 17:49
728x90
반응형



프로그래밍 언어 활용



1. 기본 문법 활용

2. 언어 특성 활용


2. 언어 특성 활용


1) 프로그래밍 언어별 특성

-> 컴퓨터 시스템의 역사와 함께하고 있으며 시대적인 패러다임에 따라 유사한 특성이 있다.



A. 프로그래밍 언어의 유형 분류

  • 개발편의성에 따른 분류
  • 실행하는 방식에 따른 분류
  • 구현 기법에 따른 분류


  • 개발 편의성에 따른 분류

종류 

설명 

저급 언어 

기계가 이해할 수 있도록 만들어진 언어

ex) 기계어, 어셈블리어 

고급 언어

개발자가 소스코드를 작성하기 쉽게, 이해하기 쉽게 설계된 언어 

ex) C, C++, java, python...




  • 실행하는 방식에 따른 분류

종류 

설명 

명령형 언어
(절차형 언어) 

컴퓨터에 저장된 명령어들이 순차적으로 실행되는 방식

ex) FORTRAN, COBOL, PASCAL, C

객체지향 언어

객체 간의 메시지 통신을 이용하여 프로그래밍하는 방식 

ex) java, C++

함수형 언어 

수학적 수식과 같은 함수들로 프로그래밍을 구성하여 호출하는 방식

ex) LISP

논리형 언어 

논리 문장을 이용하여 프로그램을 표현하고 계산을 수행하는 방법에 기반한 프로그래밍 방식

ex) PROLOG




  • 구현 기법에 따른 분류

종류 

설명 

컴파일 방식의 언어 

고급 언어를 기계어로 번역하는 방식

컴파일러에 의해 필요한 정보가 미리계산되어 실행속도가 매우 빠르다.

ex) FORTRAN, PASCAL, C, C++ 

인터프리터 방식의 언어

고급 언어 명령문을 하나씩 번역하고 실행하는 방식

프로그램 실행과 동시에 동작

ex) BASIC, PROLOG, LISP, Perl 

혼합형 방식의 언어 

고급 언어를 컴파일 하여 중간 언어로 변환한 후, 인터프리터 언어에 의해 번역을 실행하는 방식

ex) java







B. 프로그래밍 언어별 특성
  • 절차적 프로그래밍 언어
  • 객채지향 프로그래밍 언어
  • 스크립트 언어
  • 선언형 언어


  • 절차적 프로그래밍 언어 종류

종류 

설명 

알골(ALGOL) 

알고리즘의 연구개발에 이용하기 위한 목적으로 개발

절차형 언어로는 최초로 재귀 호출 가능

C 언어

유닉스 운영체제에서 사용하기 위해 개발

모든 컴퓨터 시스템에서 사용할 수 있도록 설계된 프로그래밍 언어 

베이식(BASIC) 

교육용으로 개발(문법이 쉬움)

다양한 종류의 베이식이 존재

서로 다른 종류 사이의 소스코드는 호환되지 않음 

포트란(FORTRAN) 

과학계산에서 필수적인 벡터, 행렬 계산 기능 등이 내장된 과학 기술 전문 언어

다양한 수학 함수들 사용 가능 




  • 객체지향 프로그래밍 언어 종류

종류 

설명 

C++ 

C문법에 객체지향 프로그래밍 개념이 추가

개발자가 직접 메모리 관리를 할수 있어 성능 하락이 없는 형태로 개발 가능하지만 그만큼 개발이 어려움 

C# 

MS에서 개발한 언어

java와 달리 불안전 코드(Unsafe Code)와 같은 기술을 통하여 플랫폼 간 상호 운용성 확보 

자바(java) 

썬 마이크로 시스템즈(Oracle과 합병)가 개발한 언어

현재 웹 애플리케이션 개발에 가장 많이 사용

자바(java) 컴파일러는 자바(java) 언어로 작성된 프로그램을 바이트 코드라는 특수한 바이너리 형태로 변환

델파이(Delphi) 

파스칼(PASCAL)문법에 여러 기능이 추가되어 존재

윈도우즈(Windows)에서 모든 부분을 프로그래밍 할 수 있는 언어

높은 생산성과 간결한 코드가 대표적인 장점

C++과 비슷한 수준의 저수준 시스템 프로그래밍도 가능 




  • 스크립트 언어 종류

종류 

설명 

PHP 

동적 웹 페이지를 만들기 위해 설계

PHP로 작성된 코드를 HTML에 입력 시 웹 서버에서 해당 코드를 인식하여 작성자가 원하는 웹 페이지를 생성

인터페이스 방식의 자체 인터프리터를 제공 

펄(Perl) 

인터프리터 방식의 언어

실용성을 기반으로 개발됨

C, sh(쉘 스트립트) 등 다른 프로그래밍 언어에서 뛰어난 기능을 도입

불특정한 데이터 길이의 제약 없이 강력한 문자열 처리 기능 제공 

파이썬(python) 

다양한 플랫폼에서 사용 가능하고 라이브러리가 많다.

유니코드 문자열을 지원하여 다양한 언어 처리 가능

들여쓰기를 통해 블록을 구분하는 문법

주로 다른 언어로 쓰인 모듈들을 연결하는 언어로써 사용 

자바스크립트(java script) 

객체 기반의 스크립트 프로그래밍 언어

웹 브라우저에서 주로 사용

다른 응용 프로그램 내장 객체에도 접근 가능

브라우저마다 지원되는 버전이 상이 하다.




  • 선언형 언어 종류

구분

종류 

설명 

함수형 언어 

하스켈(Haskell) 

패턴 맞춤, 커링, 조건제시법, 가드, 연산자 정의 등의 기능이 존재

재귀함수나 대수적 자료형도 지원 

리스프(LISP) 

수학 표기법을 나타내기 위한 목적

트리 자료구조, 가비지 컬렉션, 동적 자료형과 인터프리터와 같은 개념 제시


함수 호출 시

-> 함수 이름 혹은 연산자가 첫 번째로 위치하고 이어서 피연산자가 위치한다.

ex) f(+ a b) 

논리형 언어

프롤로그(PROLOG) 

논리식을 기반으로 객체 간의 관계에 돤한 문제를 해결하기 위해 사용

인공지능, 계산 언어학, 자연언어 처리 분야에서 사용 

특수 분야 언어 

SQL 

관계형 데이터베이스 관리시스템(RDBMS)의 데이터 관리를 위해 설계된 언어

SQL을 표준으로 채택 



C. 객체지향 프로그래밍

-> 객체와 객체 간의 통신을 통해 프로그램이 구현


  • 절차지향과 객체지향 대응 관계

절차지향

객체지향 

모듈

객체 

변수

속성 

함수

메서드 



  • 객체지향 프로그래밍의 구성 요소
    • 객체
    • 클래스
    • 메시지

구성요소 

설명

객체 

개체, 속성, 메서드로 구성된 클래스의 인스턴스 

클래스 

객체를 표현하는 추상 데이터 타입(객체를 생성하는 틀)

클래스를 통해 추상화된 자료형을 제공 

메시지 

객체 간의 통신 



  • 객체의 구성 요소
    • 개체
    • 속성
    • 메서드

구성요소

설명 

개체 

현실 세계에서 보이는 본질 

속성 

자료 저장소 역할 

메서드 

호출 단위를 의미 




2) 라이브러리 활용


A. 라이브러리


  • 라이브러리?

-> 필요한 프로그램을 모아 놓은 집합체

-> 필요할 때 찾아서 쓸 수 있도록 모듈화되어 제공되는 프로그램



  • 라이브러리 구성
    • 도움말
    • 설치파일
    • 샘플 코드


  • 라이브러리 종류
    • 표준 라이브러리
    • 외부 라이브러리


표준 라이브러리 : 프로그래밍 언어가 기본적으로 가지고 있는 라이브러리

외부 라이브러리 : 표준 라이브러리와 달리 별도의 파일을 설치



  • 라이브러리 기능
-> 자주 사용되는 라이브러리에 대해서는 사전에 확인이 필요하다.

유형 

설명 

문자열 연산 기능 

일반적인 문자열 조작 

문자열 탐색/치환 기능 

문자열의 패턴을 정의하여 탐색, 치환 등의 작업에 사용 

수치 계산 기능 

기본적인 수치 계산에 사용 

난수 생성 기능 

난수를 다루는 작업에 사용 

파일 경로 조작 기능 

파일 경로 관련 기능을 제공 

디렉터리 생성 기능 

디렉터리를 생성하는 기능을 제공 

날짜 조작 기능 

날짜와 시간의 일자와 관련된 작업에 사용 

로그 출력 기능 

로그 출력 기능을 제공 



B. 모듈과 패키지

  • 모듈과 패키지
-> 라이브러리는 모듈과 패키지를 총칭함. 
(라이브러리 = 모듈 + 패키지)

구성 

설명 

모듈 

전역변수, 함수 등을 모아둔 파일 

패키지 

모듈을 디렉터리 형식으로 구조화한 라이브러리 








728x90
반응형