01. 프로그래밍

프로그래밍이란 무엇인가?

프로그램을 만드는 것. 프로그램은 명령의 집합이다. 명령에는 결과가 따른다. 프로그래머는 오더에 맞게 결과가 나오도록 한다. 이는 목적을 명확히 하고 적절한 도구를 사용해 논리적으로 작성하는 것으로 수행된다.

목적을 명확히 한다.

요구 사항이 있다고 해도 이는 프로그램의 목적과 차이가 날 수 있다. 혹은 내/외부적인 이유로 구현가능하지 않을 수 있다. 이후 구현에서도 무엇을 하고 있는지 확실히 하지 않으면 코드가 꼬이게 되어있다. 그러므로 코드의 스키마가 잡혀있어야 한다. (이는 주석 처리를 통해 확실히 하는 것이 좋다.) 마지막으로 완성된 코드에 있어서, 좋은 코드인가 아닌가는 주어진 조건에 따라 다르다. 이에 따라 코드 평가의 단계에서도 목적을 명확히 할 필요가 있다.

논리적인 수행이란 무엇인가?

언어는 문법과 작문으로 이루어지는데 이 과정을 철저히 하는 것을 의미한다.

왜 C/C++를 배우는가?

비록 C는 분류로는 절차지향 언어지만, 두 언어는 멀티 패러다임 언어라 부를 수 있을 정도로 사용자의 능력 만큼 자유롭게 구현이 가능하다. 문법이 간결하며 대부분의 언어가 C의 문법을 기반으로 하고 있으므로 다른 언어의 학습에도 도움이 된다. 운영체제를 만들 수 있는 언어로, 로우레벨의 접근이 가능해 컴파일러가 있다면 만들 수 없는 프로그램이 없고 능력만큼 고효율의 프로그램을 작성할 수 있다.

C의 표준

ANSI C가 표준이다. 최신의 표준안은 C11로 draft를 이곳에서 확인할 수 있다. (ANSI에서 정식본으로 보려면 C와 C++ 각각 60불을 지불해야 한다.)

ANSI C와 클래식 C의 차이

  1. 표준 라이브러리 함수를 규격화했으며 헤더 파일도 통일했다.
  2. 함수의 원형 선언 기능이 추가되어 컴파일러가 함수 호출부에서 타입 체크를 할 수 있다.
  3. 정수, 실수 상수의 타입을 지정할 수 있는 L,U,F 등의 접미어가 추가되었다.
  4. enum, void형과 const,volatile 제한자가 추가되었다.
  5. 인접 문자열 상수를 합쳐 주고 확장열의 기능도 추가되었다.
  6. 함수 내부에서 선언하는 지역 배열이나 구조체를 초기화할 수 있다.
  7. 구조체끼리 대입할 경우 구조체 크기만큼 메모리 복사를 한다.

컴파일러

인간의 언어에 가까운 고수준의 언어인 소스 파일을 저수준 언어인 어셈블리어나 기계어로 바꿔주는 프로그램이다. c컴파일러는 object파일을 생성 후 link의 과정을 거쳐 실행 파일을 형성한다. 이를 build라 한다.

Leave a Reply