• 검색 결과가 없습니다.

프로그래밍 언어의 기본적 이해

N/A
N/A
Protected

Academic year: 2021

Share "프로그래밍 언어의 기본적 이해"

Copied!
10
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

프로그래밍 언어의 기본적 이해

2011년 9월 14일 고려대학교

정보과학개론 이주용

jlee@formal.korea.ac.kr

(2)

두 가지 언어

HelloWorld.java

class HelloWorld {

public static void main(String[] args) { System.out.println("Hello World!");

} }

HelloWorld.class

bash-3.2$ opwdopwd

bash: opwd: command not found bash-3.2$ pwdpwd

/Users/jlee/Workspace/Lecture/CNCE150/examples/java bash-3.2$ javac HelloWorld.java javac HelloWorld.java

bash-3.2$ lsls

HelloWorld.class HelloWorld.java bash-3.2$ java HelloWorldjava HelloWorld

Hello World!

bash-3.2$ javap -c HelloWorld.class javap -c HelloWorld.class ERROR:Could not find HelloWorld.class bash-3.2$ javap HelloWorldjavap HelloWorld

Compiled from "HelloWorld.java"

class HelloWorld extends java.lang.Object{

HelloWorld();

public static void main(java.lang.String[]);

}

bash-3.2$ javap -c HelloWorldjavap -c HelloWorld Compiled from "HelloWorld.java"

class HelloWorld extends java.lang.Object{

HelloWorld();

Code:

0: aload_0

1: invokespecial #1; //Method java/lang/Object."<init>":()V 4: return

public static void main(java.lang.String[]);

Code:

0: getstatic #2; //Field

java/lang/System.out:Ljava/io/PrintStream;

3: ldc #3; //String Hello World!

5: invokevirtual #4; //Method java/io/PrintStream.println:

(Ljava/lang/String;)V 8: return

}

bash-3.2$

Wednesday, September 14, 2011

(3)

두 가지 언어

HelloWorld.java

class HelloWorld {

public static void main(String[] args) { System.out.println("Hello World!");

} }

HelloWorld.class

public static void main(java.lang.String[]);

Code:

0: getstatic #2; //Field

java/lang/System.out:Ljava/io/PrintStream;

3: ldc #3; //String Hello World!

5: invokevirtual #4; //Method java/io/PrintStream.println:

(Ljava/lang/String;)V 8: return

사람의 언어

기계의 언어

(4)

두 가지 언어

basic.tex

basic.ps

\documentclass{article}

\begin{document}

some text

\end{document}

9D76BF0B87A8608EB935F17A5123265186F89DC2FCFA144BD9B615A5A1360035 2F0DF9DD44E541EAF89C8F02B2DE8952E2BCB036109171F39E34852CDD8271E9 B3E63DF81A8AEC6E3A71785BFEBEC085C158BB582E971B703201B8497A0AB177 1C6D673226D3E7B23D5CB42A1E8D533BB5433A9C82BAAFC1BA0777867973577F ECC3F197D53C719E4538C658D429E0DD512A5A6BFA0596C8A40522FE2404563A 487C680FAA63C341F154991C15FE14B398791B0ED4DC2D7DE2EAEC5D5BC442FF 5D66FD5DE5514306FEC22D9A3EE879E71D823B381484C131CCEF370C04C40349 F667869427BB7A85D9C8AAFCC2E8E915A562E1CCDAB3A03C56FDCA9D93758464 CA1E1949E8DCABBE10C8B0859E6F440BE98C608E65EF9EA1AF152FD4AE7EA253 8A1AF173D72F3074291783A94D91E664C24A50B1E44B1CCBCD3C88F7279C1531 B96EA2008D538A2AF556D4EB0A57786A2CB5A1BAA8F17925D444CF46314C6D5D 760D91C0F4CDA50E6E0E59AD9674C1D2850CBAC0F0B86AB9BFA68641CFE79A15 E3C11B4204B06F097793D381FEC8FCB2645B48449DA35ED4C6C6B96E

0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark

{restore}if

%%EndFont

TeXDict begin 39158280 55380996 1000 600 600 (basic.dvi)

