2017년 3월 6일 월요일

02. 데이터 표현과 프로그램-2

2) 프로그램
 (1) 프로그램의 정의 및 특징
   * 프로그램은 컴퓨터가 연속적으로 해야하는 작업을 지시하는 명령들의 집합니다.

   * 이 명령들은 모두 기계어(machine language / binary digit / 0, 1)로 이루어져 있다.
     : 사람이 읽기 어려운 기계어(machine code) / 목적 코드(object code, target code)

   * 따라서 사람이 인식할 수 있는 고급언어를 이용하여 코드를 작성한 후 기계어로 변환한다.

   * 고급언어 즉, 소스코드(source code)를 기계어로 변환하는 과정을 컴파일(compile)이라고 하며 이를 수행하는 것을 컴파일러(compiler)라고 한다.

     참고) 어셈블리어(assembly language)를 기계어로 변환하는 과정을 어셈블리라고 하며 이를 수행하는 것을 어셈블러(assembler)라고 한다. 어셈블리어는 기계어에 가까운 언어로 기계어의 명령문과 1:1 대응 관계를 갖는다.

   * 컴파일러가 없는 언어의 경우 사용자가 실행하는 시점에 인터프리터(Interpreter)에 의해 즉시 기계어로 변환된다.
  (주로 HTML, asp, php 같은 Web Languages, Lua Script 등)


 (2) 프로그램의 실행
   * 기본적으로 대부분의 모든 프로그램은 보조기억장치(ex, HDD)에 저장되어 있다.
   * 모든 프로그램은 실행되기 위해서는 메인 메모리에 적재되어야 한다.
   * 메인 메모리에 놓여진 명령들을 프로세서가 처리하고 그 결과를 반환하는 반복적인 과정이 바로 프로그램이 실행되는 현상인 것이다.


 (3) 프로그래밍
   * 규정된 규칙에 따라 컴퓨터에 부여하는 명령(즉, 프로그램)을 만드는 작업.
   * 프로그래밍 규칙들
     : 변수와 상수, 함수, 연산자, 조건문, 반복문, 배열
     : 객체지향 프로그래밍(OOP, Object Oriented Programming)

      참고) 변수의 데이타 타입(java 기본형)
java data type

   * 메모리를 차지하는 영역의 분류
     : 컴파일시(정적할당, Static)     - Code, Data, Stack
     : 런타임시(동적할당, Dynamic) - Heap

[Side Knowledge]
 * ASCII [ Click ]            * Unicode [ Click ]

 * 중위식(infix notation)    
   :  2 + 3        2 + 3 + 4      (-10 + 3 * 4)        A + B + C  / D        A * (B + C) / D
 * 전위식(prefix notation)
   :  + 2 3        + 2 3 5        (- 10 (* 3 4))        + * A B / C D          / * A + B C D
 * 후위식(postfix notation)
   : 2 3 +        2 3 4 +         (10 (3 4 *) -)        A B * C D / +         A B C + * D /

댓글 없음:

댓글 쓰기