프로그래밍/CS 개념

[CS 기초] Managed vs Unmanaged 언어

2021. 4. 16. 02:27
목차
  1. Managed 언어
  2. Unmanaged 언어

Managed 언어

Managed 언어란 특정 런타임 환경 내에서, 프로그램을 생성하도록 설계된 언어를 의미한다.

이러한 언어들은 대부분 인터프리터나, VM(Virtual Machine)을 지원하고, 프로그램의 코드가 이 위에서 동작하도록 설계되어 있다. 소스코드를 컴파일하는 과정은 VM 위에서 이루어지고, 실행파일 또한 VM 위에서 동작하게 된다. 

추가로 VM은 메모리 관리(Garbage Collector .. ), 운영체제 차원의 보안성을 위한 관리 등의 역할을 수행한다.

Python, JavaScript, Java, C# 등등의 언어가 managed 언어에 속한다.

 

 

Unmanaged 언어

따로 VM과 같은 런타임 환경의 관리를 받지 않는 모든 언어는 unmanaged 언어라고 할 수 있다.

우리가 아는 일반적인 컴파일을 수행하고, 컴파일을 통해 bytecode를 생성하고, 실행파일을 생성한다.

C, C++ 과 같은 언어가 이에 해당한다.

 

 

 

언어별 컴파일 과정

C, C++

소스코드 -> 전처리기 -> 컴파일러 (정적 컴파일) -> 링커 -> 실행파일 -> 실행

                         컴파일 타임                                       런타임

                                                        

Java

JVM(Java Virtual Machine)

소스코드 -> 컴파일러 (정적 컴파일) -> .class files (중간파일) ->

        컴파일 타임

실행 (JVM 동작) -> Just-In Compiler (동적 컴파일) -> NativeCode

        런타임

 

C#

CLR(Common Language Runtime)

 

소스코드 -> Language Compiler (정적 컴파일) -> MSIL Code, Metadata (중간파일) ->

        컴파일 타임

실행 (CLR 동작) -> Just-In Compiler (동적 컴파일) -> NativeCode

        런타임

 

Python

Python Interpreter(CPython, PyPy)

 

소스코드 -> Python Interpreter (동적 컴파일, 인터프리팅) -> 실행

 

 

JavaScript

JavaScript Engine(V8)

 

 

 

 

참고

softwareengineering.stackexchange.com/questions/164332/managed-languages-vs-compiled-language-difference/164336

 

Managed Languages vs Compiled Language difference?

I get confused when people try to make a distinction between compiled languages and managed languages. From experience, I understand that most consider compiled languages to be C,C++ while managed

softwareengineering.stackexchange.com

 

www.guru99.com/java-virtual-machine-jvm.html

 

JVM | What is Java Virtual Machine & its Architecture

In this tutorial, you will learn - Display Current Date in Java SimpleDateFormat: Parse and Format...

www.guru99.com

 

www.c-sharpcorner.com/UploadFile/puranindia/interview-question-on-net-framework-or-clr/

 

.NET CLR Interview Questions and Answers

In this article, we will go through the important .NET CLR Interview questions and answers.

www.c-sharpcorner.com

 

'프로그래밍 > CS 개념' 카테고리의 다른 글

[CS] 메모리 구조  (0) 2021.04.17
[CS 기초] 정적타입 언어 vs 동적타입 언어  (0) 2021.04.16
  1. Managed 언어
  2. Unmanaged 언어
'프로그래밍/CS 개념' 카테고리의 다른 글
  • [CS] 메모리 구조
  • [CS 기초] 정적타입 언어 vs 동적타입 언어
AlgorFati
AlgorFati
algorfati@gmail.com
AlgorFati
AlgorFati의 개발 기록
AlgorFati
전체
오늘
어제
  • 분류 전체보기 (111)
    • 경제 (0)
    • 서비스 운영 (3)
    • 시행착오 (1)
    • 프로그래밍 (50)
      • CS 개념 (3)
      • 알고리즘 (32)
      • C++ (7)
      • C# (3)
      • OS (1)
      • Python (4)
    • 사업 (0)
    • Back End (1)
    • 생활 (1)
    • 정보 보안 (0)
    • 게임 개발 (1)
    • Tool (2)
    • 기술 (0)
    • AI (2)
    • 게임 엔진 (50)
      • Unreal (36)
      • Unity (14)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • data asset
  • 코딩테스트
  • geom
  • unity
  • pathfinding
  • debug draw
  • 카카오
  • Editor
  • 비동기 프로그래밍
  • 취업
  • 대기업
  • aggregate geom
  • asset to editor
  • Nullable
  • Serialize
  • Collision
  • 알고리즘
  • TickGroup
  • Slate
  • ml agent
  • hp bar
  • property editor
  • Animation
  • navmesh
  • 프로그래머스
  • Event Handling
  • 불변성
  • customize
  • Unreal
  • c#

최근 댓글

최근 글

hELLO · Designed By 정상우.
AlgorFati
[CS 기초] Managed vs Unmanaged 언어
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.