천문 프로그래밍과 관련된 이야기를 나눌 수 있는 곳입니다.
총 게시물 144건, 최근 0 건
   
[AstroDev의 C언어 강좌]C언어를 공부하기 전에 워밍업~~!!
글쓴이 : 유환용 별님  (203.♡.227.123) 날짜 : 2009-06-06 (토) 17:17 조회 : 10096

 C언어를 배우기 전에 C언어가 생긴 배경과  왜 C언어를 배워야 하는가 배우면 무엇이 좋은지 C언어를 공부하기 전에 몸풀기 식으로 알고 넘어가보자. 필자도 첫 강좌라 워밍업겸 작성해볼려고 한다ㅡ,.ㅡ

 C 언어 이전에도 '어셈블리어'라던지 'B언어'라던지 그밖에 많은 프로그래밍 언어들이 존재했었다. 하지만 이것들은 기계어에 가까워서 가독성도 떨어질 뿐만 아니라 '비효율 노동집약형'적인 코딩이였기 때문에 생산성도 떨어졌고 게다가 기계어에 가깝다 보니 내장되어 있는 CPU에 따라 사용되어지는 언어가 달라지게 되었다. 즉 프로그래머를 양성하기 위해서는 언어뿐만 아니라 사용할 컴퓨터 내부 구조와 작동 원리까지 학습시켜야만 했기 때문에 인재 양성에도 매우 비효율 적이었다.

 이런걸 해결하기 위해서 B언어가 만들어지게 되었는데 이를 더 보강해서 나온 언어가 C언어인 것이다. C언어 이름이 왜 C인가 하면 B언어 다음에 생긴 언어라고 해서 알파벳 다음 순서인 C를 사용하여 C언어라고 이름을 붙였다고 한다.(작명 센스하고는 ㅡㅡ;;)

그럼 C언어는 전 언어에서 무엇을 해결하였는지 우리에게 얼마나 상쾌한(?) 코딩 환경을 제공해주었는지 알아본다면 간결성, 범용성, 제어능력, 융통성, 유연성, 효율성, 이식성 이라고 볼 수 있다.(출처-해커스쿨) 하지만 필자는 나 자신이 경험했던 장점을 설명을 하겠다.

 먼저 C언어는 범용성이라는 장점가지고 있는데 범용성이란 하나의 언어로 모든 프로그램을 구현할 수 있다는 것이다. 예전에는 특정 프로그램을 구현하기 위해서 존재하는 언어도 존재 하였지만 C언어는 모든 프로그램을 만들 수 있다고 하여도 과언이 아니다. C언어를 처름 배울 땐 콘솔 환경에서만 작업을 하지만 C언어를 마치고 나서 API를 접하게 된다면 C언어로 GUI환경의 프로그램도 만들 수 있다는 것을 알게 될것이다.

다음으로 C언어의 장점이자 단점은 제어능력이라고 생각한다. C언어는 메모리를 직접 다를수도 있고 스트림이라는 것을 이용하여 입출력을 조절 할 수도 있다. 즉 컴퓨터 대부분의 기능을들 사용할 수 있다는 점이 큰 장점이라고 볼수 있으나, 이는 단점으로보 내 비칠때도 있다. 이것은 차차 공부하게 되면 알게 될것이다. ㅡ,.ㅡ;;;

C언어의 장점들 중 이식성을 빼 놓을 수 없다. 이식성이라 하는 것은 하드웨어와 OS를 가리지 않고 사용 가능한 것을 말하는데 MS사 윈도우즈 환경에서 작업한 C소스를 유닉스 환경이나 리눅스 환경에서 그대로 가지고와서 컴파일을 하여도 컴파일 오류가 나지 않는 것을 확인 할 수가 있다. 이것을 보고 이식성이 좋다고 하는 것이다. 만약 컴파일 오류가 난다면 그것은 컴파일러 종류가 달라서 생기는 문제이지 C언어 자체의 문제는 아니다.

그리고 마지막으로 필자가 가장 중요하게 생각하는 장점이 있다. C언어는 다른 언어의 어머니라 는 것이다. C언어 이후에 생긴 언어들을 보면 C++. JAVA, C#이 있다. 이름만 보아도 C언어의 이름과 비슷하기 때문에 서로 연관성이 있다는 것을 짐작 할 것이다. C언어가 B언어를 보강하여 만든 것 처럼 C++은 C언어를 기반으로 만들어진 언어이며 JAVA와 C#은 C++을 기반으로 만들어진 언어이다. 어떤 사람을 볼 때 그 부모님을 알면 대충 사람의 성격을 짐작할 수 있듯이 C언어를 학습하게 되면 다른 언어를 익히는데에도 많은 도움이 된다는 것이다.

