C는 범용 프로그래밍 언어다. 기존에 있던 UNIX 운영 체제와 밀접하게 연계되어 왔다.

개발된, 시스템과 시스템에서 실행되는 대부분의 프로그램은 모두 C로 작성되기 때문에. 그러나 언어는 묶여 있지 않다.

하나의 운영 체제나 기계에 연결된다. 그리고 비록 그것이 "시스템 프로그래밍 언어"라고 불렸지만, 그것은 그것이 그것이기 때문이다.

컴파일러와 운영체제 작성에 유용하게 사용되어 왔으며, 그것은 많은 다른 분야에서의 주요 프로그램 작성에 동등하게 잘 사용되어 왔다.

도메인들

C의 많은 중요한 아이디어들은 마틴 리차드에 의해 개발된 BCPL 언어에서 유래한다. BCPL이 에 미치는 영향

C는 언어 B를 통해 간접적으로 진행되었는데, Ken Thompson이 1970년에 처음으로 UNIX 시스템을 위해 쓴 것이다.

DEC PDP-7

BCPL과 B는 '유형 없는' 언어다. 이와는 대조적으로 C는 다양한 데이터 유형을 제공한다. 기본적인 타입은 등장인물이지만

여러 크기의 정수 및 부동 소수점 번호. 또한 다음과 같이 생성된 파생 데이터 유형의 계층도 있다.

포인터, 배열, 구조 및 조합. 표현식은 연산자와 피연산자로부터 형성된다. 모든 표현식은 다음을 포함한다.

할당 또는 함수 호출은 문장이 될 수 있다. 포인터는 기계에 독립적인 주소 산술을 제공한다.

C는 잘 구성된 프로그램에 필요한 기본적인 제어 흐름 구조를 제공한다: 문 그룹화, 결정