@start /Fa 135[44 3[32 33 3[42 1[69 7[37 51[42 49[{}7 83.022 /CMR10 rf end

%%EndProlog

%%BeginSetup

%%Feature: *Resolution 600dpi TeXDict begin

%%BeginPaperSize: a4 /setpagedevice where

{ pop << /PageSize [595 842] >> setpagedevice } { /a4 where { pop a4 } if }

ifelse

%%EndPaperSize end

%%EndSetup

%%Page: 1 1

TeXDict begin 1 0 bop 639 523 a Fa(some)27 b(text)1926 5255 y(1)p eop end

%%Trailer

userdict /end-hook known{end-hook}if

%%EOF

Wednesday, September 14, 2011

(5)

두 가지 언어

basic.tex

basic.ps

\documentclass{article}

\begin{document}

some text

\end{document}

%%EndSetup

%%Page: 1 1

TeXDict begin 1 0 bop 639 523 a Fa(some)27 b(text)1926 5255 y(1)p eop end

%%Trailer

userdict /end-hook known{end-hook}if

%%EOF

사람의 언어

프린터의 언어

(6)

PS 대 PDF

basic.ps

9D76BF0B87A8608EB935F17A5123265186F89DC2FCFA144BD9B615A5A1360035 2F0DF9DD44E541EAF89C8F02B2DE8952E2BCB036109171F39E34852CDD8271E9 B3E63DF81A8AEC6E3A71785BFEBEC085C158BB582E971B703201B8497A0AB177 1C6D673226D3E7B23D5CB42A1E8D533BB5433A9C82BAAFC1BA0777867973577F ECC3F197D53C719E4538C658D429E0DD512A5A6BFA0596C8A40522FE2404563A 487C680FAA63C341F154991C15FE14B398791B0ED4DC2D7DE2EAEC5D5BC442FF 5D66FD5DE5514306FEC22D9A3EE879E71D823B381484C131CCEF370C04C40349 F667869427BB7A85D9C8AAFCC2E8E915A562E1CCDAB3A03C56FDCA9D93758464 CA1E1949E8DCABBE10C8B0859E6F440BE98C608E65EF9EA1AF152FD4AE7EA253 8A1AF173D72F3074291783A94D91E664C24A50B1E44B1CCBCD3C88F7279C1531 B96EA2008D538A2AF556D4EB0A57786A2CB5A1BAA8F17925D444CF46314C6D5D 760D91C0F4CDA50E6E0E59AD9674C1D2850CBAC0F0B86AB9BFA68641CFE79A15 E3C11B4204B06F097793D381FEC8FCB2645B48449DA35ED4C6C6B96E

0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark

{restore}if

%%EndFont

TeXDict begin 39158280 55380996 1000 600 600 (basic.dvi)

@start /Fa 135[44 3[32 33 3[42 1[69 7[37 51[42 49[{}7 83.022 /CMR10 rf end

%%EndProlog

%%BeginSetup

%%Feature: *Resolution 600dpi TeXDict begin

%%BeginPaperSize: a4 /setpagedevice where

{ pop << /PageSize [595 842] >> setpagedevice } { /a4 where { pop a4 } if }

ifelse

%%EndPaperSize end

%%EndSetup

%%Page: 1 1

TeXDict begin 1 0 bop 639 523 a Fa(some)27 b(text)1926 5255 y(1)p eop end

%%Trailer

userdict /end-hook known{end-hook}if

%%EOF

basic.pdf

%PDF-1.4%Çì​¢

5 0 obj

<</Length 6 0 R/Filter /FlateDecode>>

stream

xœMŒ±​Â0​Dw​…Çd¨‰ÝÄIW$„Ä​ʆ˜*è​UU​ø|​Ú​​¬³NïnAGŒ®i÷±Àá​qZÁá¹Þ​​ð​ÀÝÆ‚Ç\¡„<PêE1¿`+3F

¡^​`​!​Ì​îfµlfË​“​Ô​Û qàdž¶óu‚ƒšw​ã​½¶”ICb5Ÿí​!ü​​|​S†kÕ​U`'.endstream endobj

6 0 obj 144

endobj 4 0 obj

<</Type/Page/MediaBox [0 0 595 842]

/Rotate 0/Parent 3 0 R

/Resources<</ProcSet[/PDF /Text]

/ExtGState 10 0 R /Font 11 0 R

>>

/Contents 5 0 R

>>

endobj 3 0 obj

<< /Type /Pages /Kids [ 4 0 R

] /Count 1

>>

endobj 1 0 obj

<</Type /Catalog /Pages 3 0 R /Metadata 13 0 R

>>

endobj 7 0 obj

<</Type/ExtGState /OPM 1>>endobj 10 0 obj

<</R7 7 0 R>>

endobj 11 0 obj

<</R8 8 0 R>>

endobj 8 0 obj

<</BaseFont/CBCRYG+LCMSS8/FontDescriptor 9 0 R/Type/Font

/FirstChar 101/LastChar 120/Widths[ 555 0 0 0 0 0 0 0 972 0 625 0 0 0 479 451 0 0 0 555]

/Encoding/WinAnsiEncoding/Subtype/Type1>>

endobj

Wednesday, September 14, 2011

(7)

통역

HelloWorld.java

class HelloWorld {

public static void main(String[] args) { System.out.println("Hello World!");

} }

HelloWorld.class

bash-3.2$ opwdopwd

bash: opwd: command not found bash-3.2$ pwdpwd

/Users/jlee/Workspace/Lecture/CNCE150/examples/java bash-3.2$ javac HelloWorld.java javac HelloWorld.java

bash-3.2$ lsls

HelloWorld.class HelloWorld.java bash-3.2$ java HelloWorldjava HelloWorld

Hello World!

bash-3.2$ javap -c HelloWorld.class javap -c HelloWorld.class ERROR:Could not find HelloWorld.class bash-3.2$ javap HelloWorldjavap HelloWorld

Compiled from "HelloWorld.java"

class HelloWorld extends java.lang.Object{

HelloWorld();

public static void main(java.lang.String[]);

}

bash-3.2$ javap -c HelloWorldjavap -c HelloWorld Compiled from "HelloWorld.java"

class HelloWorld extends java.lang.Object{

HelloWorld();

Code:

0: aload_0

1: invokespecial #1; //Method java/lang/Object."<init>":()V 4: return

public static void main(java.lang.String[]);

Code:

0: getstatic #2; //Field

java/lang/System.out:Ljava/io/PrintStream;

통역 명령 (javac HelloWorld.java)

(8)

통역

basic.tex

\documentclass{article}

\begin{document}

some text

\end{document}

basic.ps

9D76BF0B87A8608EB935F17A5123265186F89DC2FCFA144BD9B615A5A1360035 2F0DF9DD44E541EAF89C8F02B2DE8952E2BCB036109171F39E34852CDD8271E9 B3E63DF81A8AEC6E3A71785BFEBEC085C158BB582E971B703201B8497A0AB177 1C6D673226D3E7B23D5CB42A1E8D533BB5433A9C82BAAFC1BA0777867973577F ECC3F197D53C719E4538C658D429E0DD512A5A6BFA0596C8A40522FE2404563A 487C680FAA63C341F154991C15FE14B398791B0ED4DC2D7DE2EAEC5D5BC442FF 5D66FD5DE5514306FEC22D9A3EE879E71D823B381484C131CCEF370C04C40349 F667869427BB7A85D9C8AAFCC2E8E915A562E1CCDAB3A03C56FDCA9D93758464 CA1E1949E8DCABBE10C8B0859E6F440BE98C608E65EF9EA1AF152FD4AE7EA253 8A1AF173D72F3074291783A94D91E664C24A50B1E44B1CCBCD3C88F7279C1531 B96EA2008D538A2AF556D4EB0A57786A2CB5A1BAA8F17925D444CF46314C6D5D 760D91C0F4CDA50E6E0E59AD9674C1D2850CBAC0F0B86AB9BFA68641CFE79A15 E3C11B4204B06F097793D381FEC8FCB2645B48449DA35ED4C6C6B96E

0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark

{restore}if

%%EndFont

TeXDict begin 39158280 55380996 1000 600 600 (basic.dvi)

@start /Fa 135[44 3[32 33 3[42 1[69 7[37 51[42 49[{}7 83.022 /CMR10 rf end

%%EndProlog

%%BeginSetup

%%Feature: *Resolution 600dpi TeXDict begin

%%BeginPaperSize: a4 /setpagedevice where

{ pop << /PageSize [595 842] >> setpagedevice } { /a4 where { pop a4 } if }

ifelse

%%EndPaperSize end

%%EndSetup

%%Page: 1 1

TeXDict begin 1 0 bop 639 523 a Fa(some)27 b(text)1926 5255 y(1)p eop end

%%Trailer

userdict /end-hook known{end-hook}if

%%EOF

통역 명령 (latex basic.tex;dvips basic.dvi)

Wednesday, September 14, 2011

(9)

통역

basic.tex

\documentclass{article}

\begin{document}

some text

\end{document}

통역 명령 (pdflatex basic.tex)

basic.pdf

%PDF-1.4%Çì​¢

5 0 obj

<</Length 6 0 R/Filter /FlateDecode>>

stream

xœMŒ±​Â0​Dw​…Çd¨‰ÝÄIW$„Ä​ʆ˜*è​UU​ø|​Ú​​¬³NïnAGŒ®i÷±Àá​qZÁá¹Þ​​ð​ÀÝÆ‚Ç\¡„<PêE1¿`+3F

¡^​`​!​Ì​îfµlfË​“​Ô​Û qàdž¶óu‚ƒšw​ã​½¶”ICb5Ÿí​!ü​​|​S†kÕ​U`'.endstream endobj

6 0 obj 144

endobj 4 0 obj

<</Type/Page/MediaBox [0 0 595 842]

/Rotate 0/Parent 3 0 R

/Resources<</ProcSet[/PDF /Text]

/ExtGState 10 0 R /Font 11 0 R

>>

/Contents 5 0 R

>>

endobj 3 0 obj

<< /Type /Pages /Kids [ 4 0 R

] /Count 1

>>

endobj 1 0 obj

<</Type /Catalog /Pages 3 0 R /Metadata 13 0 R

>>

endobj 7 0 obj

<</Type/ExtGState /OPM 1>>endobj 10 0 obj

<</R7 7 0 R>>

endobj 11 0 obj

Wednesday, September 14, 2011

(10)

통역 절차 (수박 겉핥기)

HelloWorld.java

class HelloWorld {

public static void main(String[] args) { System.out.println("Hello World!");

} }

HelloWorld.class

bash-3.2$ opwdopwd

bash: opwd: command not found bash-3.2$ pwdpwd

/Users/jlee/Workspace/Lecture/CNCE150/examples/java bash-3.2$ javac HelloWorld.java javac HelloWorld.java

bash-3.2$ lsls

HelloWorld.class HelloWorld.java bash-3.2$ java HelloWorldjava HelloWorld

Hello World!

bash-3.2$ javap -c HelloWorld.class javap -c HelloWorld.class ERROR:Could not find HelloWorld.class bash-3.2$ javap HelloWorldjavap HelloWorld

Compiled from "HelloWorld.java"

class HelloWorld extends java.lang.Object{

HelloWorld();

public static void main(java.lang.String[]);

}

bash-3.2$ javap -c HelloWorldjavap -c HelloWorld Compiled from "HelloWorld.java"

class HelloWorld extends java.lang.Object{

HelloWorld();

Code:

0: aload_0

1: invokespecial #1; //Method java/lang/Object."<init>":()V 4: return

public static void main(java.lang.String[]);

Code:

0: getstatic #2; //Field

java/lang/System.out:Ljava/io/PrintStream;

3: ldc #3; //String Hello World!

5: invokevirtual #4; //Method java/io/PrintStream.println:

(Ljava/lang/String;)V 8: return

}

bash-3.2$

문법 검사

통과

통역 수행

Wednesday, September 14, 2011

참조

관련 문서

1) 레크리에이션 프로그램은 모든 사람에게 평등한 참여 기회를 주어야 한다. 2) 프로그램이 건설적이며 교육적이어야 한다. 3) 단계적이며 체계적인

프로그래밍

프로그래밍

™ 입력 스트링에 대한 유도(derivation)를

전류가 흐를때 1, 흐르지 않을 때 0으로만 숫자를 표현할 수 있음 이진수 한자리를 bit라 칭하고 8개의 bit는

TransferDatabase 다른 데이터베이스 파일과의 가져오기, 내보내기, 연결 등을 지원한다. TransferSpreadsheet 스프레드시트

• 집단생물학에서 통계학(統計學, statistics)이 발달하며 집단의 개념이 보다 구체화되고, 곧 분류학자들은 모든 생물은 집단의 구성원으로서 자연 속에

• 이번 실습에서는 Practice13_1 프로그램을 수 정하여, 곡선의 컨트롤 포인트를 마우스의 드 래깅으로 이동하여 곡선을 업데이트하도록 할 것이고, 곡선을