Introduce To Langauge

게맛살맛게·2021년 12월 2일
0

해석 방법에 따른 언어 분류

Compiler vs Interpreter

  • Compiler
    소스코드 작성 -> 번역 -> 미리 번역된 기계어 -> 실행
    언어 : C, C++,
    장점 : 번역 과정 오류 체크, 실행속도 상향
    단점 : 수정 시 컴파일 필수

  • Interpreter
    소스코드 작성 -> 실행 -> 해석 -> 즉시 번역
    언어 : Python, JavaScript
    장점 : 즉시 결과 확인 가능
    단점 : 오류 가능성 높음, 실행속도 느림

절차적 방식 vs 비절차적 방식 / OOP

  • 절차적 방식
    Top-Down 방식으로 순서대로 읽어 실행
    프로그램이 커지고 복잡 --> 유지보수에 문제 발생

  • 객체지향(OOP) 방식
    현실 세계를 모방하여 객체들 만드로 객체 사이의 관계를 규명


Java Language

Version

JDK 11
JDK 8

Concept

Write Once, Run Everywhere
- 어느 환경에서도 작동 하도록

Keywords

  • PL
  • For Client-Server
  • Runs on all Platforms (w/ JVM)
  • Syntax : derived from c/c++
  • Object-Oriented
  • Statically Typed (형 변환이 자유롭지 않음)

Features

  1. 높은 이식성

    • JRE > JVM
    • compiler가 소스코드를 .class 형태의 바이트코드 생성
    • JVM이 바이트 코드를 해석
  2. 객체지향

    • 객체지향 개발 : 서로 협력하는 다수의 객체들을 조합하는 개발 방식
      • 부품-완제품의 관계 / 객체는 언제든 교체 가능
    • 캡슐화, 상속, 다형성 지원
  3. 단순한 문법과 개발 편의성

    • C/C++ Syntax와 C++의 객체지향에서 영향
      이해하기 어려운 포인터, 다중상속 등은 제외 (장점만 받아들이고 어려운 부분 제거)
    • 메모리 관리를 자바가 직접관리
      개발자가 직접 메모리에 접근 x / Garbage Collector가 사용하지 않는 메모리 제거
  4. 그 외 특징들

    • 동적 로딩 (필요한 시점에 객체 로딩 / 변경 필요 부분만 수정)
    • 풍부한 오픈소스 라이브러리, 생태계
    • 범용 개발 언어

※ Java의 위기

  • 다양한 플랫폼과 언어의 등장
  • JVM 언어의 약진 (Scala, Groovy, Kotlin 등 JVM에서 구동 가능한 언어들)

profile
IT 기술블로그

0개의 댓글