프로그래밍 언어

  • 프로그램 작성 언어
  • 기계어
    • 0, 1의 이진수로 구성된 언어
    • 컴퓨터의 CPU는 기계어만 이해하고 처리 가능
  • 어셈블리어
    • 기계어를 명령을 ADD,SUB,MOVE 등과 같은 표현하기 쉬운 상징적인 단어인 니모닉 기호로 일대일 대응시킨 언어
  • 고급언어
    • 사람이 이해하기 쉽고, 복잡한 작업, 자료구조, 알고리즘을 표현하기 위해 고안된 언어
    • Pascal, Basic, C/C++, JAVA, C#
    • 절차 지향 언어와 객체 지향 언어

절차 지향 언어 VS 객체 지향 언어

절차 지향 언어

  • 장점
    • 절차에 따른 순차적인 처리가 중시 되는 언어
    • 프로그램 전체가 유기적으로 연결되어 있음
    • 컴퓨터의 처리구조와 유사헤서 실행속도가 빠름
    • C언어
  • 단점
    • 유지보수의 어려움
    • 엄격하게 순서가 정해져 있어 비효율적
    • 디버깅이 어려움

객체 지향 언어

실제 세계를 모델링하여 소프트웨어 개발 (캡슐화 상속 다형성 추상화)

  • 장점
    • 코드의 재활용성이 높은
    • 코딩이 절차지향보다 간편함
    • 디버깅이 쉬움
  • 단점
    • 느린 개발 속도
    • 느린 실행 속도
    • 높은 난이도

자바

  • 1991년 그린 프로젝트
    • 선마이크로시스템즈의 제임스 고슬링에 의해 시작
    • 가전 제품에 들어갈 소프트웨어를 위해 개발
  • 목적
    • 플랫폼 호환성 문제 해결
      • 기존 언어로 작성된 프로그램은 PC, 유닉스, 메인 프레임 등 플랫폼 간에 호환성 없음
      • 소스를 다시 컴파일하거나 프로그램을 재 작성해야 하는 단점
    • 플랫폼 독립적인 언어 개발
      • 모든 플랫폼에서 호환성을 갖는 프로그래밍 언어 필요함
      • 네트워크, 특히 웹에 최적화된 프로그래밍 언어의 필요성 대두
    • 메모리 사용량이 적고 다양한 플랫폼을 가지는 가전 제품에 적용
      • 가전 제품 : 작은 량의 메모리를 가지는 제어 장치
      • 내장형 시스템 요구 충족
    • 오크 (OAK) = 초기 이름
      • 인터넷과 웹의 엄청난 발전에 힘입어 퍼지게 됨
      • 웹 브라우저 Netscape에서 실행

WORA(Write Once Run Anywhere)

  • 한번 작성된 코드는 모든 플랫폼에서 바로 실행
  • C/C++ 기존 언어가 가진 플랫폼 종속성 극복
  • 네트워크에 연결된 어느 클라이언트에서나 실행

 

WORA를 가능하게 하는 자바의 특징

  • 바이트 코드 (byte code)
    • 자바 소스를 컴파일한 목적 코드
    • CPU에 종속적이지 않은 중립적인 코드
    • JVM에 의해 해석되고 실행 됨
  • JVM(Java Virtual Machine)
    • 자바 바이트 코드를 실행하는 자바 가상 기계(소프트웨어)
 
출처
명품 JAVA Programming, 개정 4판 [교재]

'Study > JAVA' 카테고리의 다른 글

[JAVA] main() 메소드  (0) 2023.11.29
[JAVA] 주석문  (0) 2023.11.26
[JAVA] 클래스 만들기  (0) 2023.11.22
JAVA 메소드 오버라이딩 vs 메소드 오버로딩  (0) 2023.11.20
JAVA Eclipse 설치 방법 (JDK 설치 포함)  (0) 2023.09.12

+ Recent posts