2주차

2025. 3. 16. 19:09프로그래밍1및실습

프로그래밍 언어

  • Algorithms: Developed by people
프로그래밍 언어에는 3가지의 언어가 존재한다.

High-level language : c++, c, C#, Java, python...

Assembly language

Machine language
  • Computers: Execute algorithms

고급 언어 & 저급 언어

고급 언어(High-level language)
-사람이 이해하기 쉬운 프로그래밍 언어
-기계가 직접 실행하기 전에 컴파일러나 인터프리터를 활용하여서 기계어로 변환

ex) C++, Python, Java
저급 언어(Low-level language)
-하드웨어를 실행할 수 있는 하드웨어와 밀접하게 연결된 언어
-특정 CPU나 시스템에서 작동할 가능성이 있음

ex) Machine language, Assembly language

C Programming Language

  • 1972년 Dennis Ritchie 개발(Ken Thopson과 Unix os를 개발하기 위해 만들어 짐)
장점

효율성
-조밀하고 빠름
-일부는 assmbly language 수준으로 fine-tune가능함

이식성
-특정 시스템에서 설계된 코드가 다른 시스템에서도 쉽게 실행 가능

Powerful & Flexibility
-대부분 Unix OS code가 C로 작성됨
-다양한 프로그래밍 언어의 컴파일러나 인터프리터가 C언어로 작성됨

프로그래머 중심 설계
-하드웨어에 접근 가능(OS service 호출)
-Memory를 bit 단위로 접근/조작 가능함
-다양한 종류의 연산자 제공
단점

-문법이 복잡함
-배열의 bound checking(배열의 인덱스 유효성) 검사의 부재
-다양한 용법으로 사용되는 symbol 존재

C Programming language 작성

  • C source file
Header file: 일반적으로 확장자. h 사용
Source file: 일반적으로 확장자 .c 사용
Text editor: Vim, VS code, Visual code,....
  • Code 작성 시 사용 가능한 문자
영어 대소문자, 숫자, 특수 문자, 공백 문자 등이 사용가능함

특수한 문자들의 경우 escape character와 조합

ex)
-\' → '
-\" → "
-\0 → null 문자
  • 식별자
변수, 함수, 사용자 정의 타입 등의 이름

식별자 규칙
-영문 소문자, 대문자, 숫자, _로 구성
-첫 번째 글자는 숫자가 아니어야 함
-대소문자 구분
-식별자의 길이는 제한 없음

지정된 keyword는 식별자로 사용 불가

ex)
auto, break, case, char, continue, defualt, do....
  • Compile
 Source code를 object code로 변환
컴파일 됨
ex)
ss1.cpp 파일을 ss1.obj로 변환해 줌

Object file
-Computer가 이해할 수 있도록 만든 파일
  • Linking
Object code들을 실행 파일로 변환

ex)
ss1.obj파일을 ss1.exe 파일로 변경

Linker에서 작업 수행
  • Debugging
Code 내의 bug 수정
디버깅

Debugger 사용해서 디버깅함

일련의 과정으로 실행파일까지 도달하게 됨

Program output

  • Source 파일 예시
#include<stdio.h>

int main(void){
        printf("hello world!\n");
        return 0;
}
  • 실행 결과
hello world

#include <stdio.h>

  • 전처리기 (Preprocessor)
C 컴파일러에 내장
#으로 시작하는 지시어: 전처리기에서 처리

#include

  • 전처리기가 header file stdio.h의 복사본을 포함시킴
stdio.h
C system에서 제공
standard input/output functions의 선언에서 활용

int main(void)

main() 함수를 정의하는 영역의 첫 번째 줄

int, void
-keywords, or reversed words
-special meanings to the compiler

printf()

  • 화면에 출력해 주는 함수
  • 세미콜론으로 끝남

return 0;

  • 값을 반환하는 명령어
  • 운영체제에 0을 리턴해줌 (에러 없이 종료됨)

변수, 표현식, 할당

주석
/*...*/ 으로 주석 처리
Compiler에서 변환하지 않고 무시함
주석 처리
// 을 활용해서도 주석 처리 가능

변수 선언

int h;


-변수 h 를 integer자료형으로 선언
-선언과 구문은 세미콜론으로 끝남

대입 연산

int h=100;
int h1=(h*100);


- = 을 활용하여서 대입 연산을 적용함
- 구문에서 등호 오른쪽에 있는 문장의 연산 결과값이 변수에 저장해줌.

서식 문자열
% f: format, conversion specification
-남은 인자들과 매칭됨

input
printf("%f, %f", 42.3, 42.5);​


output

42.3, 42.5​
소수점
-부동 소수점 상수임을 나타낸다.

세 가지 유형
-float, double, long double
-이러한 자료형에는 소수점에 제한이 있기 때문에 더 섬세한 작업을 위해서는 python과 같은 언어를 사용할 필요가 있음.

표현식 연산
7.0/2 => 3.5
7/2 => 3

위와 같은 방식으로 표현되기 때문에 소수점의 유무는 중요하다.

'프로그래밍1및실습' 카테고리의 다른 글

배열과 문자열  (0) 2025.05.01
4주차  (0) 2025.04.30
3주차(2)  (0) 2025.04.30
3주차  (0) 2025.04.08
1주차  (0) 2025.03.13