(http://compiler.sangji.ac.kr, kkman@sangji.ac.kr) Overview of the Course Kwangman Man (http://compiler.sangji.ac.kr, kkman@sangji.ac.kr) SangJi University 2012
Class Informations 교과목명 : 고급 프로그래밍언어 실습(1) 개설학과 : 컴퓨터정보공학부 2학년 학점 및 시수 : 2학점 4시간 강의시간 : 화 1,2,3,4교시(01); 목 1,2,3,4교시(02) 이수구분 : 전공선택 연락처 : 연구실위치 : 민주관 1층 109호 연락처 : 033-730-0486, 033-730-0480 E-mail : kkman@sangji.ac.kr Homepage : http://compiler.sangji.ac.kr
강의 개요 및 목표 강의 개요 강의 목표 자바(Java) 프로그래밍 언어 기초 문법 습득 자바 고급 프로그래머를 위한 기초 능력 배양 자바 언어의 응용 기능 습득 및 적합한 응용 분야 적용 강의 목표 자바 언어 활용 능력 습득 자바 언어를 이용한 다양한 응용 프로그래밍 기술 습득 다른 고급 언어에 대한 접근 능력 배양
강의교재 교보문고 저 자 : 창병모, 우균 ISBN : 9788994464411 발행일 : 2010 도서종류 : 국내도서 발행언어 : 한국어 페이지수 : 609
강의 방법 및 평가 강의 방법 평가 C/C++와 유사한 부분은 간략히 소개 Java 문법 및 특징 중심으로 강의 강의 2시간, 실습 2시간 평가 중간(30%), 기말(30%), 과제물(30%), 출석(10%) 과제물 평가 수업중 실습평가: 5% Homework#1 - #14: 20% Term project: 5%
참고. Eclipse 설치 및 활용 방법 JDK(ver 7.x) 설치 및 사용법 숙지 http://www.oracle.com/technetwork/java/javase/downloads/index.html http://compiler.sangji.ac.kr, 강의 및 실습 자료 준비 과제물 제출 공고 : http://compiler.sangji.ac.kr 방법 : 강의 시간에 제출(E-mail 제출, 인정하지 않음) 기한 : 엄격히 준수. 형식 : 별도 공고. 리눅스 서버(compiler.sangji.ac.kr) 운영: 편집기, 자바 컴파일러, 자바 인터프리터, …
왜, Java를 사용하는가 ?
Java, C/C++/C#/…과 뭐가 다르지? 문제가 많다. Java가 좋다 MS(C#)와는 어떻게 될까 ??? 어디에 사용하면 좋을까 ? 왜, 수 많은 언어가 출현할까? 벽에 못 박을때, 돌맹이, 망치가 있다면? 요거 하나면 끝!!
Write Once, Run Anywhere !! Native Application Virtual Machine Application 가상기계 운영체제 하드웨어
자바 플랫폼(Java Platform) 자바 플랫폼이란 ? 자바 어플리케이션이 실행될 수 있는 환경 Java Program + API + JVM Java program 기본 API 확장 API Java Virtual Machine 운영체제 하드웨어
자바 언어의 역사 Sun Microsystems Inc. - ORACLE 1990년 “그린 프로젝트”로 시작 James Gosling 1990년 “그린 프로젝트”로 시작 1991년 가전제품을 위한 언어로 개발 범용 어플리케이션 개발 언어로 발전 Java James Gosling, Arthur Van Hoff, Andy Bechtolsheim 인도네시아 산 커피 원료 이름
모든 OS, 플랫폼 및 GUI 에서 작동될 수 있는 분산 응용 프로 그램은 없을까 ?? 분산 Client-server 환경 PC NETWORK Mac Server
자바의 주요 특성 간단하며 친숙한 언어 객체지향 언어 플랫폼에 독립적 견고하고 보안에 강하다 동적이고 멀티스레드를 지원
간단하며 친숙한 언어 설계 목표 : C/C++의 복잡한 기능 일부 삭제 친숙한(?) 언어 객체지향 언어 특성 작고 간단해서 프로그래밍, 디버깅 등이 용이 C/C++의 복잡한 기능 일부 삭제 포인터 연산 삭제, 자동적인 메모리 관리 친숙한(?) 언어 연산식과 문장 구조면 : ANSI C 언어 객체 지향적인 개념 : C++ 언어 객체지향 언어 특성 자료 추상화(data abstraction) 상속성(inheritance) 다형성(polymorphism)
플랫폼 독립적 아키텍처 독립적 기존 개발환경과 비교 JVM(Java Virtual Machine) 플랫폼에 독립적인 Bytecode 사용 기존 개발환경과 비교 이진 파일 컴파일러(Pentium) Pentium 소스 코드 이진 파일 컴파일러(PowerPC) PowerPC 이진 파일 컴파일러(SPARC) SPARC
플랫폼 독립적 Java 어플리케이션 개발 환경 (Pentium) Pentium 자바 코드 (플랫폼 독립적) (PowerPC) 자바 컴파일러 (Pentium) 자바 인터프리터 Pentium 자바 코드 자바 바이트코드 (플랫폼 독립적) 자바 컴파일러 (PowerPC) PowerPC 자바 인터프리터 SPARC 자바 인터프리터 자바 컴파일러 (SPARC)
자바 개발 환경 프로그래밍 환경 운영 환경 통합 환경(IDE) 편집기, 디버거 JDK(Java Developers Kit) 컴파일러, 인터프리터, 라이브러리 시스템 통합 환경(IDE) Visual J++, Jbuilder, Symantec Cafe