Notice
Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

SYDev

[객체지향프로그래밍] 1주차 정리 본문

3학년 1학기 전공/객체지향 프로그래밍

[객체지향프로그래밍] 1주차 정리

시데브 2024. 3. 6. 15:40
경희대학교 컴퓨터공학부 이대호 교수님의 객체지향프로그래밍 수업 자료를 참고한 정리본

 

Software

  • software: 명령어 set
  • 2진수 해독(디코딩), 2진수로 작성(인코딩) 
  • FORTRAN, COBLE, C, Python, Java, ...

 

Programming Languages

- Machine Language

  • Low-level language
  • 직접적으로 컴퓨터를 컨트롤 -> CPU, ALU(Arithmetic Logic Unit), Memory, ...

- Assembly Language

  • Low-level language
  • Symbolic language -> 기호화된 언어
  • Assembler -> 기호화된 언어를 번역해주는 역할 

- High-level Language

  • Use natural language
  • Compiler(C++), Interpreter(line-by-line, ex: python)
  • C, C++, Python, Java, Fortran, ...

Development Tools

- Editors -> 코드 작성(source code)

- Compilers

  • preprocessor(source code -> enhanced source code), linux -> windows 뭐 이런 느낌
  • compiler(enhanced source code -> obj code)
  • linker(obj codes, libraries -> 실행 파일)
  • compile + link = Build

- Debuggers

  • Checking coding errors

- Profilers

  • Dynamic Program Analysis(memory, complexity)

 

위 4가지를 합친 프로그램 -> IDEs(Integrated Development Environments) 

ex) VS, Xcode, ...

 

 

Modern C++

  • Object-oriented Language(객체지향언어) + 절차지향 프로그래밍도 가능
  • 1972 C -> 1982 C++ -> C++ 2.0 -> C++ 98 -> C++ 03
  • C++ 11, C++ 14, C++ 17, C++ 20, C++ 23

Simple C++ Programming

- namespace -> named scope (큰 프로젝트에서 이름 충돌을 방지)

- using -> namespace를 생략 가능하게 함

- std::cout -> std의 operator <<

 

#include <iostream> //preprocessing directive(전처리문), iostream -> input, output stream

using namespace std;

int main() {
    cout << "Programming" << endl;
    
    return 0;   //c++에서는 생략해도 자동으로 생성 (main에서만)
}