프로그래밍 기초

Download Report

Transcript 프로그래밍 기초

프로그래밍 기초
2014년 1학기
강원대학교 컴퓨터학부
담당교수: 정충교
프로그래밍 기초
강원대학교
1/32
제 1주
소개
프로그래밍 기초
강원대학교
2/32
프로그래밍 기초
강원대학교
3/32
프로그래밍 기초
강원대학교
4/32
프로그래밍 기초
강원대학교
5/32
프로그램
Sum=0
N=0
while (N<=50)
N=N+1
Sum=Sum+N
Print Sum
프로그래밍 기초
강원대학교
6/32
프로그램 컴파일
프로그래밍 기초
강원대학교
7/32
자바 프로그램
컴파일러
개발환경
바이트 코드
JVM
핸드폰
JVM
Macintosh 컴퓨터
JVM
실행환경
Windows PC
JVM: Java Virtual Machine, 자바가상기계
프로그래밍 기초
강원대학교
8/32
자바언어의 특징
• 인터프리터(Interpreter)에 의해 실행
– 자바 소스코드는 컴파일을 통해 바이트 코드로 번역됨
– 바이트 코드를 실행시키면 바이트 코드 해석기(interpreter)에
의해 기계어 코드가 만들어지면서 이 기계어 코드가 실행됨
Java program
컴파일
인터프리터
컴파일러
기계어코드
바이트코드
컴퓨터하드웨어
프로그래밍 기초
강원대학교
실행
9/32
• C 언어의 경우: 소스코드가 기계어로 바로 번역됨
• 프로그램을 실행할 컴퓨터(target machine)에 따라 컴파일러가 달
라지고 다른 기계어코드가 생성됨
C program
컴파일
컴파일러
컴퓨터하드웨어
실행
기계어코드
프로그래밍 기초
강원대학교
10/32
자바언어의 특징
• 구조중립적(architecture neutral)이고 이식성(portable)
이 높음
– 바이트코드 인터프리터를 중심으로 몇가지 부가기능
을 갖춘 소프트웨어를 자바가상기계(JVM)라고 부름
– 자바프래그램은 한번 작성/컴파일되면 JVM이 설치된
모든 종류의 컴퓨터에서 실행 가능
프로그래밍 기초
강원대학교
11/32
프로그램을 실행할 컴퓨터
기종과 무관한 바이트코드가
생성됨
클라이언트(JVM)
서버
소스코드
*.java
컴
파
일
러
바이트
코드
*.class
해
석
기
실행결과
인터넷
자바 바이트코드는 자바 가상기계가
설치된 어떤 컴퓨터에서도 실행 가능하며
네트워크를 통해 쉽게 배포할 수 있다.
윈도PC
해
석
기
실행결과
핸드폰
interpreter
프로그래밍 기초
강원대학교
12/32
자바 플랫폼 (Platform)
• 플랫폼 : 하드웨어와 소프트웨어 환경
• 기존의 컴퓨터에 자바 플랫폼을 구축하기 위해서는 자바
소프트웨어(JRE)를 설치함
(JRE: Java Runtime Environment)
자바 프로그램
자바 API
자바
플랫폼
자바 가상 기계 (JVM)
하드웨어 플랫폼
프로그래밍 기초
강원대학교
13/32
JDK (개발도구 + JRE)
JDK: Java Development Kit
JRE: Java Runtime Environment
프로그래밍 기초
강원대학교
14/32
자바 플랫폼 (Platform)
• 자바 API (Application Programming Interface)
– Java 플랫폼에서 제공되는 라이브러리
– 자바 개발자는 자바 API에 미리 정의된 라이브러리를 이용
하여 편리하게 자바 프로그램을 작성할 수 있음
– 라이브러리: 미리 작성해 놓은 프로그램들
(빈번하게 사용되는 기능들을 구현)
프로그래밍 기초
강원대학교
15/32
프로그램 작성, 컴파일, 실행 과정
• 임의의 텍스트 편집기로 프로그램을 작성하여 파
일로 저장
프로그래밍 기초
강원대학교
16/32
프로그램 예 1 – Hello.java
Hello라는 이름의 클래스를
중괄호{} 안의 내용과 같은 것으로 정의함
public class Hello {
public static void main (String[] args) {
System.out.print(“Hello!”);
}
}
• 이 프로그램을 Hello.java 파일에 저장 (파일 이름이 대소
문자까지 맞춰 정확해야 함)
프로그래밍 기초
강원대학교
17/32
프로그램 파일
• 파일 하나에는 하나의 public 클래스가 정의됨
• public 클래스 이름을 파일 이름과 같게 함
– (Hello 라 는 클 래 스 를 정 의 한 파 일 의 이 름 은
Hello.java)  대문자 소문자 구분!
프로그래밍 기초
강원대학교
18/32
프로그램 작성, 컴파일, 실행 과정
• 소스코드를 컴파일하여 바이트코드를 만듦
– javac Hello.java ( 파일 이름)
Hello.class 파일이 생성됨
컴파일 할 때는 파일의 첨자(.java)를 반드시 붙여줌
Hello.class 파일 내에 바이트코드가 들어 있음
• 바이트 코드를 실행시킴
– java Hello ( 클래스 이름)
• 실행시킬 때는 파일의 첨자를 붙이지 않고 클래스
이름만 지정해 줌
프로그래밍 기초
강원대학교
19/32
자바 개발 환경
 J2SE 자바 표준 개발 환경에 포함되어 있는 도구
 자바 번역기 : javac
 자바 해석기 : java
 자바 디버거 : jdb
 자바 문서 생성기 : javadoc
 자바 압축 도구 : jar