이 밖에도 수많은 장점들이 있지만 이해하는 하나 공감가지 않는 것들은 언급을 하지 않았다. 현재 프로그래밍 언어들은 대부분 갖춰있는 장점들도 있어서 C언어가 독보적으로 가지고 있는 큰 장점이라고 말할 수가 없었다. 많은 장점들 중에서 'C언어는 다른 언어의 어머니'라는 장점이 가장 눈에 띄지 않는가? 고급언어를 제대로 사용하기 위해서는 C언어를 반드시 거쳐가야 하는 것이다.

필자는 C언어만 공부하고나서 API와 TCP/IP를 공부한 뒤에 내가 원하는 프로그램들을 만들 수 있다는 걸 느꼈다. C언어를 배우면 그만큼 개발의 자유가 주어지게 된다니 C언어가 너무 대단해 보이지 않는가?^^ (참고로 API와 TCP/IP는 C언어 기반으로 한다.)

*1장-1부.C언어를 공부하기 전에 워밍업~~!! 끝-


[이 게시물은 최고관리자님에 의해 2012-12-20 11:00:41 프로그래밍 강좌에서 이동 됨]

정재원별님 (59.♡.167.189) 2009-06-06 (토) 20:20
위에서 API라 함은 '윈도우즈API'를 뜻함
댓글주소
유환용별님 (112.♡.209.34) 2009-06-06 (토) 20:20
굿~
댓글주소
이유화별님 (121.♡.206.168) 2009-06-06 (토) 23:23
와~ 교수님같애 멋쟁이!!
댓글주소
이재욱별님 (118.♡.239.70) 2011-12-02 (금) 23:19
도움 많이 됬어요~
감사합니다.
댓글주소
   

총 게시물 144건, 최근 0 건
번호 제목 글쓴이 날짜 조회 추천
144  음양력 변환 프로그램 CalTime 3.4 +1 김동빈별님 11-24 7236 0
143  현재 시간에 따른 태양, 달 위치 계산. +1 조재훈별님 08-30 6496 0
142  [DreamSpark] Microsoft의 정품 프로그램을 무료로 … +6 백승우별님 01-21 8364 0
141  일식 예측을 위한 태양과 달의 위치 계산 +1 이형철별님 11-21 10828 0
140  사이토구니치의 古天文學 번역판을 공개하며 +1 이형철별님 08-22 11239 2
139  [AstroDev의 C언어 강좌] 나왔다 Hello World!!! +3 유환용별님 07-01 8683 0
138  [AstroDev의 C언어 강좌] 컴퓨터 데이터 표현 방… 유환용별님 06-28 9978 0
137  IAU2000 장동 모델 +2 김창환별님 06-25 11859 0
136  [AstroDev의 C언어 강좌]메모리 안에서는 무슨일… +10 유환용별님 06-10 12033 0
135  [AstroDev의 C언어 강좌]우리는 무엇을 준비해야… +7 유환용별님 06-08 9945 0
134  [AstroDev의 C언어 강좌]우리는 무엇을 준비해야… +3 유환용별님 06-07 9509 0
133  [AstroDev의 C언어 강좌]C언어를 공부하기 전에 … +4 유환용별님 06-06 10097 0
132  IAU2006 세차 모델 +1 김창환별님 05-18 10664 0
131  각도변환문제 : 도(degree), 시(hour), 라디안(radia 지용호별님 04-15 18139 0
130  지구의 세차운동(歲差運動, Precession) 계산하… +5 지용호별님 04-14 14570 0
 1  2  3  4  5  6  7  8  9  10  맨끝
 
Since 2001.2.7 미래창조과학부 등록 비영리민간단체 천문노트. Copyright All rights reserved.
단체명 : 천문노트  |    고유번호 : 101-82-15888  |    대표자명 : 김태욱, 조우성  |    주소 : 138-804 서울특별시 송파구 가락동 93 금강빌딩 7층 710호  |    전화 : 02-543-3295  |    Fax : 02-6918-6888  |    통신판매신고번호 : 종로 제01-5696호  |    개인정보관리책임자 및 사이트관리자 : 지용호