만들기(만약에, 가능한 값 중 하나를 선택(스위치), 종단 테스트를 맨 위에 놓고 루핑(그 동안,

(for) 또는 (do) 하단과 조기 루프 출구(break).

함수는 기본 형식, 구조, 조합 또는 포인터의 값을 반환할 수 있다. 어떤 기능도 재귀적으로 호출할 수 있다. 국부적

변수는 일반적으로 "자동"이거나 각 호출로 새로 생성된다. 함수 정의는 중첩되지 않을 수 있지만

변수는 블록-프로토콜 방식으로 선언될 수 있다. C 프로그램의 기능은 다음과 같은 별도의 소스 파일에 존재할 수 있다.

따로 편찬하다 변수는 함수의 내부일 수 있으며, 외부일 수 있지만 단일 소스 파일 내에서만 알려져 있거나,

전체 프로그램에 표시됨.

사전 처리 단계는 프로그램 텍스트, 다른 원본 파일 포함 및 조건부에 대한 매크로 대체 수행

편찬

C는 상대적으로 '저수준' 언어다. 이 특성화는 경멸적인 것이 아니다; 그것은 단지 C가 같은 것을 다루고 있다는 것을 의미한다.

대부분의 컴퓨터가 하는 개체, 즉 문자, 숫자 및 주소. 이것들을 조합하여 움직일 수 있다.

실제 기계에 의해 구현된 산술 및 논리 연산자와 함께.

C는 문자열, 집합, 목록 또는 배열과 같은 복합 객체를 직접 처리하는 작업을 제공하지 않는다. 없다

구조물이 하나의 단위로 복사될 수 있지만 전체 배열 또는 문자열을 조작하는 작업 언어가 정의되지 않음

정적 정의 및 함수의 로컬 변수에 의해 제공되는 스택 규율을 제외한 모든 저장소 할당 설비

쓰레기 더미나 쓰레기 수거가 없다. 마지막으로, C 자체는 입출력 설비를 제공하지 않으며, READ나 WRIT이 없다.

문장, 내장 파일 액세스 방법 없음. 이러한 모든 상위 레벨 메커니즘은 명시적으로 호출하여 제공되어야 한다.

기능들 대부분의 C 구현에는 그러한 기능의 합리적으로 표준화된 컬렉션이 포함되어 있다.

마찬가지로 C는 테스트, 루프, 그룹화 및 하위 프로그램 등 간단한 단일 스레드 제어 흐름만 제공하지만

다중 프로그래밍, 병렬 작동, 동기화 또는 코루틴.

비록 이러한 특징들 중 일부가 없는 것이 심각한 결핍으로 보일지 모르지만, (''내가 어떤 기능을 불러야 한다는 말씀이시죠?

두 개의 문자열을 비교하시겠습니까?'), 언어를 적당한 크기로 낮추면 실질적인 이점이 있다. C는 상대적으로 작기 때문에, C는 비교적 작다.

작은 공간에서 설명할 수 있고, 빠르게 배울 수 있다. 프로그래머는 합리적으로 알고 이해하기를 기대할 수 있다.

실제로 규칙적으로 전체 언어를 사용한다.

여러 해 동안, C의 정의는 The C Programming Language 초판의 참조 매뉴얼이었다. 1983년,

미국 국립 표준 연구소(ANSI)는 의 현대적이고 포괄적인 정의를 제공하기 위해 위원회를 설립했다.

C. 결과 정의인 ANSI 표준 또는 'ANSI C'는 1988년 말에 완료되었다. 의 대부분의 특징

표준은 이미 현대 컴파일러에 의해 지원되고 있다.

표준은 원본 참조 매뉴얼에 기초한다. 언어는 비교적 거의 변하지 않는다.; 언어의 목표 중 하나이다.

표준은 대부분의 기존 프로그램이 유효하게 유지되도록 하는 것이었습니다. 그렇지 않으면 컴파일러가 생산할 수 있는 프로그램을

새로운 행동에 대한 경고


대부분의 프로그래머들에게 가장 중요한 변화는 함수를 선언하고 정의하기 위한 새로운 구문이다. A함수

선언은 이제 함수의 인수에 대한 설명을 포함할 수 있다. 정의 구문은 일치하도록 변경된다. 이 엑스트라

정보는 컴파일러들이 불일치하는 주장으로 인한 오류를 훨씬 더 쉽게 감지할 수 있게 해준다; 우리의 경험에 따르면, 그것은

그 언어에 매우 유용한 추가.

다른 작은 규모의 언어 변화도 있다. 널리 보급되어 있던 구조 할당 및 열거가 이루어지고 있다.

이제 공식적으로 언어의 일부분이야 이제 부동 소수점 연산은 단일 정밀도로 수행될 수 있다. 의 속성

특히 서명되지 않은 유형의 경우 산술을 명확히 한다. 전처리가 더 정교하다. 대부분의 이러한 변화들은 대부분

대부분의 프로그래머에게 미치는 영향은 미미하다.

표준의 두 번째 중요한 기여는 C와 함께할 도서관의 정의다. 다음에 대한 함수를 지정한다.

운영 체제 액세스(예: 파일 읽기 및 쓰기), 포맷된 입력 및 출력, 메모리 할당, 문자열

조작 같은 것. 데이터 함수 선언에 대한 균일한 액세스를 제공하는 표준 헤더 모음

이 라이브러리를 사용하여 호스트 시스템과 상호 작용하는 프로그램은 호환되는 동작이 보장된다. 도서관의 대부분은

UNIX 시스템의 "표준 I/O 라이브러리"를 면밀히 모델링. 이 도서관은 초판에 기술되어 있으며,

다른 시스템에서도 널리 사용되었다. 다시 말하지만, 대부분의 프로그래머들은 큰 변화를 보지 못할 것이다.

C가 제공하는 데이터 유형과 제어 구조는 대부분의 컴퓨터에서 직접 지원되기 때문에 런타임 라이브러리

자급제 프로그램을 구현하는 데 필요한 것은 매우 작다. 표준 라이브러리 함수는 명시적으로만 호출되므로 다음과 같이 할 수 있다.

필요 없으면 피하다 대부분은 C로 작성할 수 있으며, 그들이 숨기고 있는 운영체제 세부사항을 제외하고,

휴대할 수 있다.

비록 C가 많은 컴퓨터의 기능과 일치하지만, 그것은 어떤 특정한 기계 구조와도 무관하다. 조금으로

휴대용 프로그램, 즉 다양한 하드웨어에서 변경 없이 실행할 수 있는 프로그램을 쉽게 작성할 수 있다. The

표준은 휴대성 문제를 명시적으로 만들고, 다음이 있는 기계를 특징짓는 상수 집합을 규정한다.

프로그램이 실행된다.

C는 강한 형식의 언어는 아니지만, 진화하면서 활자체크기가 강화되었다. 의 원래 정의

C는 포인터와 정수의 교환을 눈살을 찌푸렸으나 허락했다; 이것은 제거된 지 오래되었고, 표준이 되었다.

이제 선량한 컴파일러에 의해 이미 시행된 적절한 선언과 명시적인 변환을 요구한다. 새로운

함수 선언은 이 방향의 또 다른 단계다. 컴파일러는 대부분의 유형 오류를 경고하며, 자동은 없다.

호환되지 않는 데이터 유형의 변환. 그럼에도 불구하고 C는 프로그래머가 자신이 무엇인지 알고 있다는 기본철학을 간직하고 있다.

하는 것; 그것은 단지 그들의 의도를 명시적으로 말하기만 하면 된다.

C는 다른 언어와 마찬가지로 흠이 있다. 일부 연산자는 잘못된 우선 순위를 가지며, 일부 구문은

더 나을 수도 있다. 그럼에도 불구하고, C는 매우 효과적이고 다양한 언어들을 위한 표현력을 증명했다.

프로그래밍 응용 프로그램

이 책은 다음과 같이 정리되어 있다. 1장은 C의 중심부에 관한 자습서다. 그 목적은 독자를 다음과 같이 시작하는 것이다.

우리는 새로운 언어를 배우는 방법이 그 안에 프로그램을 쓰는 것이라고 강하게 믿기 때문에 가능한 한 빨리. 튜토리얼

프로그래밍의 기본 요소에 대한 실무 지식을 가정한다; 컴퓨터나 에 대한 설명은 없다.

컴파일도 n=n+1과 같은 표현의 의미도 없다. 비록 우리는 가능한 한 유용함을 보여주기 위해 노력했지만

프로그래밍 기법, 이 책은 데이터 구조와 알고리즘에 대한 참조 작업이 아닌, 강제적으로 필요한 경우

우리는 언어에 집중해 왔다.

2장에서 6장까지는 C의 다양한 측면을 보다 상세하게, 오히려 1장보다는 형식적으로 논한다.

고립된 단편보다는 완전한 프로그램의 예에 여전히 중점을 두고 있다. 제2장에서는 기본적인 데이터 유형을 다루고 있다.

연산자와 표현식. 제3장 위협 흐름 제어: if-else, switch, while, for 등 제4장에서는 기능 및

프로그램 구조 - 외부 변수, 스코프 규칙, 다중 소스 파일 등 - 그리고 전처리기 터치.

제5장에서는 포인터와 어드레스 산수를 논한다. 6장은 구조와 결합을 다룬다.

7장은 운영 체제에 대한 공통 인터페이스를 제공하는 표준 라이브러리를 설명한다. 이 라이브러리가 정의됨

ANSI 표준에 의해, C를 지원하는 모든 기계에서 지원됨을 의미하므로, 그것을 입력, 출력하기 위해 사용하는 프로그램들

그리고 다른 운영 체제 액세스는 변경 없이 한 시스템에서 다른 시스템으로 이동할 수 있다.

+ Recent posts