컴퓨터 언어란 사람과 컴퓨터의 커뮤니케이션 수단의 일종이다
학습목표
프로그래밍 개요
통합개발환경(ide) 구축
컴퓨터 언어의 필요성과 사용 목적
c언어 특징 파악
프로그래밍 개발을 위한 환경 구축
프로그램 : 하드웨어를 동작시켜 특정 작업을 수행하는 소프트웨어 -> 다양한 종류의 컴퓨터 프로그램, 스마트폰 앱
프로그래밍 : 인간이 컴퓨터에 명령하는 작업지시서를 만드는 작업
프로그래밍 언어 : 작업 지시에 사용되는 언어
[프로그래밍의 정의]
고급 언어 : high level : 사람이 이해하기 쉬운 언어 : c, c++, c#, java, pascal, fortran, cobol, python
저급 언어 : low level : 기계 중심의 언어 : 기계어, 어셈블리어
[특징]
저급 언어 : cpu가 처리하는 명령어와 1:1 대응!
cpu마다 사용하는 명령어가 다르다
cpu 내부 동작을 이해해야 프로그래밍이 가능하다
하드웨어에 따른 별도 프로그래밍이 요구된다
고급언어: 해당 하드웨어에 맞게 번역하는 프로그래밍을 이용하기에
유지보수가 비교적 쉽다 -> 사람이 이해하기 쉬운 언어이기에
cpu 동작을 자세히 알아야 할 필요없다 -> 중간에서 자동으로 해준다
하드웨어마다 별도의 프로그래밍이 불필요하다
[프로그래밍 절차]
대화가 통하지 않은 두 객체에 대해 통역사가 필요한 것처럼 프로그래밍 언어에서도 마찬가지이다
컴퓨터는 인간의 언어를 이해할 수 없다
그렇기에 통역사처럼 번역기란 프로그램이 필요하다 (나의 이야기를 컴퓨터가 이해할 수 있는 언어도 변환하여 동작한다)
컴파일러 : 컴퓨터가 이해하는 언어로 번역하는 프로그램
컴퓨터가 이해하는 언어는 0, 1 2진수 뿐
전기가 흐른다 흐르지 않는다 같은 2진 논리만 알기 때문에 인간이 이해하는 형태의 명령문을 기계가 이해할 수 있는 형태로 만들어줘야 하는데 이렇게 번역해주는 역할을 하는 프로그램이 컴파일러이다
모든 프로그램은 컴파일러에 의해 기계가 이해하는 형태로 번역되어 기계에서 실행
되는 형태로 동작한다
윈도우, 맥 등 동일한 문장을 기계마다 이해하는 게 다르다 (다 다른 2진 코드를 입력해야만 동작) 서로 다른 코드를 가지고 이해하기에 (중국, 일본, 스페인 사람처럼 서로 다른 언어를 사용하듯이, 이해하는 언어 방식이 다르듯이 기계마다 번역 작업을 해주는 것이 컴파일러) 앞으로 컴파일러의 역할은 중요하다
번역해주는 컴파일러때문에 기계마다 별도의 프로그램이 불필요하다
[c언어 프로그래밍 절차]
소스 파일.c -> 컴파일러하여 오브젝트 파일.obj (기계어가 인식하는 기계어 코드로 만들기) -> 이걸 linker라는 프로그램으로 실행 파일.exe (.exe : 윈도우 환경)
[c언어 특징]
1972년 벨 연구소의 데니스리치와 켄톰슨에 의해 개발
B언어를 기반으로 하여 개발되었다
고급 언어인 c언어로 작성된 최초의 운영체제가 unix
c언어의 표준은 ANSI(american national standart institute) C
간결하고 효율적인 언어이다 (포인터와 메모리 관리 기능, 작은 크기의 프로그램, 빠른 실행 속도)
우수한 이식성 (다양한 cpu와 플랫폼의 컴파일러를 지원) -> 하드웨어에 따라 별도의 프로그램이 필요없다
다소 배우기 어렵다 (비트 포인터 메모리 할당 해제 등의 관리)
[통합개발환경(IDE) 소개]
프로그램 개발에 필요한 s/w
텍스트 편집기, c 컴파일러
winGW - windows 설치
[통합개발환경 소개]
integrated development environment
프로그램 개발 절차의 하나의 프로그램에서 여러가지를 수행되도록 제공하는 환경 (프로그램)
소스 코드 작성하고 컴파일하고 링크하고 실행하고 디버깅 하는 등을 하나의 프로그램에서 수행하게 하는 것
IDE
visual studio (ms에서 만든 것)
dev c++
code:blocks
ide one - 웹 브라우저에서 개발할 수 있는 환경을 제공
'online > programming basic' 카테고리의 다른 글
반복문 (0) | 2022.09.12 |
---|---|
조건문 (0) | 2022.09.11 |
연산자 (0) | 2022.09.11 |
변수와 데이터타입 (0) | 2022.09.04 |
프로그램 기본 구조 (0) | 2022.09.03 |