프로그래밍 언어

개념

  • 인간이 컴퓨터와 의사소통하기 위해 내리는 명령으로, 프로그램을 처리하도록 기술한 언어

종류

  • 저급언어
    • 기계여 : 2진수
    • 어셈블리어 : 기계어를 기호로 표현
  • 고급언어 : 인간이 쓰는 언어(일상 언어에서 사용하는 표현을 적용 가능)
    ex) C언어, 포트란, 자바

발전

포트란(1950) -> 코볼(1960) -> C언어, 파스칼(1970) -> 베이직 언어(1980) -> 객체지향언어(1990) -> 델파이, 쿼리전용언어(2000 이후)

 

요구사항 분석

  • 사용자의 필요를 파악하고 프로그램을 통해 해결할 문제가 무엇인지 확인하는 단계

 

프로그램 설계

  • 코딩을 시작할 때 사용할 논리를 그려내는 단계
  • 알고리즘 설계라고도 함

알고리즘 특성

  • 입력 : 외부에서 제공되는 자료가 0개 이상 있어야 함
  • 출력 : 적어도 1개 이상의 결과를 만들어야 함
  • 명백성 : 각 명령어는 의미가 모호하지 않고 명확해야 함
  • 유한성 : 한정된 수의 단계 뒤에는 반드시 종료
  • 유효성 : 모든 명령은 실행 가능한 연산이어야 함

제어흐름 유형

  • 순차구조 : 코드 순서대로 실행
  • 선택구조 : 다음에 무엇을 해야 하는지를 결정하는 분기
  • 반복구조 : 조건이 만족하지 않을 때까지 반복

 

코딩

  • 프로그래밍 언어로 프로그램을 작성하는 단계

컴파일

  • 고급언어를 저급언어로 변환하는 단계
  • 원시코드(고급언어) -> 컴파일러 -> 목적코드(기계어) -> 로더 -> 메모리에 목적코드 로드 -> 실행 -> 결과값

인터프리터 

  • 고급언어를 하나씩 읽어 번역 및 실행
  • 원시코드 및 입력자료 -> 인터프리터 -> 결과값

하이브리드

  • 컴파일러와 인터프리터를 함께 사용

디버깅

  • 프로그램이 포함하는 모든 오류를 찾아내 제거하는 단계

오류

  • 구문 오류 : 틀린 문자를 입력 또는 문법에 맞지 않는 명령문 사용
  • 논리 오류 : 제어 구조의 부적절한 사용

테스트

  • 알파 테스트 : 개발자가 개발 환경에서 테스트
  • 베타 테스트 : 고객이 고객 환경에서 테스트

 

절차지향언어

  • 프로그램 코드가 순서대로 실행되는 언어
    ex) 파스칼, 코볼, C

 

객체지향언어

  • 데이터와 기능을 묶어 캡슐화시킨 후 메시지를 전달하여 일을 처리하는 언어
    ex) C++