정보처리기능사 실기 Part 1 - Chapter 2. 프로그래밍 언어 특성

HongInSung·2022년 7월 18일
1
post-thumbnail

이 글은 이기적 정보처리기능사 실기 기본서를 기반으로 제작되었습니다.

소개

프로그래밍 언어에 특성에 대해 알아봅시다.
이 챕터에서는 문제가 거의 출제되지 않기 때문에 가볍게 훑어보고 가봅시다.

1. 프로그래밍 언어의 발전 과정

2. 프로그래밍 언어별 특성

  • FORTRAN
    1954년에 초기 버전이 개발된 언어이다.
    시스템 의존적이고, 프로그램 작성을 하기 위해선 컴퓨터 시스템 관련 지식이 많이 필요하다.

    PRINT *, "Hello", "World"
  • COBOL
    1960년에 미국 국방성에 의해 개발되었다.
    단순한 입출력 구현 시에도 많은 형식적인 문장이 필요하며, 비교적 프로그램 크기가 크고 구문이 복잡하다.
    순차적 방식의 언어로, 웹 응용 프로그램과 쉽게 통합할 수 있다.
    자료 구조와 선언 부분과 프로그램의 실행 부분을 분리하였다.
    FORTRAN과 마찬가지로 대문자로만 작성된다.

    // 프로그램 부분
    IDENTIFICATION DIVISION.
    PROGRAM-ID. HELLOWRD.
    
    PROCEDURE DIVISION.
    DISPLAY "HELLO WORLD".
    STOP RUN.
    
    // 원래 이 뒤에 컴파일, 실행 부분도 있지만 길어서 패스 :)
  • PASCAL
    1971년 개발되어 1980년대 말까지 많이 쓰인 언어이다.
    잘 짜인 구조간결성으로 인해 프로그래밍 언어로서 성공하였으나, 분리 컴파일과 문자열의 적절한 처리 등을 제공하지는 못했다.
    사용자 정의 추상화 기능은 제공하나 정보 은닉 기능이 없어 현대의 프로그래밍 기법을 적용하기에는 다소 부족하다는 단점이 있다.

      // pascal helloworld
      program Hello;
      begin
        writeln ('Hello, world.');
      end.
  • C
    1972년에 개발된 언어로, UNIX 운영체제 구현에 사용되는 언어이다.
    범용 언어로 개발되었으나 문법의 간결성, 효율적 실행, 효과적인 포인터 타입 제공이라는 특징으로 인해 가장 많이 사용되는 시스템 프로그래밍 언어가 되었다.

    #include <stdio.h>
    
    int main(){
    	printf("Hello World")
    }
  • C++
    C언어를 발전시킨 언어로 클래스, 상속 등을 제공하는 객체 지향 프로그래밍 언어이다.
    대형 프로젝트 수행 시 모듈별 분리가 가능하여 개발과 유지 관리에 적합하다.

    #include <iostream>
    
    int main(int argc, char* argv[]) {
        std::cout << "Hello World" << std::endl;
    
        return 0;
    }
  • JAVA
    C++에 비해 단순하고 분산 환경 및 보안성을 지원한다.
    JAVA언어는 컴파일을 거쳐야 하며, 컴파일을 통해 생성된 class 파일을 가상 머신을 통해 실행하여야 한다. ( JVM )

    class HelloWorld{
    	public static void main(String[] args){
    		System.out.println("Hello World")
      }
    }
  • JAVASCRIPT ( JS )
    1995년에 개발된 객체 지향 스크립트 언어로, 웹 페이지 동작을 구현할 수 있다.
    빠른 시간에 코드를 완성할 수 있고 확장성이 좋으며 배우기 쉽다는 장점이 있으나, 보안이나 성능이 다른 언어에 비해 부족하다는 단점이 있다.
    JAVA와 다른 언어이다. JAVA와 관련이 없다.

    console.log("Hello World!")
  • PERL
    텍스트 처리에 주안점을 두고 개발된 인터프리터 언어로 CGI용으로도 많이 사용된다.
    변수를 명시적으로 선언할 필요가 없다.

    print("Hello World\n");
  • PYTHON
    배우기 쉽고 이식성이 좋은 언어로 다양한 함수들이 많이 제공되어 스타트업과 글로벌 기업에서도 많이 사용한다.
    PERL 언어처럼 인터프리터 언어이면서 객체 지향 언어, 스크립트 언어이다.

    print("Hello World")
  • C#
    2000년에 .NET 환경에 맞춰 설계된 언어다.
    C와 C++의 발전된 형태로 VB(Visual Basic) 과 같이 사용자 인터페이스를 쉽게 만드는 컴포넌트 기능을 제공하기도 한다.
    .NET 환경에서 실행되기 때문에 .NET 환경이 설치되어야 하고, C# 컴파일러를 필요로 한다.

    Console.WriteLine("Hello World!")
  • GOLANG
    2009년 Google에서 만든 언어로 짧게 GO라고도 부른다.
    C언어와 직접적인 연관을 가지며, 내장 라이브러리가 많이 지원된다.
    대체로 C언어의 문법과 유사하나 if, for, switch를 포함한 제어 구조를 가지며, 하드웨어 사양이 낮더라도 빠른 컴파일이 가능하다

    // golang helloworld
    import "fmt"
    func main() {
    	fmt.Println("hello world")
    }
  • DART
    JS와 JAVA의 영향을 받아 개발되었으며, 객체 지향적인 언어이다.
    백그라운드에서 작동한다는 점에서 JS와 차이를 가지고 있으며, JS와 유사하나 단순화하였다.
    별도의 라이브러리 설치 없이 HTML 페이지를 수정할 수 있다.

    // dart helloworld
    void main(){
    	print("Hello World")
    }
  • CEYLON
    JAVA에 기반을 둔 언어로 모듈성을 주요 특징으로 가진다.
    코드를 패키지와 모듈로 정리하여 가상 머신에서 컴파일을 수행하며, CEYLON Herd라는 저장소에서 모듈을 발행한다.

    // ceylon helloworld
    void run() {
    	print("Hello, World!");
    }

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

  • 개발 편의성에 따른 분류
    • 저급 언어
      기계가 이해할 수 있도록 만들어진 언어이다. 추상화 수준이 낮고, 프로그램 작성이 어렵다.
      기계어, 어셈블리어가 저급 언어에 속한다.
    • 고급 언어
      개발자가 소스코드를 작성할 때 쉽게 이해할 수 있도록 작성된 언어이다.
      C, C++, JAVA등이 고급 언어에 속한다.

  • 실행 방식에 따른 분류
    • 명령형 언어
      컴퓨터에 저장된 명령어들이 순차적으로 실행되는 프로그래밍 방식이다.
      절차형 언어라고도 한다.
      FORTRAN, COBOL, PASCAL, C 등이 명령형 언어에 속한다.
    • 함수형 언어
      수학적 수식과 같은 함수들로 프로그램을 구성하여 호출하는 방식이다.
      LISP 등이 함수형 언어에 속한다.
    • 논리형 언어
      규칙에 대한 활성화 조건이 만족되면 연관된 규칙이 실행되는 구조이다
      추론관계 규칙에 의해 원하는 결과를 얻어내는 방식이다.
      PROLOG 등이 논리형 언어에 속한다.
    • 객체 지향 언어
      객체 간의 메시지 통신을 이용하여 프로그래밍 하는 방식이다.
      JAVA, C++ 등이 객체 지향 언어에 속한다.

  • 구현 기법에 따른 분류
    • 컴파일 방식의 언어
      고급 언어를 기계어로 번역하는 방식의 언어를 의미한다.
      FORTRAN, PASCAL, C, C++ 등이 컴파일 방식의 언어에 속한다.
      컴파일 방식은 실행에 필요한 정보가 컴파일 시간에 계산되어 실행 속도가 높다
    • 인터프리터 방식의 언어
      고급 언어 명령문을 하나씩 번역하고 실행하는 방식의 언어를 의미한다.
      BASIC, PROLOG, LISP, SNOBOL, PYTHON 등이 인터프리터 방식의 언어에 속한다.
      프로그램 실행 시에 계산된다는 특징이 있다.
    • 혼합형 방식의 언어
      고급 언어를 컴파일하여 중간 언어로 변환한 후 인터프리터에 의해 번역을 실행하는 방식의 언어를 의마한다.
      JAVA가 이에 속한다.

마치며

해당 챕터는 기능사 실기 문제에선 거의 나올 일이 없지만 혹시 모를 상황에 대비해 공부해 가시는걸 추천합니다.
아! 이번 포스팅부턴, 마치며 부분에 다음 챕터는 어떤 내용인지 미리 알려드립니다.
다음 챕터는 "라이브러리"입니다.
다음 시간때 다시 보죠.

profile
안녕하세요! 풀스택 노려보고 있는 홍인성입니다!

0개의 댓글