여러분, 안녕하세요? 바로 여기가 C 언어의 첫 장입니다. 여러 해 동안 C 언어를 강의하면서 수강생들에게 항상 하는 이야기가 있습니다. 그것이 무엇이냐? C 언어는 정말 재미있다는 것 입니다. 이 책의 내용과 필자의 강의를 병행하여 학습한다면 반드시 재미 이상의 실험 정신과 창의력을 발산하는 계기가 될 것이라 확신합니다.
필자의 고등학교 시절에 수학 선생님께서 5국어, 수학, 영어는 하루 안하면 이틀 퇴보한다라고 자주 말씀하셨습니다. 반복 학습이 중요하다는 것을 강조한 말입니다. 이처럼 C 프로그래밍도 복습과 예습을 충실히 하지 않으면 오히려 퇴보합니다. 따라서 반드시 반복 학습을 충실하게 하길 바랍니다. 지금부터 C 언어의 매력에 푹 빠져 봅시다.
어떤 분야에서나 숙련도를 인정받는 고수가 되려면 차례로 배워야 할 여러 단계가 있습니다. 그 중에서도 기초가 되는 배경 지식은 고수로 가기 위한 밑거름이 됩니다. 이번 장에서는 C 언어의 기본적인 이해와 C 프로그램 작성 방법 4단계를 공부해 보겠습니다. 각 단계에서는 결과물이 나옵니다. 이러한 결과물을 생성하는 각 단계가 어떤 의미가 있는 작업인지 상세히 살펴보겠습니다. 정말 중요하므로 꼼꼼히 읽어 보기 바랍니다.
1.1 C 언어란 무엇인가
인간과 인간 사이에 의사 전달을 위해 필요한 것이 언어입니다. 이러한 언어들은 다양하게 있는데 예를 들어, 한국어, 영어, 중국어, 일본어 등이 있습니다. 그렇다면 인간과 컴퓨터 사이에 의사 전달을 위해선 무엇이 필요할까요? 바로 프로그래밍 언어입니다.
C 언어는 인간과 컴퓨터 사이의 의사소통을 위한 프로그래밍 언어이다.
프로그래밍 언어란 인간이 컴퓨터에 명령을 지시하려고 만든 수단이라고 정의할 수 있습니다. 프로그래밍 언어에도 이미 개발된 많은 언어가 있습니다. 예를 들어, C 언어, C++ 언어, Java 언어, C# 언어 등이 있습니다. 이처럼 C 언어는 인간과 컴퓨터 사이의 의사소통을 위한 프로그래밍 언어 중 하나입니다.
C 언어에 객체지향 특성을 반영한 언어가 C++ 언어이고, C++ 언어에 웹 프로그램에 적합하도록 개발된 언어가 자바(Java)입니다. 마이크로소프트사의 닷넷 플랫폼 기반의 언어인 C#은 자바 언어에 기반을 두고 발전시킨 언어입니다.
C 언어의 탄생
C 언어는 1972년 미국의 AT&T사의 벨(Bell) 연구소의 연구원들인 데니스 리치(Dennis Ritchie)와 켄 톰슨(Ken Thompson)에 의해서 만들어진 프로그래밍 언어입니다. C 언어가 개발된 된 이유는 UNIX 운영체제를 만들기 위해서였습니다.
초기 UNIX 운영체제는 특정 시스템에 종속적인 어셈블리 언어로 작성되었습니다. 그래서 같은 기능을 하는 시스템 프로그램을 다른 컴퓨터 기종에서는 사용할 수 없는 문제가 있었습니다. 이런 문제를 해결하고자 켄 톰슨이 1970년에 B 언어를 개발하여 일부분 기존의 어셈블리어와 함께 사용했었고, B 언어의 성능 개선을 위해 데니스 리치가 1972년에 C 언어를 개발했습니다. C 언어를 개발한 후에 어셈블리어로 작성되었던 초기 UNIX 운영체제는 상당 부분 C 언어로 다시 작성되었습니다.
현재까지도 C 언어는 운영체제 또는 운영체제 기반의 응용 프로그램을 개발할 때 사용하는 효율성이 높은 프로그래밍 언어이며, 임베디드시스템 소프트웨어 분야, 모바일 분야, 자율 컴퓨팅 분야 등의 선도적인 분야에서도 매우 폭넓게 사용되고 있는 대중적인 프로그래밍 언어입니다.