• JDK는 GUI(Graphical User Interface) 형태의 개발환경을 제공
하지 않음
프로그래밍 기초
강원대학교
20/32
프로그래밍 기초
강원대학교
21/32
(IDE: Integrated Development Environment, 통합개발환경)
프로그래밍 기초
강원대학교
22/32
자바 통합개발환경 예
•
•
•
Eclipse (http://www.eclipse.org)
NetBeans (http://www.netbeans.org/)
Java Studio Creator
•
•
(http://developers.sun.com/prodtech/javatools/jscreator)
JBuilder (http://www.borland.com/jbuilder)
Viaual Cafe (http://www.visualcafe.com)
• Visual Age for Java (http://www.ibm.com/java)
프로그래밍 기초
강원대학교
23/32
Application을 실행시키면
• main 메소드가 실행됨
main 메소드 (method)
public static void main (String[] args)
{
// 문장들
}
프로그래밍 기초
강원대학교
24/32
간단한 문법 요약
• 모든 문장은 세미콜론으로 끝남
x = x + 1;
• 공백 문자가 많이 삽입되어도 문제 없음
x
=
3;
• 한 문장을 여러줄에 걸쳐 적어도 문제 없음
x
=
3;
• 대문자 소문자 구분
NotSame ≠ notsame
프로그래밍 기초
강원대학교
25/32
간단한 문법 요약
• 한 줄짜리 주석은 두 개의 슬래시로 시작
// 주석입니다.
• 여러 줄 주석
/* 주석
입니다. */
프로그래밍 기초
강원대학교
26/32
print과 println
System.out.println(“Kangwon”);
System.out.print(“kangwon”);
System.out.print(“kangwon\n”);
• println은 주어진 문자열을 출력한 다음 줄바꿈 (문자열
출력 후 ‘\n’을 추가로 출력)
• print는 주어진 문자열만 출력
프로그래밍 기초
강원대학교
27/32
Errors
• Syntax errors
System.ouch.print(". . .");
System.out.print("Hello);
– Detected by the compiler
• Logic errors
System.out.print("Hell");
– Detected (hopefully) through testing
프로그래밍 기초
강원대학교
28/32
The Compilation Process
프로그래밍 기초
강원대학교
29/32
The Edit—Compile—Loop Test
프로그래밍 기초
강원대학교
30/32
교재 1장 단답형 문제 (15쪽)
• 2번, 3번, 5번, 6번, 11번
프로그래밍 기초
강원대학교
31/32
숙제
• 실습과제 읽어오기
1절, 3절
내일까지
• 교재 읽어오기
28쪽 – 40쪽 중간
다음 주 수업시간까지
프로그래밍 기초
강원대학교
32/32