김솔빛나라

2010년 9월 22일 수요일

C언어와 JAVA

나는 1장에 나오는 여러 주제들 중 프로그램 언어에 대해 글을 써보려 한다.
특히 2학기에 배우는 과목들을 좀 더 깊고 효과적으로 배우고 공부하기 위해서 이번 과제를 기회 삼아 1학기 때 처음 배운 C 언어와 현재 배우고 있는 JAVA 언어를 조사해 알아볼 생각이다.

<C언어>

C 프로그래밍 언어1970년대켄 톰슨데니스 리치가 당시 새로 개발된 유닉스 운영체제에서 사용하기 위해 만든 프로그래밍 언어이다. 켄 톰슨은 BCPL언어를 필요에 맞추어 개조해서 "B"언어(언어를 개발한 벨 연구소의 B를 따서)라 명명했고, 이 B언어에서 C언어가 탄생했다. 유닉스 시스템의 바탕 프로그램은 모두 C로 씌여졌고, 많은 운영체제의 커널도 또한 C로 만들어졌다. 오늘날 많이 쓰이는 C++는 C에서 객체 지향형 언어로 발전된 것이다. 또 다른 다양한 최신 언어들도 그 뿌리를 C에 두고 있다.

소개 [편집]
C는 실질적으로 모든 컴퓨터 시스템에서 사용할 수 있는 프로그래밍 언어이다. 예를 들어 BASIC등과는 달리 다양한 플랫폼에서 ANSI C의 정의에 따르는 비교적 동일한 구현이 가능하다. 모든 C 시스템에는 정규화된 표준 C 라이브러리가 존재한다. 이런 이유와 생성된 프로그램의 높은 성능이 아직까지도 C언어가 사랑받는 이유중 하나이다.
그러나 C언어가 기술적으로 보아 현재 기술 수준에 부합하지 않는다는 의견이 있으며, C를 "이식가능한 고급 어셈블러"정도로 낮추어 부르기도 한다. 이는 반면 오늘날의 거의 모든 널리 쓰이는 운영체제 커널이 C를 이용해 구현된 이유이기도 하다. C는 시스템 프로그램 개발에 매우 적합하나, 응용 프로그램 개발에도 많이 쓰인다.

역사 [편집]


<JAVA 언어>

자바(Java, 문화어: 쟈바)는 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이며, 썬 마이크로시스템즈에서 무료로 제공하고 있다. 1991년 그린 프로젝트(Green Project)라는 이름으로 시작해 1995년에 발표했다. 처음에는 가전제품 내에 탑재해 동작하는 프로그램을 위해 개발했지만 현재 웹 어플리케이션 개발에 가장 많이 사용하는 언어 가운데 하나이고, 모바일 기기용 소프트웨어 개발에도 널리 사용하고 있다. 현재 버전 6까지 출시했다.
자바의 개발자들은 UNIX 기반의 배경을 가지고 있었기 때문에 문법적인 특성은 파스칼이 아닌 C++의 조상인 C 언어와 비슷하다.[1] 자바를 다른 컴파일언어와 구분짓는 가장 큰 특징은 컴파일된 코드가 플랫폼 독립적이라는 점이다. 자바 컴파일러는 자바 언어로 작성된 프로그램을 바이트코드라는 특수한 바이너리 형태로 변환한다. 바이트코드를 실행하기 위해서는 JVM(자바 가상 머신, Java Virtual Machine)이라는 특수한 가상 머신이 필요한데, 이 가상 머신은 자바 바이트코드를 어느 플랫폼에서나 동일한 형태로 실행시킨다. 때문에 자바로 개발된 프로그램은 CPU운영체제의 종류에 관계없이 JVM을 설치할 수 있는 시스템에서는 어디서나 실행할 수 있으며, 이 점이 웹 애플리케이션의 특성과 맞아떨어져 폭발적인 인기를 끌게 되었다.

