본문 바로가기
Go 왕초보 스터디

[묘공단] 2. 프로그래밍 언어

by yeongki0944 2024. 3. 28.

[Must Have] Tucker Go 언어 프로그래밍

 

OP 코드

[Youtube] What Is Instruction Format ? | Addressing Mode, OPCODE , OPERAND Explained

구성 요소 설명 예시
Mode 명령어가 수행될 때 사용되는 주소 지정 모드 레지스터, 직접 주소
Opcode 수행할 연산의 종류를 지정하는 부호 ADD, SUB, MOV 등
Operand 명령어에서 사용되는 피연산자의 위치나 값 레지스터 번호, 주소 등

 
 
 

어셈블리어

어셈블러는 번역하는 과정에서 필요한 모든 정보를 데이터베이스에 저장하고 필요 시 불러 사용합니다.
어셈블리어로 작성된 소스 프로그램을 기계어(0과 1로 구성된 언어)로 번역(변형)하고 로더(실행 가능한 파일로 만드는 프로그램)에 필요한 정보를 생성하는 역할을 합니다.

OS] 어셈블러(Assembler) : 네이버 블로그

고수준 언어

고수준 언어는 사람이 이해하기 쉽도록 설계된 프로그래밍 언어

프로그래밍 언어의 스펙트럼

특징 설명 예시
가독성 사람이 이해하기 쉽고 자연어에 가까운 문법을 사용하여 코드를 작성할 수 있도록 합니다. Python, Java, C#, JavaScript
추상화 하드웨어와의 상호작용을 추상화하여 프로그래머가 하드웨어의 세부 사항에 대해 신경 쓰지 않고 프로그래밍할 수 있습니다. Python, Java, C#
이식성 특정 플랫폼에 종속되지 않고 여러 플랫폼에서 동작할 수 있도록 합니다. Java, Python, C
생산성 향상 더 높은 수준의 추상화로 인해 개발 시간을 단축하고 프로그래밍의 생산성을 향상시킵니다. Python, Ruby, JavaScript

 

 

 

정적 컴파일 언어 vs 동적 컴파일 언어

정적 컴파일 언어

  • 미리 기계어로 변환 → 실행

장점

  • 빠르게 실행 (실행시 변환과정 X)
  • 타입 에러를 컴파일 시점에서 발견 가능

단점

  • CPU 아키텍처, OS에 맞춰 빌드를 해야됨.
  • 호환성이 안좋음

동적 컴파일 언어

  • runtime 때 → 기계어로 변환
  • 정적 컴파일언어의 호환성 단점 → 해결하기 위해

Go - 정적 컴파일 언어

  • 내부 환경 변수 → 변경 → 다양한 플랫폼에 맞춰 빌드 가능

 

약 타입 vs 강 타입

weakly vs strongly

Go → 강 타입 → 자동 타입 변환 지원 X → 최강 타입

까다롭지만, 타입으로 인한 문제 발생이 없음

 

GC

  • Go → GC 제공 → 사용자가 일일이 메모리 관리하지 않아도 된다.
  • Go의 GC는 매우 발전된 형태 → GC로 인한 성능손실이 크지 않다.