햄깅이의 C언어

[햄깅이의 C언어] Chapter 1/ 프로그래밍 언어 개요

chohaeminn 2024. 7. 8. 15:00
본 포스팅은 Perfect C, C언어로 배우는 프로그래밍 기초 책을 기반으로 공부한 자료입니다.
다른 포스팅을 참고한 자료는 모두 출처를 남겨놓았습니다. 


1.1 프로그램은 무엇일까?

 

프로그램, 프로그래머, 프로그래밍 언어, 개발자 등 기본적인 개념

 

1) 일상생활에서 말하는 프로그램이란? 컴퓨터나 스마트폰애서 특정 목적의 작업을 수행하기 위한 관련 파일의 모음

 

2) 정보기술분야프로그램은? 특정 작업을 수행하기 위하여 그 처리 방법과 순서를 기술한 명령어와 자료로 구성된 것,

 

 

즉 컴퓨터에게 지시할 일련의 처리작업을 담고 있고,
사용자의 프로그램 조작에 따라 컴퓨터에게 적절한 명령을 지시하여 프로그램이 실행된다. 


 

3) 프로그래머란? 컴퓨터, 스마트폰 등의 정보기기에서 사용되는 프로그램을 만드는 사람

 

4) 개발자는? 소프트웨어 구축을 위한 기획에서 부터 분석.설계 ... 등 모든 과정에 참여하는 사람

프로그래머보다 개발자가 좀 더 넓은 의미이다. 

 

5) 프로그래밍 언어란? 사람과 컴퓨터가 서로 의사교환을 하기 위한 언어

 

프로그래밍 언어는 사람이 컴퓨터에게 지시할 명령어를 기술하기 위하여 만들어진 언어이다. 

 

ex) 포트란(최초의 프로그래밍 언어), C, C++ ...

 

1.2 프로그래밍 언어의 계층과 번역

 

컴퓨터의 하드웨어와 소프트웨어

 

컴퓨터는 크게 하드웨어소프트웨어로 나누어진다. 

 

하드웨어란, 컴퓨터의 물리적 부품으로 인간으로 치면

소프트웨어란, 컴퓨터의 정신으로 인간으로 치면 정신이다.

 

영혼이 없는 물체가 아무 의미가 없듯이 소프트웨어가 없는 컴퓨터(하드웨어)는 아무것도 할 수없는 고철덩어리다. 

 

하드웨어는 CPU, 주기억장치(메인메모리), 입력장치, 출력장치로 나누어진다. 

 

출처:https://www.devkuma.com/docs/c/%ED%95%98%EB%93%9C%EC%9B%A8%EC%96%B4-%EA%B5%AC%EC%84%B1/

 


 

소프트웨어는 시스템 소프트웨어와 응용 소프트웨어로 나뉜다.

 

시스템 소프트웨어는 컴퓨터가 잘 작동하도록 도와주는 기본 소프트웨어를 말한다. (ex 운영체제)

 

응용 소프트웨어는 문서 작성이나 인터넷 검색, 게임하기 등 특정 업무에 활용되는 다양한 소프트웨어를 말한다. 

 

기계어. 어셈블리어. 고급언어

 

기계어란? 컴퓨터가 인식하는 언어로 0과1로 이루어져 있다. 저급언어에 속한다. 

 

여기서 QUIZ ) 기계어는 컴퓨터가 인식하는 유일한 언어이다(O/X)

 

정답은...???? O


 

어셈블리어란?

 

기계러를 프로그래머인 사람이 좀 더 이해하기 쉬운 기호 형태로 일대일 대응시킨 프로그래밍 언어이다.  그러나 CPU마다 달라서 컴퓨터마다 다르지만, 기계어보다 프로그래밍이 훨씬 쉽다. 저급언어에 속한다.


 

프로그래밍 언어란?

 

컴퓨터에게 명령을 내리기 위해서 사람이 사용하는 말로 고급언어에 속한다. 

 

컴퓨터가 알아들으려면 어셈블리어나 프로그래밍 언어를 기계어로 번역해야한다.

 

프로그래밍 언어를 기계어로 바꾸려먼 컴파일러가 필요하다.

 

어셈블리어를 기계어로 바꾸려면 어셈블러가 필요하다. 

출처: https://medium.com/@ddokind/%EA%B8%B0%EA%B3%84%EC%96%B4-%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%EC%96%B4-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EA%B3%A0%EA%B8%89%EC%96%B8%EC%96%B4-e11d72ecff83

 

1.3 왜 C 언어를 배워야 할까? 

 

 

C언어란?

 

데니스 리치가 Unix를 개발하기 위해 개발한 프로그래밍 언어로 어셈블리어 언어의 속도로 좀 더 빠르고,

서로 다른 CPU에서 작동되는 프로그래밍 언어를 만들기 위해 개발된 언어이다. 


 

[C언어의 특징]

 

1. 절차지향 언어이다.

 

C언어는 함수 중심으로 구현되는 절차지향 언어이다.

 

즉, 시간의 흐름에 따라서 정해진 절차를 실행한다는 의미로,

문제의 해결 순서와 절차의 표현과 해결이 쉽도록 설계된 프로그램 언어이다.

 

C언어는 복잡한 문제를 잘 정의된 여러 개의 함수와 자료로 나누어 구성하고 해결함으로써,

구조적 프로그래밍이 가능하다. 

 

출처: https://m.blog.naver.com/atalanta16/220249264429

 

 

 

 


2. 간결하고 효율적이다.

 

비트연산, 증감연산, 축약대입연산..등 다양한 연산이 가능하고 재귀호출이 가능하다. 

포인터와 메모리 관리 기능이 가능하는 세세한 기능이 있으며

 

C언어로 작성된 프로그램은 크기가 작으며, 메모리도 적게 효율적으로 활용해 실행속도가 빠르다. 


 

3. 이식성이 좋다.

 

C로 작성된 코드는 다양한 운영체제에서 별다른 수정없이 사용이 가능하다.

 

즉 다양한 CPU와 플랫폼의 컴파일러를 지원하기 때문에 이식성이 좋다.