역사 [편집]
자바 언어는 1991년 6월 셋톱 프로젝트를 위해 제임스 고슬링(James Gosling)이 만들었다. 이 언어는 원래 제임스 고슬링의 오피스 밖에 있던 오크 나무를 따라 오크(Oak), 혹은 그린(Green) 이라고도 불렀으나 단어 리스트 중 무작위로 뽑은 자바(Java)를 선택했다. 고슬링의 목표는 C/C++ 스타일의 언어와 가상 머신을 구현하는 것이었다. 첫 공개 자바 버전은 1995년의 자바 1.0 이었다. 한번 쓰고 어느 곳에도 실행 "Write Once, Run Anywhere" 하는 것을 약속하였고 인기 플렛폼에 무료 런타임을 제공하였다. 이 플랫폼은 꽤 안정성을 지녔고 보안 시스템은 여러 설정을 통해 네트워크 및 파일 접근을 통제할 수 있었다. 대부분의 브라우져들은 곧 자바 애플릿(Java Applet) 을 웹 페이지 안에서 실행 할 수 있었고 자바의 인기는 급상승했다. 자바 2 (JDK 1.2 ~ 1.4) 의 출현으로 여러 다양한 플렛폼에서 사용 할 수 있는 설정(Configuration) 들을 만들었다. 예를 들어 J2EE 는 엔터프라이즈 애플리케이션을 실행할 수 있고 J2ME 는 모바일 애플리케이션을 실행할 수 있다. J2SE는 스탠다드 에디션 으로 지정되었다. 2006년에 마케팅 용으로 Java EE, Java ME, Java SE 순서대로 명칭을 바꾸었다.
썬사 (Sun Microsystems) 는 1997년 ISO/IEC JTC1 표준화 그룹, 그리고 나중에는 ECMA International 그룹과 접촉하여 정식 승인 받으려 했으나 곧 이 프로세스에서 철수 했다. 자바는 사실상 (de facto) 의 표준이며 자바 커뮤니티 프로세스(Java Community Process) 를 통해 관리가 된다. 썬사는 자바의 대부분을 무료로 배포하였으나 오픈이 아닌 Proprietary 소프트웨어였다. 썬사는 자바 엔터프라이즈 시스템같은 특정 라이선스를 팔아서 수입을 올렸다. 썬사는 자사의 개발용(Software Development Kit (SDK))과 개발용의 일부인 실행용 (Runtime Environment (JRE)) 을 구분한다. 실행용에는 컴파일러, 유틸리티 및 여러 개발용 헤더 파일이 포함되어 있지 않다.
2006년 11월 13일 썬사는 대부분은 자바를 GPL 라이선스로 소스를 오픈하였으며 2007년 5월 8일 이 과정을 마쳤다. 썬사가 권한을 가지고 있지 않은 대부분의 코어 부분을 오픈하였다.

핵심 목표 [편집]

자바 언어는 다음 5가지의 핵심 목표를 지니고 있다.
  1. 객체 지향 방법론을 사용해야 한다
  2. 같은 프로그램이 여러 운영 체제에서 실행될 수 있어야 한다
  3. 컴퓨터 네트워크 접근 기능이 기본으로 탑재 되어 있어야 한다
  4. 원격 코드를 안전하게 실행할 수 있어야 한다
  5. 다른 객체 지향 언어들의 좋은 부분만 가지고 와서 사용하기 편해야 한다

   출처 :  위키백과사전




<C 와 JAVA 의 차이점>

C언어가 개발되고 여기에 객체지향이라는 개념이 도입되어 C++이라는 언어가 만들어졌다.
JAVA는 전자기기 등의 펌웨어 제어용으로 사용될 목적으로 C++을 기반으로 개발된 언어이다.  JAVA는 C와 C++의 일일이 컴파일 해야 하는 번거로움을 덜기 위해 생겼났다.
C언어는 컴파일을 바로 해당하는 CPU언어로 바뀌게 된다. 코딩한 내용을 바로 해당 CPU가 알 수 있는 언어로 컴파일하게 된다. 그러므로  C가 JAVA보다 실행속도가 빠르다.
그러나 C언어는 CPU에 맞추어 일일이 컴파일 해주어야 한다.
JAVA는 크로스플랫폼을 지원하기 때문에 타겟이 되는 작업환경에 최적화된 컴파일 소스를 지원하지 않는다. 여기서 C의 컴파일 소스에서 20배에서 50배 가량 느린 실행속도를 보인다.
JAVA의 강점은 크로스플랫폼 이외에도 생산성이 크다고 한다. 무수히 지원되고 별다른 수정없이 가져다 쓸 수 있는 라이브러리로 인해 라이브러리를 만드는 시간보다 라이브러리로 무엇을 해야 하는지에 초점을 맞출 수 있어 코딩 시간이 줄어든다고 한다.
JAVA는 운영체제에 따라 컴파일 되는 것이 아니라 바이트 코드라는 중간계 코드를 한 번 더 만들게 되는데, 이 바이트 코드는 컴퓨터가 이해 하지 못 한다.
그래서 자바를 설치할 때 해당 운영체제 별 JVM이 설치되어 CPU가 이해 할 수 있는 명령어로 바꿔 준다. 바이트 코드로 바꾸는 첫 단계가 느리다는 단점이 있지만 그 외에 속도 차는 거의 없다고 한다.

0개의 덧글:

댓글 쓰기

에 가입 댓글 [Atom]

<< 홈