Programming

jplendor·2022년 8월 6일
0

Machine Language (기계어)

  • a low-level language made up of binary numbers or bits that a computer can understand.
  • The only language that the computer understands
  • Computer programmes are created in one or more programming languages (for example, Java, C++, or Visual Basic).
  • The program code(programming languages) needs to be compiled through which the computer can understand it
  • 아래는 "Hello World"를 Machine Language로 표현한 예시
    01001000 01100101 01101100 01101100 01101111 00100000 01010111 01101111 01110010 01101100 01100100  

Assembly Language (어셈블리어)

  • 컴퓨터 프로세서를 다루기 위한 가장 기본적인 언어
  • 오로지 CPU가 수행해야 할 직접적인 작업에 관한 내용만을 명령내릴 수 있다.
  • 일반적으로 함수나 변수와 같은 편의를 위한 고차원적인 기능들은 가지고 있지 않다.
  • Machine Language와 같은 구조나 명령어들을 갖고 있지만, 소프트웨어 개발자는 숫자가 아닌 이름을 이용해서 작업을 할 수 있다. (사람이 읽고 이해할 수 있는 방식으로 작업할 수 있다.)
  • 단점은 컴퓨터가 수행하는 모든 작업을 세부적으로 명시해주어야 한다는 것이고, 장점은 소프트웨어 개발자가 컴퓨터의 모든 작업 실행에 대한 전권을 갖고 있다는 것이다.
  • CPU의 내부 구조와 직접적으로 작동하기 때문에 low-level language라고도 한다. (기계어와 명령어가 1:1로 대응되는 단어들로 구성되어 있다.)
  • high-level language(Python, Java, Javascript, Clojure 등)보다 컴파일, 실행 속도가 빠르다.

Interpreted Language & Compiled Language

  • High-level Language는 크게 두 부류로 나눌 수 있다.
  • [비유] 한국어(프로그래밍 언어)를 영어(기계어)로 번역(컴파일)할 때, 두가지 방법으로 가능하다.
    • 1) 한국어로 쓴 편지를 가져가서 한 문장씩 읽으면서 동시에 번역해주기
    • 2) 한국어로 쓴 편지를 모두 영어로 번역해서 작성하고 전달해주기
  • 1) Interpreted Language
  • 2) Compiled Language

CLI & GUI

  • User Interface(UI): 사용자가 전자기기나 컴퓨터를 사용할때 어떻게 사용해야 하는지
  • CLI: Command Line Interface
    • 터미널이나 콘솔창을 통해 명령어를 입력하여 작업을 수행
    • 장점 - 정확하고 섬세한 명령 가능, 메모리 소비 낮음, 속도 빠름
    • 단점 - 작업 수행 난이도 높음 (명령어 대한 지식 필요, 오타 하나가 굉장히 큰 차이를 만들 수 있다, 명령어들이 보통 직관적이지 않다)
  • GUI: Graphical User Interface
    • 시각적인 그래픽이나 이미지 혹은 아이콘 등을 이용하여 작업을 수행
    • 장점 - 작업 수행 난이도 낮음 (매우 직관적이고 러닝 커브도 높지 않음)
    • 단점 - 세밀함이 떨어짐, 어떤 일련의 절차를 반복하거나 복사하기 힘듬, 메모리 소비 높음, 속도 느림

📕 참고 자료
https://book.vanillacoding.co/starter-kit/
https://www.javatpoint.com/what-is-machine-language
https://www.javatpoint.com/embedded-system-assembly-language

profile
만들기는 재밌어!

0개의 댓글