프로그램: 특정한 작업을 수행하도록 설계된 명령어의 리스트
컴퓨터에게 "적당히" 일을 시킬수 없다
문제를 해결하는 방법을 사람이 완벽하게 고안하고 지시해야한다.
컴퓨터가 바로 알아듣는 언어는 2진수 단 한가지
2진수 형태의 언어를 기계어라고 한다.
기계어는 인간한테는 상당히 불편한 언어이기때문에 좀 더 편리한 언어가 필요했을거고 사람들은 인간의 언어에 더욱 근접한 프로그래밍 언어를 만들었다.
기계어
컴퓨터가 바로 이해할 수 있는 단 하나의 언어
어떠한 프로그래밍 언어라도 결국은 기계어가 된다.
어셈블리 언어
cpu의 명령어들을 기호(symbolic name)로 표기할 수 있었다 .
어셈블러라는 프로그램이 기호를 2진수로 변환한다.
기호 이름과 cpu의 명령어가 일대일 대응되고 컴퓨터의 cpu가 달라지면 실행이 불가능해 저급언어라고 불린다.
고급 언어
ex) C ,Java ...
어셈블리 언어가 기계어보다는 편리하였지만 아직도 인간이 사용하기에는 너무나 번잡한 언어 ----> 고급 언어의 필요성
고급 언어가 개발되서 특정한 컴퓨터의 구조에 억매이지 않아도 되는 구조
프로그램을 작성하기 쉽고, 작성한 프로그램을 이해하고 유지 보수하기 쉽다.
컴파일러 : 고급언어의 문장을 컴퓨터가 이해할 수 있는 기계어로 바꾸는 특별한 프로그램
C언어는 많은 장점이 있다 . 가장 중요한 장점은 C언어가 현장에서 일하는 프로그래머에 의하여 만들었다는 사실이다.
1969~1973년에 걸쳐서 AT&T의 벨 연구소에서 데니스 리치에 의하여 탄생함
C언어는 꼭 필요한 기능만이 들어 있고 모든 표기법이 아주 간결하게 되어 있다.
간결성은 C언어의 핵심적인 특징이다.
효율적이라는 의미는 C로 작성된 프로그램이 크기가 작으며 실행 속도가 빠르고 메모리를 효과적으로 사용한다는 것을 의미한다.
임베디드(내장) 프로그램은 대부분 C언어로 개발된다.
ex) 스마트폰 ,TV,세탁기 ...
이식성이란 한번 작성된 프로그램을 다른 CPU가 가지는 하드웨어로 쉽게 이식할 수 있다는 뜻이다.
토글이 적용이 안된다 ㅠ,ㅠ ;;