프로그래밍/c언어

사사밍의 c언어기초강좌 1강:프로그래밍언어란 무엇인가?

사사밍 2015. 11. 13. 00:00

안녕하세요 사사밍입니다 

사실 이리뷰 는 공지에서도 설명드렸듯이(http://sasaming.tistory.com/1) 예전 블로그의 글입니다(잘못된정보.맞춤법등 약간의 수정이있었습니다.)

예전 블로그의 글들이 올라가는 동안에는 최대한 정기적으로 글을 올리기 위해 비축분을 쌓아둘 예정입니다. 

이제보니 부족해보이는 부분이 많네요 천천히 수정하도록 하겠습니다. 오타는 덧글로 남겨주시면 감사하겠습니다.



사사밍의 c언어기초강좌 1강:프로그래밍언어란 무엇인가?

 

안녕하세요~! 여러분이 바라시고 갈망하시던 바로제가 사사밍..... 아 죄송합니다.. c언어처음하시는 분들이 떨릴까봐 장난한번

쳐봤어요..//ㅜㅜ//(그런눈으로 쳐다보지말아주세요.. 초라해져요..)

 오늘은 c언어강좌 첫날입니다! 사실 6월말에나 올릴생각이였는데 저도 오늘은 감기가 심하게걸려 푹~ 쉬게되어  집에만 있어야하는 꼴이되버리는바람에 시간이남는동안 머리도식힐겸 오늘 강좌1강을 올려봅니다 

 오늘 강좌의 내용은 대부분 간단한 프로그래밍의 정의등 대부분 글이기 떄문에 지루하실수도 있습니다 그러나 이건 굳이 머리 싸매가며 외워야하는 부분은 아니기때문에

가벼운 마음으로 봐주세요.

그럼 여러분 시작해볼까요?  

 

 

--------------------------목차----------------------------

 1.c언어의 유래

 

  2.프로그래밍 언어란?

--------------------------------------------------------------------------

 

 

1.c언어의 유래

 

​그럼 첫번쨰 목차인 c언어의 유래를 살펴보겠습니다! 

초기 개발

C 언어의 개발자인 켄 톰슨과 데니스 리치.

C 언어의 초기 개발은 1969년부터 1973년까지 4년에 걸쳐 AT&T 벨 연구소에서 이루어 졌으며,[1] 데니스 리치의 말에 따르면, 가장 창의적인 작업이 이루어진 기간은 1972년이었다. 언어의 이름이 "C"인 이유는 그 특징이 "B" 언어에서 유래되었기 때문이며, 켄 톰슨에 의하면, B 언어는 BCPL 언어의 기본만 남긴 버전이다.

리치와 톰슨에 의해 초기에 PDP-7의 어셈블리 언어로 구현되었던 유닉스 운영체제의 개발과 C 언어의 기원은 밀접하게 연관되어 있다. 결국 그들은 유닉스 운영체제를 PDP-11로 포팅하기로 결정하였다. PDP-11의 기능의 일부, 특히 바이트 접근기능을 활용하지 못하는 B 언어의 부족함이 C 언어의 초기 버전의 개발을 이끌었다.

유닉스의 초기 PDP-11 버전은 어셈블리로 개발되었다. 1973년에 struct 자료형의 추가로, C 언어는 유닉스의 대부분을 C로 쓸 수 있을 정도로 강력해 졌다. 유닉스는 어셈블리가 아닌 언어로 구현된 최초의 운영체제 커널 중의 하나였다.(더 빠른 사례는 PL/I로 쓰인 Multics 시스템, ALGOL로 쓰인 Burroughs B5000을 위한 MCP(Master Control Program)가 있다.) 1977년 경, 리치와 스티븐 C. 존슨이 유닉스 운영체제의 이식성을 향상시키기 위해, C 언어를 추가적으로 변경하였다. 존슨의 Portable C Compiler는 새로운 플랫폼에서의 C의구현의 기초가되었다.

출처:위키백과사전

​이렇다고 합니다!  사실 이건 문법을 배울때 중요하진않지만 그래도 알아두면 좋겠죠?  여기서 재밌는건C언어가 C인이유는 B언어다음이라서 그렇다는건데요 ㅋㅋ 여러분 알고게셨나요? 위에서 나온듯이 C언어는 B언어의 단점을 보안해서 나온 언어이죠!

아! 그런데 여러분은 프로그래밍언어가 아직 무엇인지 정확히 잘몰르겠죠? 다음목차로 넘어가 봅시다!

 

 

 

2.프로그래밍 언어란?

 

여러분은 프로그래밍 언어가 정확히 무엇인지 알고계신가요?

1. 프로그래밍 언어

프로그래밍 언어라는것은 어떠한 문제에대하여 인간과 컴퓨터가 소통가능한 제3의 언어를 말합니다. 이 언어를 통하여 사용자는 컴퓨터에게 일을 시키는 코드로이루어진 프로그램을 작성할 수 있는거죠!.

 

1)프로그래밍 언어들의 공통된 특징

 

-사람이 보다 쉽게 이해하고 읽을수있도록 간단하게 표현할수있다(ex.010101 이아닌 알파벳을 사용)

- 각언어들은 문법이 정확하고 균일하다

      ㄴ 보통의 프로그래밍언어들은 대부분 문법이 균일합니다(표준적입니다)

-다른 환경에서 작성한코드라도 같은내용이라면 같은결과를 표출한다

 

 

그렇다면 프로그래밍 언어의 종류는 한가지뿐인걸까요? 당연히아닙니다! 한가지는커녕 수백가지에서 수천가지에 이르죠!

그럼 그것들에대하여 알아볼까요?

 

2)저급 언어 , 고급 언어

 

