Programming/컴퓨터프로그래밍및실습

[컴프실] 제1장: 프로그래밍의 개념

leziwn.cs 2023. 6. 28. 18:57
1. 프로그래밍 개념
프로그램이란?
  • 컴퓨터는 범용적인 기계이다. --> 컴퓨터를 사용하여 많은 작업을 할 수 있다.
  • 컴퓨터를 범용적으로 만드는 것은 바로 프로그램이라는 개념을 사용하기 때문이다.

 

컴퓨터의 정의
  • 현대적인 의미에서의 컴퓨터는 프로그램(명령어들의 리스트)에 따라 데이터를 처리하는 기계라고 할 수 있다.

 

폰노이만 구조
  • 프로그램은 메인 메모리에 저장된다. --> 쉽게 변경 가능
  • 메인 메모리에 저장된 프로그램에서 명령어들을 순차적으로 가져와서 실행한다.

 

 

2. 프로그래밍 언어
컴퓨터가 이해하는 언어
  • 컴퓨터가 이해하는 언어는 0과 1로 구성되어 있는 기계어이다.
  • 컴퓨터는 모든 것을 0과 1로 표현하고, 0과 1에 의하여 내부 스위치 회로들이 ON/OFF 상태로 변경되면서 작업을 한다.

 

기계어
  • 0과 1로 구성되어 있는 2진수

 

프로그래밍 언어
  • 프로그래밍 언어 --컴파일러--> 기계어

 

프로그래밍 언어의 분류

프로그래밍 언어의 분류

▶ 기계어: 특정 컴퓨터의 명령어(instruction)를 이진수로 표시한 것

  • 하드웨어에 종속

▶ 어셈블리 언어: CPU의 명령어들의 이진수가 아닌 영어의 약자인 기호로 표기

  • 기계어보다는 더 높은 수준에서 프로그램 작성 가능
  • 기호, CPU의 명령어가 일대일 대응
  • 어셈블러(assembler): 기호를 이진수로 변환하는 프로그램

어셈블리 언어

 

 고급 언어: 특정한 컴퓨터의 구조나 프로세서에 무관하게, 독립적으로 프로그램을 작성할 수 있는 언어

  • C, C++, JAVA ...
  • 컴파일러: 고급 언어 문장을 기계어로 변환하는 프로그램

고급 언어

 

저급 언어와 고급 언어
  • 고급 언어: 기계어보다 인간의 언어에 가까운 언어
  • 저급 언어(어셈블리 언어 등): 기계어에 가까운 언어

저급 언어와 고급 언어

 

C언어의 특징
  • 하드웨어를 직접 제어하는 저수준의 프로그래밍도 가능하고, 고수준의 프로그래밍도 가능하다.
  • C언어를 이해하면 컴퓨터 하드웨어가 어떻게 동작하는지를 이해할 수 있다.
  • 임베디드 시스템에서는 C언어가 많이 사용된다. 

 

3. 알고리즘
알고리즘이란?
  • 알고리즘(algorithm): 문제를 풀기 위하여 컴퓨터가 수행하여야 할 단계적인 절차를 기술한 것

 

알고리즘의 기술
  • 자연어(natural language)
  • 순서도(flowchart): 프로그램에서의 논리 순서, 작업 순서를 그림으로 표현하는 방법
  • 의사 코드(pseudo-code): 자연어보다는 더 체계적이고 프로그래밍 언어보다는 덜 엄격한 언어로서 알고리즘의 표현에 주로 사용되는 코드

알고리즘의 기술