프로그래밍 언어는 크게 2가지로 나누어지는데요 바로 저급언어와 고급언어 로나누어진답니다!

왜 저급언어이고 고급언어인가하면 질이떨어져서 저급언어고 질이높아 고급언어가아니라 컴퓨터가 이해하는것이 쉬운가

인간이 이해하기가 쉽나 에따라 달라진답니다!


그럼먼저 저급언어의 특징을 살펴보죠!


저급언어(Low-Level Language)


- 기계중심(컴퓨터) 중심의 언어

- 실행속도가 고급언어에 비하여 빠르다

 

기계어(machine language)

0과1로이루어져있는 2진수 형태의 언어로 컴퓨터가 직접이해할수있는 그렇기에 상당히 빠른동작이 가능한 저급언어이입니다!

그러나 기종마다 기계어(종류)달라 서로 호환이 되지않고 왠만한 전문지식 없이는 프로그램 을 작성하기 상당히 오래걸린다는 단점을가지고있죠.. (요즘은1시간이면 짤것을 예전에는 기계어로하느라 3일이걸렸다죠! 기계어 무서운아이!)

 

고급언어(High-Level Language)

 

이번에는 고급언어에 대하여 살펴보도록하죠! 고급언어의 특징으로는

-저급언어와는 반대로 사람중심의 언어

-호환성이 좋다

-실행을 위해서는 번역과정이필요(컴파일)

ㄴ이것을잘이해시키기위해 여러분 을위한 그림을 준비해보았어요~






위를봐주세요!  어떤가요 무슨말인지 이해가될것같나요?(급한데로 그림판으로해서 엉망이네요ㅜㅜ)

기계어는  미국인같은역활인것이죠! 통역가의역활로 보는겁니다! (여기 미국인의 직업은 통역가랍니다!) 인간은 프로그래밍언어만할줄알고 컴퓨터는 기계어만할줄아니 컴파일러가 그둘이할줄아는것을 알아 통역을해주는거죠! 이해가되셨죠?

 

-----------------------------------------------------------------------------------------------------

 

수고하셨습니다 오늘강좌는 여기까지고요!~ 오늘은 C언어를 배우기전 기초를 다지는 과정이라 재미도없고 어렵기도 하셨을거에요ㅜㅜ 하지만 필요한 지식들이니 여기서 확실히 머리에 새겨두자고요!(이지식은 너의두뇌를 뚫을 지식이다!........ )

그럼 절대 초심을 잃지않고 굳은의지로 함께나아가 보자구요!

 

 

 

그럼오늘의 필기목록을 볼까요?

노트를준비하신분들은 이것들을 노트에 적어두시면 좋아요~

 

---오늘의필기목록------------------------------------------------

1. 프로그래밍 언어

프로그래밍 언어:어떠한 문제에대하여 인간과 컴퓨터가 소통가능한 제3의 언어를 말합니다. 이 언어를 통하여 사용자는 컴퓨터에게 일을 시키는 코드로이루어진 프로그램을 작성할 수 있는것.

 

1)프로그래밍 언어들의 공통된 특징

 

-사람이 보다 쉽게 이해하고 읽을수있도록 간단하게 표현할수있다(ex.010101 이아닌 알파벳을 사용)

- 각언어들은 문법이 정확하고 균일하다

      ㄴ 보통의 프로그래밍언어들은 대부분 문법이 균일합니다(표준적입니다)

-다른 환경에서 작성한코드라도 같은내용이라면 같은결과를 표출한다

 

저급언어


- 기계중심(컴퓨터) 중심의 언어

- 실행속도가 고급언어에 비하여 빠르다

 

기계어(machine language)

0과1로이루어져있는 2진수 형태의 언어로 컴퓨터가 직접이해할수있는 그렇기에 상당히 빠른동작이 가능한 저급언어이입니다!

그러나 기종마다 기계어(종류)달라 서로 호환이 되지않고 왠만한 전문지식 없이는 프로그램 을 작성하기 상당히 오래걸린다는 단점을가지고있다

 

고급언어

 

이번에는 고급언어에 대하여 살펴보도록하죠! 고급언어의 특징으로는

-저급언어와는 반대로 사람중심의 언어

-호환성이 좋다

-실행을 위해서는 번역과정이필요(컴파일)

--------------------------------------------------------------------------



 

 


네이것으로 오늘강좌는 정말로~ 끝났습니다! 예전에비해 상당히 많은내용들이 추가됬습니다!(모르심말구요...그냥 예전에 그런게있어어요...ㅋㅋ) 다음강좌까지는 기초적인 이론을 배울거라서 지루할수있지만 2강까지만 참고 견디시면 여러분이 원할꺼라생각하시는

코드를 작성해볼거랍니다! 즉2강까지는 준비와이론 3강부터는 실전이란예기죠! 그럼 2강에서 뵙도록하죠(이번 강좌가 생각보다 상당히 빨리나온거라 6월중순쯤에 다시올릴거라 생각됩니다!)

 

오타나 잘못된부분있으면 댓글로 지적해주시면 최대한빠르게 고치도록하겠습니다!




2015/11/13 - [프로그래밍/c언어] - 사사밍의 c언어기초강좌 1강:프로그래밍언어란 무엇인가?


2015/11/13 - [프로그래밍/c언어] - 사사밍의 c언어기초강좌 2(상)강:c언어란 무엇인가


2015/11/14 - [프로그래밍/c언어] - 사사밍의 c언어기초강좌 2강(하):c언어란 무엇인가?


2015/11/24 - [프로그래밍/c언어] - 사사밍의 c언어기초강좌 3강:비주얼 스튜디오 설치해보자!


2015/11/27 - [프로그래밍/c언어] - 사사밍의 c언어기초강좌 4강:코드 살펴보기!