์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
FORTRAN์—์„œ ๋„˜์–ด์˜ด
1. ๊ฐœ์š”2. ํ‘œ์ค€ํ™”์˜ ์ง„ํ–‰
2.1. ํ‘œ์ค€์— ๋Œ€ํ•œ ์˜คํ•ด๋“ค
3. ํŠน์ง•
3.1. ์†๋„ ๋…ผ์Ÿ3.2. ํฌํŠธ๋ž€์ด ์‚ฌ์šฉ๋˜๋Š” ์˜ˆ
4. ๊ธฐํƒ€

1. ๊ฐœ์š”[ํŽธ์ง‘]

1950๋…„๋Œ€ ๋ง์— IBM์˜ ์กด ๋ฐฐ์ปค์Šค(John Backus) ์™ธ 6๋ช…์˜ ์ „๋ฌธ๊ฐ€๊ฐ€ ์™„์„ฑํ•œ ์ตœ์ดˆ์˜ ๊ณ ๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์•Œ๊ณจ๊ณผ ํ•จ๊ป˜ ๊ณผํ•™ ๊ณ„์‚ฐ์šฉ์œผ๋กœ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ๋งค์šฐ ๊ฐ„๊ฒฐํ•˜๊ณ  ์—„๊ฒฉํ•œ ๊ตฌ๋ฌธ ํ˜•์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ANSI์™€ ISO์—์„œ ํ‘œ์ค€ํ™”๋˜์—ˆ๋‹ค. ์ด๋ฆ„์€ ์ˆ˜์‹ ๋ณ€ํ™˜๊ธฐ(FORmula TRANslator)๋ผ๋Š” ๋œป์œผ๋กœ, ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ์ˆ˜์‹์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ํŠนํ™”๋˜์–ด ์žˆ๋‹ค. ์ˆ˜์‹ ๊ณ„์‚ฐ์— ํŠนํ™”๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์€
  1. ์ˆ˜์‹์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. ์ˆ˜์น˜ ๊ณ„์‚ฐ์ด ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰๋œ๋‹ค.

๋ผ๋Š” ์ด๋…์„ ๊ฐ€์ง€๊ณ  ์„ค๊ณ„๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ปดํ“จํ„ฐ ๊ณตํ•™์—์„œ๋Š” ์ฃฝ์€ ์–ธ์–ด๋กœ ์ธ์‹ํ•˜๊ณ  ์žˆ์ง€๋งŒ ๊ณ„์‚ฐ์ˆ˜ํ•™์—์„œ๋Š” ์•„์ง๋„ C์™€ ๋”๋ถˆ์–ด ํ™œ๋ฐœํ•˜๊ฒŒ ์“ฐ์ธ๋‹ค. ๋‹น์‹ ์ด ์—ญ์‚ฌ๊ฐ€ ์˜ค๋ž˜๋œ ๊ฒƒ์„ ์—ฐ๊ตฌํ•˜๋Š” ์ „๊ณต์˜ ๊ณต๋Œ€๋‚˜ ์ž์—ฐ๋Œ€ ๋Œ€ํ•™์› ํ•™๊ณผ์— ์ง„ํ•™ํ•  ๊ฒฝ์šฐ ๋งž๋‹ฅ๋œจ๋ฆด ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด์ด๋ฉฐ ์ˆ˜ํผ์ปดํ“จํ„ฐ๋กœ ๋ญ”๊ฐ€๋ฅผ ํ•ด์•ผ ํ•  ์ผ์ด ์ƒ๊ธธ ๊ฒฝ์šฐ ๋†’์€ ํ™•๋ฅ ๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ์–ธ์–ด์ด๋‹ค.

ํฌํŠธ๋ž€์„ ์“ธ ์ˆ˜ ์žˆ๋Š” IDE์— ๋Œ€ํ•ด์„œ๋Š” ์œ„ํ‚คํ”ผ๋””์•„์— ์ž˜ ์ •๋ฆฌ๋˜์–ด ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ํ•˜๋„๋ก ํ•˜์ž.

2. ํ‘œ์ค€ํ™”์˜ ์ง„ํ–‰[ํŽธ์ง‘]

WG5๋กœ ๋ถˆ๋ฆฌ๋Š” ISO ํฌํŠธ๋ž€ ์œ„์›ํšŒ์—์„œ ISOํ‘œ์ค€ ๋…ผ์˜๊ฐ€ ์ง„ํ–‰๋˜๋ฉฐ[1] J3๋กœ ๋ถˆ๋ฆฌ๋Š” US Fortran committee ์—์„œ ANSI ํ‘œ์ค€์ด ๋…ผ์˜๋œ๋‹ค.[2]

๋Œ€์ฒด์ ์œผ๋กœ ANSI ํ‘œ์ค€์€ ๊ฑฐ์˜ ๋ณ€ํ™” ์—†์ด ISO ํ‘œ์ค€์œผ๋กœ ๋ฐ›์•„๋“ค์—ฌ ์ง„๋‹ค. ํ˜„์žฌ์˜ WG5์˜ ๊ตฌ์„ฑ์›์€ J3์™€ ๋Œ€๋™์†Œ์ดํ•˜๋ฉฐ, J3๋Š” ํ˜„์žฌ WG5์˜ ๋ถ€๋ถ„์œผ๋กœ ํ™œ๋™ํ•˜๊ณ  ์žˆ๋‹ค.

1956๋…„ ๊ฐœ๋ฐœ, 1957๋…„ IBM์—์„œ "THE FORTRAN AUTOMATIC CODING SYSTEM FOR THE IBM 704 EPDM"์ด๋ž€ ์ด๋ฆ„์œผ๋กœ ๋ฐœํ‘œํ•œ ์ดํ›„์˜ ์•ฝ 10์—ฌ๋…„๊ฐ„์€ ํฌํŠธ๋ž€๊ณ„์˜ ์ถ˜์ถ”์ „๊ตญ์‹œ๋Œ€์˜€๋‹ค. ๋‹ค์–‘ํ•œ ๋ฒค๋”์—์„œ ๊ทธ๋“ค๋งŒ์˜ ์–ธ์–ด์  ํŠน์ง•๊ณผ, ์•„์ด๋””์–ด, ๋ฌธ๋ฒ•์„ ๊ฐ€์ง€๋ฉฐ ์ด๋Ÿฐ ์ €๋Ÿฐ ํฌํŠธ๋ž€์„ ๋งŒ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. FORTRAN II ๋‹ˆ FORTRAN D ๋‹ˆ ํ•˜๋Š” ๋…€์„๋“ค๋„ ์žˆ์—ˆ๋‹ค. ๊ทธ ์‹œ์ ˆ์—๋„ 40์—ฌ ๊ฐ€์ง€์˜ ์ปดํŒŒ์ผ๋Ÿฌ๋“ค์ด ์žˆ์—ˆ๋‹ค ํ•œ๋‹ค.

1966๋…„์— "Business Equipment Manufacturers Association"์˜ ์ฃผ๋„ํ•˜์— ์ฒซ ANSI ํ‘œ์ค€์ด ์ง€์ •๋˜์—ˆ์œผ๋ฉฐ, ์ด ํ‘œ์ค€์€ 36ํŽ˜์ด์ง€ ์งœ๋ฆฌ ๋ฌธ์„œ๋กœ ๋ฐœ๊ฐ„๋˜์—ˆ๊ณ  FORTRAN66 ๋˜๋Š” FORTRAN IV ๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ(์ด๋Š” FORTRAN IV ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๊ทธ ๊ธฐ๋ฐ˜์œผ๋กœ ํ‘œ์ค€ํ™”๊ฐ€ ์ง„ํ–‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.) ์ •ํ™•ํ•œ ๋ช…์นญ์€ ANSI 3.9-1966์ด๋‹ค. ์ตœ์ดˆ์˜ ANSIํ‘œ์ค€์ด ๋“ฑ์žฅํ•˜๋ฉด์„œ ๊ธฐ์กด์˜ ๋‚œํ•ดํ•œ ์ƒํ™ฉ์€ ์•ฝ๊ฐ„ ์ •๋ฆฌ๊ฐ€ ๋˜์—ˆ๋‹ค. FREQUENCY๋ฌธ, SENSE๋ฌธ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๋ฒค๋”์—์„œ ์ž์˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋˜ ๋ฌธ๋ฒ•๋“ค์ด ์‚ฌ๋ผ์ง€๊ธฐ ์‹œ์ž‘ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ISO R1539:1972๋Š” FORTRAN66์— ๋Œ€์‘ํ•˜๋Š” ISO ํ‘œ์ค€์— ํ•ด๋‹นํ•œ๋‹ค.(ํ•ด๋‹น ํ‘œ์ค€์˜ ISO์˜ ์Šน์ธ์€ 1972๋…„์— ๋˜์—ˆ๋‹ค.)

์ดํ›„ ๊ฐ€์žฅ ๋„๋ฆฌ ์•Œ๋ ค์ง€๊ณ  ์œ ๋ช…ํ•ด์ง„ ํ‘œ์ค€์€ 1978๋…„์— ANSI์— ์˜ํ•ด ์Šน์ธ๋œ FORTRAN 77์œผ๋กœ ๊ทธ ๋ฌธ๋ฒ• ๋งŒ์œผ๋กœ๋„ 260์—ฌ ํŽ˜์ด์ง€๊ฐ€ ๋˜์—ˆ๋‹ค. ํ˜„์žฌ ๋Œ€๋Œ€๋กœ ๋‚ด๋ ค์˜ค๊ณ  ์žˆ๋Š” ๋งŽ์€ ์ˆ˜์น˜ํ•ด์„ ์ฝ”๋“œ๋“ค์€ ์ด ํ‘œ์ค€์„ ๋”ฐ๋ผ ์ž‘์„ฑ๋œ ์˜ˆ๊ฐ€ ๋งŽ๋‹ค. FORTRAN77์€ ์ฒ˜์Œ์œผ๋กœ ๊ณต์‹์ ์œผ๋กœ OPEN๋ฌธ, CHARACTER ํ˜• ์„ ์–ธ์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค. CHARACTERํ˜•์ด ์ถ”๊ฐ€๋˜๊ธฐ ์ด์ „์—” ๊ฐ ์ปดํŒŒ์ผ๋Ÿฌ ์ž์˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ฑฐ๋‚˜, Hollerith ์ˆ˜์‹์„ ์‚ฌ์šฉํ–ˆ๋‹ค.[3] ISO 1539:1980 ์ด ISO FORTRAN77์— ํ•ด๋‹น์ด๋œ๋‹ค.

ํ•œํŽธ, ๋ฏธ ๊ตญ๋ฐฉ๋ถ€์—์„œ๋Š” ์ด ANSI FORTRAN 77 ์— ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์ด ํฌํ•จ๋œ ํ‘œ์ค€์„ ๋ฐœํ‘œํ–ˆ๋‹ค. [4] ์ด ๋ฏธ๊ตญ๋ฐฉ๋ถ€ 77ํ‘œ์ค€์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ๋ฒ•์ด ์ ์šฉ๋˜์—ˆ๋‹ค.
  1. END DO ๋ฌธ
  2. IMPLICIT NONE ๋ฌธ
  3. INCLUDE ๋ฌธ
  4. ์ •์ˆ˜์—ฐ์‚ฐ์— ๋Œ€ํ•œ ๋น„ํŠธ์—ฐ์‚ฐ ๋‚ด์žฅํ•จ์ˆ˜ ์ถ”๊ฐ€
  5. DO WHILE ๋ฃจํ”„ ๋ฌธ

์ด ์ค‘์—์„œ INCLUDE๋ฌธ์„ ์ œ์™ธํ•œ ๋ฌธ๋ฒ• ์‚ฌํ•ญ์€ Fortran 90 ํ‘œ์ค€์— ๊ณต์‹์ ์œผ๋กœ ํฌํ•จ์ด ๋œ๋‹ค. (ํ˜„์žฌ๋„ INCLUDE๋ฌธ์€ ํ‘œ์ค€๋ฌธ๋ฒ•์ด ์•„๋‹ˆ๋‹ค.)

์ฐจ๊ธฐ ํฌํŠธ๋ž€ ํ‘œ์ค€์„ ๋ชจ์ƒ‰ํ•˜๋˜ ํฌํŠธ๋ž€ ์œ„์›ํšŒ์˜ ๊ตฌ์ƒ์€ FORTRAN88 ์ด์—ˆ์œผ๋‚˜(66,77,88.. ์ด๋Ÿฐ ๊ทœ์น™์„ ๊ฐ€์ง€๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค) ๋ช‡ ๊ฐ€์ง€ ๋ฌธ๋ฒ•์‚ฌํ•ญ์ด ์ถ”๊ฐ€๋˜๋ฉฐ ๊ฒฐ๊ตญ Fortran 90์œผ๋กœ ๋ฐœํ‘œ๋œ๋‹ค. ISO/IEC 1539 : 1991 (E) ๊ฐ€ ISO Fortran90์˜ ๊ณต์‹ ๋ฌธ์„œ๊ฐ€ ๋œ๋‹ค. ๋ถ„๋Ÿ‰์€ 388์ชฝ์— ๋‹ฌํ•œ๋‹ค. ์ด ๋ฒ„์ „์—์„  Modernํ•œ ์–ธ์–ด๋กœ์„œ ํฌํŠธ๋ž€์ด ๊ฐ€์ ธ์•ผ ํ•  ํŠน์ง•๋“ค์ด ๋Œ€๋Œ€์ ์œผ๋กœ ์ •์˜๋˜์—ˆ๊ณ , ๊ธฐํƒ€ ๋น ๋ฅด๊ฒŒ ๋ณ€ํ•˜๊ณ  ์žˆ๋Š” ์ปดํ“จํŒ… ์—…๊ณ„์˜ ํ๋ฆ„์„ ๋”ฐ๋ผ์žก๊ธฐ ์œ„ํ•œ ์‹œ๋„๊ฐ€ ๋ฐ˜์˜๋˜์—ˆ๋‹ค. FORTRAN โ†’ Fortran์œผ๋กœ ์ด๋•Œ ํ‘œ์ค€์˜ ์ด๋ฆ„์— ์†Œ๋ฌธ์ž๊ฐ€ ์“ฐ์ด๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค.

Fortran95๋Š” Fortran90์— ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์˜ ํ•„์š”์„ฑ์ด ์žˆ์–ด์„œ ๋ฐœํ‘œ๋œ ๋งˆ์ด๋„ˆ ์—…๋ฐ์ดํŠธ๋‹ค. ๋ณ‘๋ ฌ์ปดํ“จํŒ…์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ FORALL๋ฌธ ๊ฐ™์€ ๊ฒƒ(์ด ๋ฌธ๋ฒ•์€ ์‹คํŒจํ•œ ๊ธฐ๋Šฅ์ด๋‹ค.)[5]์ด ์ถ”๊ฐ€๋˜์—ˆ๊ณ , ๊ธฐ์กด์˜ Non-Modern ํ•œ ๋ฌธ๋ฒ•์œผ๋กœ ์—ฌ๊ฒจ์ง€๋˜ ํ‘œ์ค€์ด Obsolescent ์—์„œ Deleted๋กœ ๋ฐ”๋€œ์œผ๋กœ, ๊ธฐ์กด ๋ช‡ ๊ฐœ์˜ ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ ์‚ญ์ œ๊ฐ€ ์ผ์–ด๋‚œ ํ‘œ์ค€์ด๋‹ค. ํฌํŠธ๋ž€ ์œ„์›ํšŒ๋Š” ์ด๋•Œ๋ถ€ํ„ฐ 10๋…„๊ธฐ์ค€์˜ ๋ฉ”์ด์ € ์—…๋ฐ์ดํŠธ์™€, ์ค‘๊ฐ„ 5๋…„๋‹จ์œ„์˜ ๋งˆ์ด๋„ˆ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ธฐํšํ•˜๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค.[6]

10๋…„ ๋‹จ์œ„ ๋ฉ”์ด์ € ์—…๋ฐ์ดํŠธ๋กœ Fortran2000์ด ๊ธฐํš๋˜์—ˆ์œผ๋‚˜, ์—ญ์‹œ๋‚˜ ํ•ฉ์˜๊ฐ€ ๋Šฆ์ถฐ์ง€๊ณ  Fortran2003์œผ๋กœ ๋ฐœํ‘œ๋œ๋‹ค. ISO/IEC 1539-1:2004(E) ๊ฐ€ ๊ณต์‹ ISO Fortran 2003์˜ ๋ฌธ์„œ๊ฐ€ ๋œ๋‹ค. ๋ฌธ์„œ์˜ ์–‘์€ 585์ชฝ์œผ๋กœ ๋Š˜์–ด๋‚ฌ๋‹ค. C์–ธ์–ด ๋ฐ”์ธ๋”ฉ ๊ณต์‹ ์ง€์›, ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, IEEE ๋ถ€๋™์†Œ์ˆ˜์ ์—ฐ์‚ฐ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ชจ๋“ˆ ์ง€์›๋“ฑ์„ ํฐ ํŠน์ง•์œผ๋กœ ํ•œ๋‹ค. ์‚ฌ์‹ค ์‚ฌ์šฉ์ž๋“ค์ด ํ˜„์‹ค์ ์œผ๋กœ ๊ฐ€์žฅ ์ฒด๊ฐํ•˜๋Š” ๊ฐ€์žฅ ํฐ ๊ธฐ๋Šฅ์€ ISO_C_BINDING ๋‚ด์žฅ ๋ชจ๋“ˆ์ด๋ฉฐ, C์–ธ์–ด์™€ Mixing์— ๋Œ€ํ•œ ๋ฐฉ๋ฒ•๋ก ์„ ํ•˜๋‚˜๋กœ ํ†ต์ผ ์‹œํ‚จ ํ˜์‹ ์ ์ธ ํ‘œ์ค€์ด๋‹ค.

Fortran2008์€ ์—ญ์‹œ ๋งˆ์ด๋„ˆ ์—…๋ฐ์ดํŠธ์— ํ•ด๋‹นํ•œ๋‹ค. ๊ธฐ์กด Forall ๊ตฌ๋ฌธ์ด ๋ณ‘๋ ฌํ™”๋ฅผ ์ œ๋Œ€๋กœ ์ง€์›ํ•˜์ง€ ๋ชปํ–ˆ๋Š”๋ฐ, ์ด๋Š” ๋ฌธ๋ฒ•์˜ ์ œ์•ฝ์ƒ ๋ชจํ˜ธํ•œ ๋ถ€๋ถ„์— ์˜ํ•ด, ์ •ํ™•ํ•œ ๊ณ ๋ ค๊ฐ€ ์—†๋‹ค๋ฉด ๊ฑฐ์˜ ๋ชจ๋“  ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๊ทธ๋ƒฅ Do Loop๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„๊ตํ•ด ํผํฌ๋จผ์Šค์ƒ์˜ ์ด๋“์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ํ˜•ํƒœ๋กœ ๊ตฌํ˜„๋˜์–ด ๋ฒ„๋ ธ๋‹ค. ์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด์„œ Do concurrent๋ฅผ ์ถ”๊ฐ€ํ•˜์˜€๊ณ , 95๋•Œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ณ‘๋ ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•œ ์ง€์›์œผ๋กœ HPF(High performance fortran)ํ”„๋กœ์ ํŠธ ์˜ ๊ธฐ๋Šฅ๋“ค์ด ๋Œ€๊ฑฐ ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ, Cray ํฌํŠธ๋ž€์˜ ๊ธฐ๋Šฅ์ด์—ˆ๋˜ Coarray ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.

์ฐจ๊ธฐ ํฌํŠธ๋ž€ ํ‘œ์ค€์€ Fortran2015๋กœ ์˜ˆ์ƒ๋˜๊ณ  ์žˆ๋‹ค(๊ธฐํš๋Œ€๋กœ ๋œ ์ ์ด ์—†์–ด์„œ.. ๊ทธ๋ฆฌ ๋  ์ง€๋Š” ์•Œ ์ˆ˜ ์—†์ง€๋งŒ). ๋ฉ”์ด์ € ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์–ด์•ผ ํ•  ์ฐจ๋ก€์ด์ง€๋งŒ, ๋งˆ์ด๋„ˆ ์—…๋ฐ์ดํŠธ๋กœ ๊ธฐํš๋˜๊ณ  ์žˆ๋‹ค. C์–ธ์–ด์˜ ํ—ค๋”ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ C ๋ฐ”์ธ๋”ฉ์— ๋Œ€ํ•œ ํ™•์žฅ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ์ฃผ์š” ๊ณจ์ž๋กœ ํ•œ๋‹ค.

ํ˜„์žฌ ๋Œ€๋ถ€๋ถ„์˜ "์ปดํŒŒ์ผ๋Ÿฌ"๋Š” ๋ ˆ๊ฑฐ์‹œ(ํ•˜์œ„ ํ˜ธํ™˜)๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์œ ์ง€ํ•ด ์ฃผ๋ฉฐ, ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž๊ธฐ๋“ค๋งŒ์˜ ํ™•์žฅ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€์ ์œผ๋กœ ์ œ๊ณตํ•œ๋‹ค. ์ดˆ๊ธฐ ์‹œ๋Œ€์— ๊ฐ ์ปดํŒŒ์ผ๋Ÿฌ๋งˆ๋‹ค ์ œ๊ฐ๊ฐ ์ง€์›ํ•˜๋˜ ๊ธฐ๋Šฅ๋“ค์„ ๊ณ„์† ์ง€์›ํ•˜๋ฉฐ, ์ปดํ“จํ„ฐ ํ™˜๊ฒฝ์˜ ์ถ”๊ฐ€์  ์š”๊ตฌ๋“ค์— ํ‘œ์ค€๋ณด๋‹ค ๋จผ์ € ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์€ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํŒ๋งคํ•˜๋Š” ์ƒ์—…ํšŒ์‚ฌ์˜ ๊ธฐ๋ณธ์  ํƒœ๋„์ด๋‹ค. ํ‘œ์ค€์€ ์•„๋‹ˆ์ง€๋งŒ ์—ฌ๋Ÿฌ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๋น„์Šทํ•˜๊ฒŒ ์ง€์›ํ•˜๋Š” ๋ฌธ๋ฒ•์€ ํŠนํžˆ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฐฉ๊ฐ์„ ์ผ์œผํ‚ค๊ธฐ๋„ ํ•œ๋‹ค. ์–ด๋–ค ํšŒ์‚ฌ์—์„œ ํŠน์ง•์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๋ฌธ๋ฒ•์ด ํ‘œ์ค€์œผ๋กœ ๋“ค์–ด๊ฐˆ ์ˆ˜๋„ ์žˆ๊ณ  ์•„๋‹ ์ˆ˜๋„ ์žˆ๋‹ค. ์—ฌ๋Ÿฌ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ง€์›ํ•˜์ง€๋งŒ, ํ‘œ์ค€์€ ์•„๋‹Œ ๋ฌธ๋ฒ•/๋‚ด์žฅํ”„๋กœ์‹œ์ €๋“ค์ด ๋‹ค์ˆ˜ ์กด์žฌํ•œ๋‹ค. ์ด๊ฒƒ์€ ๋ณธ์งˆ์ ์œผ๋กœ ๊ฐ ์ฝ”๋“œ์˜ ์ด์‹์„ฑ์˜ ์œ ์ง€์— ์–ด๋ ค์›€์„ ๋งŒ๋“ค๋ฉฐ, ๊ฐ ์ปดํŒŒ์ผ๋Ÿฌ์— ๋Œ€ํ•œ ์˜์กด์„ฑ์„ ๋‚ฎ์ถ”๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ‘œ์ค€์— ๋ถ€ํ•ฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

ํ‘œ์ค€์ด ๊ณ„์† ๋‚˜์˜ค๋ฉด์„œ obsolescent[7], deleted[8]๋กœ ๊ตฌ๋ณ„๋˜๋Š” ๋ฌธ๋ฒ• ์‚ฌํ•ญ๋“ค์ด ๋‚˜์˜จ๋‹ค.

์ดํ•˜๋Š” 90์—์„œ obsolescent๋กœ ๋ถ„๋ฅ˜๋˜์—ˆ๋˜ ๋ฌธ๋ฒ•์ด๋‹ค.
  1. Arithmetic IF
  2. Real and double precision DO control variables and DO loop control expressions
  3. Shared DO termination and termination on a statement other than END DO or CONTINUE statement.
  4. Branching to an END IF statement from outside its IF block
  5. Alternate return
  6. PAUSE statement
  7. ASSIGN statement and assigned GO TO statements
  8. Assigned FORMAT specifiers
  9. H edit descriptor (์ผ๋ช… ํ™€๋Ÿฌ๋ฆฌ์Šค ๋ฌธ์ž์—ด)

90์—์„  obsolescent๋กœ ๋ถ„๋ฅ˜๋œ ํ•ญ๋ชฉ์€ ์žˆ์ง€๋งŒ, 77์˜ ๋ฌธ๋ฒ• ์ค‘์—์„œ deleted ๋œ ๊ฒƒ์ด ์—†๋‹ค. ์ดํ›„ 95์—์„œ ์ด์ค‘ 6๊ฐ€์ง€๊ฐ€ deleted ๋˜์—ˆ๋‹ค. ๋‚˜๋จธ์ง€๋Š” ํ˜„์žฌ์˜ ํ‘œ์ค€๊นŒ์ง€๋„ obsolescent๋กœ ๋ชฉ์ˆจ์„ ๋ถ€์ง€ํ•˜๊ณ  ์žˆ๋‹ค.

์ดํ•˜๋Š” 95์—์„œ ์‚ญ์ œ(deleted)๋œ ๋ฌธ๋ฒ•์ด๋‹ค. ๋”ฐ๋ผ์„œ ํ˜„์žฌ(2008์ด ๊ฐ€์žฅ ์ตœ๊ทผ์ด๋ฉฐ ์•ž์œผ๋กœ 2015๊ฐ€ ๋ฐœํ‘œ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ์‹œ์ )๋Š” ํฌํŠธ๋ž€ ํ‘œ์ค€์ด ์•„๋‹Œ ๋ฌธ๋ฒ•์ด๋‹ค.
  1. ASSIGN and assigned GO TO statements (ํ• ๋‹นํ˜• GO TO)
  2. Assigned FORMAT specifier ( ํ• ๋‹นํ˜• FORMAT)
  3. Branching to an END IF statement from outside its IF block (IF ๋ธ”๋ก์˜ ์™ธ๋ถ€์—์„œ END IF ๋ฌธ์œผ๋กœ ๋ถ„๊ธฐ)
  4. H edit descriptor (ํ™€๋Ÿฌ๋ฆฌ์Šค ๋ฌธ์ž์—ด)
  5. PAUSE statement (PAUSE๋ฅผ ์ด์šฉํ•œ ๋ฉˆ์ถค)
  6. Real and double precision DO control variables and DO loop control expressions ( DO ๋ฃจํ”„ ์ œ์–ด๋ฅผ ์‹ค์ˆ˜ํ˜• ๋ณ€์ˆ˜๋กœ ํ•˜๋Š” ๊ฒƒ)

๊ฐ€์žฅ ์ตœ๊ทผ์ธ 2008์—์„œ obsolescent๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
  1. Arithmetic IF
  2. Shared DO termination and termination on a statement other than END DO or CONTINUE
  3. Alternate return
  4. Computed GO TO
  5. Statement functions
  6. DATA statements amongst executable statements
  7. Assumed length character functions
  8. Fixed form source
  9. CHARACTER* form of CHARACTER declaration
  10. ENTRY statements

character์„ ์–ธ์‹œ * ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ, ๊ณ ์ •ํ˜•์‹์†Œ์Šค ํ˜•์‹ ๋“ฑ๋“ฑ์ด ๋ชจ๋‘ obsolescent ์ธ ์ ์„ ๋ˆˆ์—ฌ๊ฒจ ๋ด์•ผ ํ•œ๋‹ค.

2008 ํ˜„์žฌ ๋‹ค์Œ์˜ ์ถ”๊ฐ€์  ํ•ญ๋ชฉ์˜ deleted๊ฐ€ ์žˆ๋‹ค.
  1. Vertical format control.

2.1. ํ‘œ์ค€์— ๋Œ€ํ•œ ์˜คํ•ด๋“ค[ํŽธ์ง‘]

ํฌํŠธ๋ž€์€ ์œ ๋… 77, 90์„ ๋– ๋ฒŒ๋ฆฌ๊ธฐ๋ฅผ ์ข‹์•„ํ•œ๋‹ค. 77, 90 ํ‘œ์ค€์„ ์ œ๋Œ€๋กœ ๊ตฌ๋ณ„ํ•  ์ค„ ์•Œ๋ฉด์„œ.. ์ œ๋Œ€๋กœ ์“ฐ์ธ ๋ฌธ์„œ๊ฐ€ ๋ณ„๋กœ ์—†๋‹ค(โˆ’ํŠนํžˆ, ํ•œ๊ธ€๋กœ ๋œโˆ’) ์‹ฌ์ง€์–ด ๋งŽ์€ ์ฑ…๋“ค๋„ ๊ทธ๋Ÿฌํ•˜์ง€ ๋ชปํ•˜๋‹ค. 72๋…„์— ํƒ„์ƒํ•œ C์–ธ์–ด๋„ ์—ฌ๋Ÿฟ ํ‘œ์ค€์„ ๊ฐœ์ •ํ•ด๊ฐ€๊ณ  ์žˆ๊ณ  ๋ฐ”๋€Œ์–ด ๊ฐ€๊ณ  ์žˆ์Œ์—๋„, ์œ ๋… ํฌํŠธ๋ž€์„ ๊ณ ๋Œ€์–ด๋ผ๊ณ  ์น˜๋ถ€ํ•˜๋Š” ์น˜๊ธฐ์–ด๋ฆฐ ์˜คํ•ด๋“ค์ด ๋„˜์นœ๋‹ค.

1. Fortran90์€ FORTRAN77์„ ์™„์ „ํžˆ ํฌํ•จํ•˜๋Š” ํ‘œ์ค€์ด๋‹ค. (deleted ๋œ ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.) ๋ชจ๋“  "ํ‘œ์ค€" FORTRAN77 ์ฝ”๋“œ๋Š” ์™„์ „ํ•˜๊ฒŒ Fortran90์ด๋‹ค. ์ฝ”๋“œ์˜ "๋ชจ์–‘"์ด๋‚˜ ํ™•์žฅ์ž๋ช…์€ 77์ด๋‹ˆ 90์ด๋‹ˆ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ธฐ์ค€์ด ์•„๋‹ˆ๋‹ค.

2. Fixed form์ด๋ƒ Free form ์ด๋ƒ๋Š” ์ฝ”๋”ฉ ์Šคํƒ€์ผ ๋ฌธ์ œ์ด๋‹ค. ๋ฌผ๋ก  77์—์„  Fixed form ๋ฐ–์— ์—†๋‹ค. (90 ์ดํ›„์˜ ๊ธฐ์ค€์œผ๋กœ๋Š” ๊ทธ์ € ์„ ํƒ์˜ ๋ฌธ์ œ์ด๋‹ค) ๋Œ€๋ถ€๋ถ„์˜ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ fixed, free form์€ ํ™•์žฅ์ž๋กœ ์ฒดํฌํ•œ๋‹ค.ํ™•์žฅ์ž์— ํ‘œ์ค€์˜ ์˜๋ฏธ๋Š” ๋‹ด๊ฒจ์žˆ์ง€ ์•Š๋‹ค.

3. 77์˜ ์ด๋ฆ„์„ ๋‹ฌ๊ณ  ์žˆ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๋“ค๋„ 90์—์„œ์•ผ ํ‘œ์ค€์ธ ๊ธฐ๋Šฅ๋“ค์„ ๋‹ค์ˆ˜ "ํ™•์žฅ ๊ธฐ๋Šฅ"์œผ๋กœ ์ง€์›ํ•œ๋‹ค. 77ํ‘œ์ค€๋งŒ ๋”ฑ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. 80๋…„๋Œ€ ํ›„๋ฐ˜์ด๋‚˜ 90๋…„๋Œ€์ดํ›„ ๋งŒ๋“ค์–ด์ง„ 77์ด๋ฆ„์„ ๋‹จ ์ปดํŒŒ์ผ๋Ÿฌ๋“ค์€ ๋Œ€๋‹ค์ˆ˜๊ฐ€ (END DO, IMPLICIT NONE ๋ฌธ ๊ฐ™์€ - ANSI ํ‘œ์ค€์ด ์•„๋‹Œ ๋ฏธ๊ตญ ๊ตญ๋ฐฉ๋ถ€๋ฒ„์ „์˜ ํ™•์žฅ77๋ถ€ํ„ฐ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ. ๊ณต์‹์ ์œผ๋ก  90์ด์ƒ์˜ ๋ฌธ๋ฒ•์œผ๋กœ ๋ถˆ๋ ค์•ผ ํ•œ๋‹ค.) ์ดํ›„์— ํ‘œ์ค€ํ™”๋œ ๋ฌธ๋ฒ•์„ ํ™•์žฅ๊ธฐ๋Šฅ์œผ๋กœ ์ง€์›ํ•œ๋‹ค.

3. ํŠน์ง•[ํŽธ์ง‘]

์‚ฐ์ˆ  ๊ธฐํ˜ธ๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‚ผ๊ฐํ•จ์ˆ˜ยท์ง€์ˆ˜ํ•จ์ˆ˜ยท๋Œ€์ˆ˜ํ•จ์ˆ˜ ๋“ฑ๊ณผ ๊ฐ™์€ ๊ธฐ์ดˆ์ ์ธ ์ˆ˜ํ•™ ํ•จ์ˆ˜๋“ค์„ ๊ทธ๋Œ€๋กœ ๋ถˆ๋Ÿฌ๋‚ด์–ด ์“ธ ์ˆ˜ ์žˆ๋‹ค. ๋˜ ์‹ค์ˆ˜๋งŒ์ด ์•„๋‹ˆ๋ผ ๋ณต์†Œ์ˆ˜๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณ€์ˆ˜ ํ˜•์œผ๋กœ ์“ธ ์ˆ˜ ์žˆ๋‹ค. ๋ฌผ๋ก  ์ด๋Ÿฌํ•œ ์žฅ์ ์€ ํ˜„์žฌ์˜ ๊ฐ์ข… ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ๋Š” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ์„ ํ†ตํ•ด์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ๊ธฐ๋Šฅ์ด์ง€๋งŒ, ๋‹น์‹œ์—๋Š” ๊ต‰์žฅํžˆ ํš๊ธฐ์ ์ธ ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค. ๋ฐฐ์—ด์— ๋Œ€ํ•ด์„œ๋„ ๋งŽ์ด ์ง€์›ํ•ด ์ค˜์„œ, ์˜›๋‚ ์— ๋‚˜์˜จ ์–ธ์–ด์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  MATLAB์—์„œ์ฒ˜๋Ÿผ ์‰ฝ๊ฒŒ ๋ฐฐ์—ด์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ์ ˆ์ฐจ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ(procedural programming)์ด์ง€๋งŒ 90, 2003์„ ๊ฑฐ์น˜๋ฉด์„œ OOP์˜ ์š”์†Œ๋ฅผ ๋งŽ์ด ๋„ฃ๊ฒŒ ๋˜์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•˜์œ„ํ˜ธํ™˜์„ ์œ ์ง€ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์•„๋ฌด๋ž˜๋„ C++[9]์— ๋น„ํ•ด์„œ๋Š” ๋ฌธ๋ฒ•์ /๊ตฌ์กฐ์ ์œผ๋กœ ๋ถˆํŽธํ•œ ๋ถ€๋ถ„์ด ๋งŽ๋‹ค.

C์™€์˜ ํฐ ์ฐจ์ด์  ์ค‘ ํ•˜๋‚˜๋กœ ๋ฐฐ์—ด์˜ ๋ฐฐ์น˜ ์ˆœ์„œ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅด๋‹ค. C๋Š” Row-Major Order๋ฅผ ๋”ฐ๋ฅด๋ฉฐ, Fortran์€ Column-Major Order๋ฅผ ๋”ฐ๋ฅธ๋‹ค. C์—์„œ๋Š” (1,1) ๋‹ค์Œ์ด (1,2)์ด์ง€๋งŒ, ํฌํŠธ๋ž€์—์„œ๋Š” (2,1)๊ฐ€ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ์–ธ์–ด์™€ ํ•จ๊ป˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ๋•Œ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋„˜๊ฒจ์ค„ ๋•Œ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ์–ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ๋˜ํ•œ ๋ฐ˜๋ณต ๊ณ„์‚ฐ์„ ํ•  ๋•Œ ๊ฐ€์žฅ ์ฒ˜์Œ ์ธ์ˆ˜๋ถ€ํ„ฐ ๋Œ๋ ค ์ค˜์•ผ ์„ฑ๋Šฅ์˜ ์ €ํ•˜๊ฐ€ ์—†๋‹ค. ๋˜ํ•œ, ๋ฐฐ์—ด์˜ ์‹œ์ž‘ ์ˆซ์ž๊ฐ€ 0์ด ์•„๋‹Œ 1๋ถ€ํ„ฐ ์‹œ์ž‘์ด๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์€ ํฌํŠธ๋ž€์˜ ํŠน์ง• ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ -100 ~ 100์ฒ˜๋Ÿผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์ดˆ๊ธฐ ๋ฒ„์ „์€ ๋Œ€๋ฌธ์ž๋งŒ ์ธ์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋…์„ฑ์ด ๋”ธ๋ฆฐ๋‹ค. ๊ทธ ์ด์œ ๋Š” ํ‚ค๋ณด๋“œ๊ฐ€ ์—†๋˜ ์‹œ์ ˆ ์ฒœ๊ณต ์นด๋“œ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์ž…๋ ฅํ•ด์•ผ ํ–ˆ๋Š”๋ฐ ์—ฌ๊ธฐ์—” ์†Œ๋ฌธ์ž๊ฐ€ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ.

ํ•™๊ต ๊ต์œก์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์„œ์šธ๋Œ€ํ•™๊ต ์ˆ˜๋ฆฌ๊ณผํ•™๋ถ€๋‚˜ ํ†ต๊ณ„ํ•™๊ณผ, ์—ฐ์„ธ๋Œ€ํ•™๊ต ์ด๊ณผ๋Œ€ํ•™, ๊ฒฝํฌ๋Œ€ํ•™๊ต ์šฐ์ฃผ๊ณผํ•™๊ณผ์™€ ์›์ž๋ ฅ๊ณตํ•™๊ณผ, ์„œ์šธ์‹œ๋ฆฝ๋Œ€ํ•™๊ต ํ† ๋ชฉ๊ณตํ•™๊ณผ, ๋ถ€์‚ฐ๋Œ€ํ•™๊ต ์กฐ์„ ํ•ด์–‘๊ณตํ•™๊ณผ, ๋ถ€๊ฒฝ๋Œ€ํ•™๊ต ํ™˜๊ฒฝ๋Œ€๊ธฐ๊ณผํ•™๊ณผ, ํ•œ๊ตญํ•ญ๊ณต๋Œ€ํ•™๊ต ํ•ญ๊ณต์šฐ์ฃผ ๋ฐ ๊ธฐ๊ณ„๊ณตํ•™๊ณผ, ํ•œ๊ตญํ•ด์–‘๋Œ€ํ•™๊ต ๊ณต๊ณผ๋Œ€ํ•™, ํ™์ต๋Œ€ํ•™๊ต ๊ธฐ๊ณ„์‹œ์Šคํ…œ ๋””์ž์ธ๊ณตํ•™๊ณผ ์ˆ˜์น˜ํ•ด์„๊ณผ๋ชฉ, ๊ฒฝ๋ถ๋Œ€ํ•™๊ต ํ† ๋ชฉ๊ณตํ•™๊ณผ์™€ ์ง€๊ตฌ์‹œ์Šคํ…œ๊ณผํ•™๋ถ€ ์ฒœ๋ฌธ๋Œ€๊ธฐ๊ณผํ•™์ „๊ณต, ์•ˆ๋™๋Œ€ํ•™๊ต ๊ธฐ๊ณ„๊ณตํ•™๊ณผ, ํ•œ์–‘๋Œ€ํ•™๊ต ERICA์บ ํผ์Šค ์†Œํ”„ํŠธ์›จ์–ดํ•™๋ถ€ ์ˆ˜์น˜ํ•ด์„ ๊ณผ๋ชฉ.

3.1. ์†๋„ ๋…ผ์Ÿ[ํŽธ์ง‘]

๋ฌผ๋ฆฌํ•™ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ข…์ข… ๋ณผ์ˆ˜ ์žˆ๋Š” ๋งŒ๋…„ ๋–ก๋ฐฅ. ์ˆ˜์น˜ํ•ด์„์— ์žˆ์–ด์„œ ํฌํŠธ๋ž€์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ•ญ์ƒ ์ข‹๋‹ค๋Š” ์ด์•ผ๊ธฐ๋Š” ์•„๋‹ˆ์ง€๋งŒ, Fortran 77์˜ ์—ญ๋Ÿ‰์„ ๋ง˜๊ป ๋ฐœํœ˜ํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋Œ๋ฆด ๊ฒฝ์šฐ C++์˜ 2๋ฐฐ ์ •๋„์˜ ์†๋„๋ฅผ ๋‚ธ๋‹ค. ์ฐธ์กฐ

์—ญ๋Ÿ‰์„ ๋ฐœํœ˜ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ๋กœ๋Š” ์žฌ๊ท€์  ํ˜ธ์ถœ์„ ์“ฐ์ง€ ์•Š๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค. ํฌํŠธ๋ž€์€ ์›๋ž˜ ํ•จ์ˆ˜์˜ ์žฌ๊ท€์  ํ˜ธ์ถœ์„ ์ง€์›ํ•˜์ง€ ์•Š์•˜๋‹ค. ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๊ทธ๋•Œ๋งˆ๋‹ค ํ•„์š”ํ•œ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๊ณ , ์Šคํƒ์— ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•  ๋•Œ ํ•œ๋‹ค๋ฆฌ ๊ฑด๋„ˆ ๊ฐ„์ ‘์ ์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š” ๋“ฑ ์†๋„์— ๋ถˆ๋ฆฌํ•œ ์ ์ด ์žˆ๋‹ค. ํฌํŠธ๋ž€์˜ ์†๋„๊ฐ€ ๋น ๋ฅธ ์ด์œ ๊ฐ€ ๋ฐ”๋กœ ์ด๊ฒƒ. 90 ํ‘œ์ค€์—์„œ๋Š” ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ง€์›ํ•˜์ง€๋งŒ, ์‚ฌ์šฉ์— ์ฃผ์˜๋ฅผ ์š”ํ•œ๋‹ค.

๋ฌผ๋ก  ๋ณต์žกํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์งœ์•ผ ํ•  ๊ฒฝ์šฐ, ํฌํŠธ๋ž€77๋กœ ์งœ๋‹ค๊ฐ€ ๋Œ์•„๋ฒ„๋ฆด์ง€๋„ ๋ชจ๋ฅธ๋‹ค.

์†๋„ ์ฐจ์ด๊ฐ€ ์ƒ๊ธฐ๋Š” ์›์ธ์€ ์–ธ์–ด์˜ ์ปดํŒŒ์ผ๋Ÿฌ์˜ ํ”„๋กœ๊ทธ๋žจ ์ตœ์ ํ™”, ๋˜๋Š” Application ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ตœ์ ํ™” ๋ฌธ์ œ๋‹ค. ์–ด๋–ค ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์–ด๋–ค ๋ฌธ๋ฒ•์„ ์–ด๋–ค Architecture์— ๋งž๊ฒŒ ์ตœ์ ํ™” ํ•ด๋‚ด๋Š”๊ฐ€๋ฅผ ๊ณ ๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋ ˆ๋ฒจ์—์„œ ๊ฒฐ์ •๋  ์ˆ˜ ์—†๋‹ค. C์™€ Fortran ๋‘ ์–ธ์–ด ๋ชจ๋‘ ๊ณ ๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰, ์—„๋ฐ€ํžˆ ๋งํ•˜์ž๋ฉด C๊ฐ€ ํฌํŠธ๋ž€๋ณด๋‹ค ๋น ๋ฅธ ๊ฒŒ ์•„๋‹ˆ๋ผ C ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๊ฑฐ์นœ ํ”„๋กœ๊ทธ๋žจ์ด ํฌํŠธ๋ž€ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๊ฑฐ์นœ ํ”„๋กœ๊ทธ๋žจ๋ณด๋‹ค ๋น ๋ฅธ ๊ฑฐ๋‹ค.

C99 ํ‘œ์ค€ ๋ฐœํ‘œ ์ด์ „์— ํฌํŠธ๋ž€์ด (C์— ๋Œ€ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ)๊ฐ€์ง„ ์ตœ์ ํ™”์˜ ์œ ์ผํ•œ ์ด์ ์€ ํ”„๋กœ์‹œ์ €์˜ ์ธ์ˆ˜๊ฐ€ (pointer ๋˜๋Š” target ์†์„ฑ์„ ๊ฐ€์ง€์ง€ ์•Š๋Š”๋‹ค๋ฉด) ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์˜ค๋ฒ„๋žฉ๋˜์ง€ ์•Š์Œ์„ ๊ฐ€์ •ํ•˜๋ฏ€๋กœ ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์ž…์žฅ์—์„œ ์ตœ์ ํ™”๋œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š”๋ฐ ์ ํ•ฉํ–ˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. C์–ธ์–ด์—์„œ C99 ํ‘œ์ค€๋ถ€ํ„ฐ๋Š” restrict keyword๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ช…์‹œํ•˜์—ฌ ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด ์˜ค๋ฒ„๋žฉ ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ทธ๋ ‡์ง€ ์•Š์€ ์ง€๋ฅผ ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ๋ช…์‹œ์ , ์„ ํƒ์ ์œผ๋กœ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.[10][11][12] ์ฆ‰, ํฌ์ธํ„ฐ ์•จ๋ฆฌ์–ด์‹ฑ์˜ ์„ ํƒ์„ ๊ณผ๊ฑฐ์—๋Š” ๊ฐ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ปดํŒŒ์ผ ์‹œ ์ตœ์ ํ™” ์˜ต์…˜์„ ํ†ตํ•ด ๊ฒฐ์ •ํ•˜์˜€์œผ๋‚˜ ํ˜„์žฌ๋Š” ์–ธ์–ด์˜ ๋ฌธ๋ฒ• ํ‘œ์ค€์œผ๋กœ ํฌํ•จํ•˜๋„๋ก ํ•˜์˜€๋‹ค.

3.2. ํฌํŠธ๋ž€์ด ์‚ฌ์šฉ๋˜๋Š” ์˜ˆ[ํŽธ์ง‘]

ํฌํŠธ๋ž€์€ ๊ณผํ•™ ๊ณ„์‚ฐ์šฉ ์–ธ์–ด๋ฅผ ๋ชฉํ‘œ๋กœ IBM์ด 1950๋…„๋Œ€ ๊ฐœ๋ฐœํ•œ ์–ธ์–ด๋‹ค. ๋‹ค๋งŒ, ์“ธ๋งŒํ•œ ๋ฒ”์šฉ ๊ฐœ๋ฐœ์–ธ์–ด๊ฐ€ ๋ถ€์กฑํ–ˆ๋˜ ์‹œ๊ธฐ์˜€๊ณ  ์–ธ์–ด ์‚ฌ์šฉ์ž์ธต์ด ๋‘๊บผ์› ๋˜ ๋งŒํผ ๋ฒ”์šฉ์ ์ธ ์šฉ๋„๋กœ๋„ ์–ธ์–ด๊ฐ€ ์‚ฌ์šฉ๋˜๊ธด ํ•˜์˜€๋‹ค. ๊ณผํ•™๊ธฐ์ˆ ์šฉ ์–ธ์–ด๋กœ๋Š” ํฌํŠธ๋ž€, ์ƒ์—…์šฉ ์–ธ์–ด๋กœ๋Š” ์ฝ”๋ณผ์ด๋ผ๊ณ  ํ•  ๋งŒํผ ๋Œ€ํ‘œ์ ์ธ ์ œ 3์„ธ๋Œ€ ์–ธ์–ด์˜€์ง€๋งŒ 1980๋…„๋Œ€ ์ดํ›„๋กœ ๋ณด๋‹ค ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ์ œ 4์„ธ๋Œ€ ์–ธ์–ด์˜ ์ถœํ˜„์œผ๋กœ ์ด์ œ๋Š” ๋ฒ”์šฉ ๋ชฉ์ ์œผ๋กœ๋Š” ๊ฑฐ์˜ ์“ฐ์ด์ง€ ์•Š๊ฒŒ ๋˜์—ˆ์œผ๋ฉฐ, ๋Œ€๋ถ€๋ถ„ C ์–ธ์–ด๋กœ ๊ต์ฒด๋˜์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์• ๋‹น์ดˆ ์ˆ˜์น˜ํ•ด์„์šฉ์— ํŠนํ™”์‹œ์ผœ ๊ฐœ๋ฐœ๋˜์—ˆ๊ณ , ๋ฐฉ๋Œ€ํ•œ ์ˆ˜์น˜ํ•ด์„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋Ÿ‰์˜ ๊ณ„์‚ฐ์„ ํ•ด์•ผ ํ•˜๋Š” ํŠน์ • ๋ถ„์•ผ์—์„œ๋Š” ์ค‘์š”ํ•œ ์–ธ์–ด๋กœ ๋ช…๋งฅ์„ ์ด์–ด๊ฐ€๊ณ  ์žˆ๋‹ค.

์ˆ˜์น˜๊ณ„์‚ฐ๋ถ„์•ผ๋กœ ์—ฐ๊ตฌ๊ด€๋ จ ์ฝ”๋“œ๋ฅผ ์ฐพ์œผ๋ฉด ํฌํŠธ๋ž€ ์ฝ”๋“œ๋กœ๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ๋ถ„์•ผ๊ฐ€ ๋‹ค ์žˆ๋‹ค. ๊ทธ๊ฒƒ๋„ ์†Œ์œ„ ๋“ฃ๋ณด์žก๋“ค์ด ๋งŒ๋“ ๊ฒŒ ์•„๋‹ˆ๋ผ ๊ต๊ณผ์„œ์— ์ด๋ฆ„์ด ์‹ค๋ฆด๋งŒํ•œ ์œ ๋ช…ํ•œ ์‚ฌ๋žŒ๋“ค์ด ๋งŒ๋“ค์–ด์„œ ์ €๋„์—์„œ ์‹ค๋ ธ๊ณ  ์ˆ˜์‹ญ๋…„๊ฐ„ ์‚ฌ์šฉ๋˜๊ณ  ์ˆ˜๋„ ์—†์ด ๊ฒ€์ฆ๋๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ˆ˜ํผ์ปดํ“จํ„ฐ ๋“ฑ์˜ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ด์šฉํ•œ ๋Œ€๋Ÿ‰์˜ ๊ณ„์‚ฐ์„ ์œ„ํ•œ MPI(Message passing interface)์˜ ๊ฒฝ์šฐ, ํฌํŠธ๋ž€๊ณผ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ๋งŒ ๋‚˜์˜จ๋‹ค. ์ฆ‰ ์Šˆํผ์ปดํ“จํ„ฐ์—์„œ๋Š” ๋ฌด์กฐ๊ฑด C ์•„๋‹ˆ๋ฉด ํฌํŠธ๋ž€์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ. ์—„์ฒญ๋‚œ ์–‘์˜ ์ˆ˜์น˜๊ณ„์‚ฐ์ด ํ•„์š”ํ•œ ๋ถ„์•ผ์˜ ๊ฒฝ์šฐ ์ˆ˜ํผ์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ˆ˜ํผ์ปดํ“จํ„ฐ๋Š” ๊ฐ€๊ฒฉ์ด ์•„์ฃผ ๋น„์‹ธ๊ณ  ์œ ์ง€๋น„๊ฐ€ ๋งŽ์ด ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์ข…๋Ÿ‰์ œ์ฒ˜๋Ÿผ ๋ˆ์„ ๋ฐ›์•„์„œ ์šด์˜ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ๋ˆ์„ ๋ฐ›๋˜ ๋ฐ›์ง€์•Š๋˜ ์‹ค์ œ ์ž์‹ ์ด ์†Œ์†๋œ ์—ฐ๊ตฌ์†Œ๋‚˜ ํšŒ์‚ฌ ์†Œ์œ ์˜ ์ˆ˜ํผ์ปดํ“จํ„ฐ๋ผ๋„ ์ง๊ธ‰์ด๋‚˜ ์†Œ์†์— ๋”ฐ๋ผ์„œ ์ˆ˜ํผ์ปดํ“จํ„ฐ ์‚ฌ์šฉ์‹œ๊ฐ„๊ณผ ์‚ฌ์šฉ๋ฒ”์œ„๊ฐ€ ์ œ์•ฝ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ์—ฐ๊ตฌ์ž๋“ค์€ ์ˆ˜ํผ์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ• ๋•Œ ์ž์‹ ์˜ ์ปดํ“จํ„ฐ์—์„œ ์ตœ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์™„์„ฑํ•˜๊ณ  ์ˆ˜ํผ์ปดํ“จํ„ฐ์— ์—…๋กœ๋“œํ•ด์„œ ์‹คํ–‰ ์‹œ์ผœ๋ณธํ›„ ์ˆ˜์ •ํ•˜๊ณ  ๋˜ ์ˆ˜์ •ํ•˜๋Š”์ผ์„ ๋ฐ˜๋ณตํ•œ๋‹ค. ๋ฌผ๋ก  ํ•œ๋ฒˆ์— ์‹คํ–‰๋˜๊ธธ ์†Œ์›ํ•˜๋ฉด์„œ. ์ž๊ธฐ์˜ ์ˆ˜ํผ์ปดํ“จํ„ฐ ์‚ฌ์šฉ์‹œ๊ฐ„์„ ์กฐ๊ธˆ์ด๋ผ๋„ ์ ˆ์•ฝํ•˜๊ธธ ๋ฐ”๋ผ๋Š” ๊ฑด ๋ชจ๋“  ์ˆ˜ํผ์ปดํ“จํ„ฐ ์‚ฌ์šฉ์ž์˜ ์†Œ๋ง์ด๋‹ค. ์ด๋Ÿฐ ์ด์œ ๋กœ ์ˆ˜ํผ์ปดํ“จํ„ฐ์—์„œ ๊ฐ€์žฅ ๋‹จ๊ธฐ๊ฐ„์— ์„ฑ๊ณผ๋ฅผ ๋‚ด๊ณ  ๊ฐ€์žฅ ๋งŽ์ด ์ž…์ฆ๋œ ์ˆ˜ํผ์ปดํ“จํ„ฐ ๊ด€๋ จ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๊ฐ€ ๋ฐ”๋กœ ํฌํŠธ๋ž€์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์ฝ”๋“œ์ด๋‹ค. ์ด๊ฒŒ ํ˜„์žฌ ํฌํŠธ๋ž€์˜ ์•„์ฃผ ๊ฐ•๋ ฅํ•œ ์žฅ์ ์ธ ๊ฒƒ.

๋ฌผ๋ฆฌํ•™๊ณผ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์‹œ๋กœ๋Š”, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ์žˆ๋‹ค. ์›์žํ•ต๋‚ด ์•ฝ๋ ฅ์— ์˜ํ•œ ํ•ต์ž๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์€ ๊ต‰์žฅํ•œ ์—ฐ์‚ฐ์„ ํ•„์š”๋กœ ํ•˜๋Š”๋ฐ ์ตœ๋Œ€ํ•œ ํšจ์œจ์„ ์˜ฌ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ ํฌํŠธ๋ž€์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•œ๋‹ค. ๋‹ค์ž…์ž๊ณ„ ์‹œ๊ฐ„์— ์˜์กดํ•˜๋Š” ์„ญ๋™์„ ๊ตฌํ•˜๋ ค๋ฉด ์ˆ˜์น˜๊ณ„์‚ฐ๋ฐ–์— ์—†๋Š”๋ฐ ๋ง‰๋Œ€ํ•œ ๊ณ„์‚ฐ์—๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋‹ˆ ๊ฑฐ๊ธฐ์„œ ํฌํŠธ๋ž€์ด ๋‹ค์‹œ ๋“ฑ์žฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์–‘์ž๊ณ„์‚ฐ, ํ”ํžˆ ์ œ์ผ์›๋ฆฌ๊ณ„์‚ฐ์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๋ถ„์•ผ์—์„œ๋„ ํฌํŠธ๋ž€์œผ๋กœ ์งœ์—ฌ์ ธ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ๋งŽ์ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ”„๋กœ๊ทธ๋žจ๋“ค์€ ๋ฌผ์งˆ ๋‚ด๋ถ€์˜ ์›์ž์™€ ์ „์ž ๊ตฌ์กฐ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ํ•ด์„ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋ฉฐ, ์—ญ์‹œ ๋ง‰๋Œ€ํ•œ ๊ณ„์‚ฐ์„ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํฌํŠธ๋ž€์œผ๋กœ ์งœ์—ฌ์ ธ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

๋Œ€๊ธฐ๊ณผํ•™๊ณผ ํ•ด์–‘ํ•™์˜ ๊ฒฝ์šฐ, ์ผ๊ธฐ์˜ˆ๋ณด์— ์“ฐ์ด๋Š” ํ•ด์„๋ชจ๋ธ๊ณผ ์ˆ˜์น˜๋ชจ๋ธ๋ถ„์•ผ์˜ ์ˆ˜์น˜๋ชจ๋ธ์ด ๊ฑฐ์˜ 100% ํฌํŠธ๋ž€์œผ๋กœ ์งœ์—ฌ์ ธ์žˆ๋‹ค. ์•ž์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ๊ต‰์žฅํ•œ ๊ณ„์‚ฐ์„ ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ์–ธ์–ด๋ณด๋‹ค ๋น ๋ฅด๊ณ  ๊ฐ„๊ฒฐํ•œ ํฌํŠธ๋ž€์„ ๊ณ„์† ์‚ฌ์šฉํ•ด์˜ค๊ณ  ์žˆ๋‹ค(ํฌํŠธ๋ž€์œผ๋กœ๋งŒ ์งœ๋‘ฌ์„œ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์–ด๋ ต๋‹ค). ๋Œ€๊ธฐ๊ณผํ•™์ด ์„ธ๊ณ„ ์Šˆํผ์ปดํ“จํ„ฐ ์‚ฌ์šฉ๋Ÿ‰์˜ 2์œ„๋ฅผ ์ฐจ์ง€ํ•œ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•˜๋ฉด ์•ž์œผ๋กœ๋„ ํฌํŠธ๋ž€์ด ์žŠํ˜€์ง€์ง€๋Š” ์•Š์„ ๊ฒƒ ๊ฐ™๋‹ค.

X-ray๋ฅผ ๋‹ค๋ฃจ๋Š” ์‹œ๋ฎฌ๋ ˆ์ด์…˜์—๋„ ์‚ฌ์šฉ๋˜๋Š”๋ฐ, PENELOPE๋ผ๋Š” ๋ชฌํ…Œ ์นด๋ฅผ๋กœ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ์ด ์–ธ์–ด๋กœ ์งœ์—ฌ์ ธ ์žˆ๋‹ค. ๋ชฌํ…Œ ์นด๋ฅผ๋กœ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ด๋ž€ ํ•ด์„์ ์œผ๋กœ ์ผ์ • ๋ชจ๋ธ์„ ๋„์ž…ํ•ด์„œ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๊ณ , ๋ฌด์ž‘์ • ๋‹ค์ˆ˜์˜ ์ž…์ž(์ด ๊ฒฝ์šฐ์—” X-ray ๊ด‘์ž)๋ฅผ ๋ฟŒ๋ ค์„œ ๊ฐ์ฒด ํ•˜๋‚˜ํ•˜๋‚˜๋‹น ๋žœ๋คํ•˜๊ฒŒ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ ์šฉํ•ด ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ด๋ผ ์—ญ์‹œ ๋ฌด์ง€๋ง‰์ง€ํ•œ ๊ณ„์‚ฐ๋Ÿ‰์ด ํ•„์š”ํ•˜๋‹ค. ๋•Œ๋ฌธ์— ํฌํŠธ๋ž€์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฐ˜๋„์ฒด ๋ฌผ์„ฑ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ํ•˜๋Š” TCAD๋„ ๋งˆ์ฐฌ๊ฐ€์ง€. ์Šคํƒ ํฌ๋“œ์—์„œ ์ตœ์ดˆ๋กœ ์ถœํ•˜(?)๋œ PISCES ๋ถ€ํ„ฐ ๋‹ค ์ด ์–ธ์–ด๋กœ ๋˜์–ด ์žˆ๋‹ค.

์ „๋ฌธ๋ถ„์•ผ์—์„œ๋Š” ๋งค์šฐ ๋งŽ์€ ๊ณ„์‚ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ํฌํŠธ๋ž€ ํ˜•์‹์œผ๋กœ ๋˜์–ด ์žˆ๋‹ค. ์ด๋“ค ์ฝ”๋“œ๋ฅผ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ํฌํŒ…ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค๋Š” ํฌํŠธ๋ž€์„ ๋ฐฐ์›Œ์„œ ์“ฐ๋Š” ๊ฒƒ์ด ๋” ๋น ๋ฅด๊ณ  ๊ณ„์‚ฐ๋„ ํšจ์œจ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ž˜๋œ ์ž์—ฐ๊ณผํ•™/๊ณตํ•™์˜ ๊ณ„์‚ฐ ์ฝ”๋“œ๋Š” ํฌํŠธ๋ž€์œผ๋กœ ๋œ ๊ฒƒ์ด ๋งŽ๋‹ค. ์–ผํ• ๋ด์„œ C๋กœ ์งฐ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ์•„๋ฌด๋ฆฌ ๋ด๋„ ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค์—์„œ ์œˆ๋„์šฐ ๊ธฐ๋ณธ ํ•จ์ˆ˜๋ฅผ ๋ฌด์ง€๋ง‰์ง€ํ•˜๊ฒŒ ๊ฐ–๋‹ค ์“ด ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ํ”„๋กœ๊ทธ๋žจ๋„ ๋‚˜์ค‘์— ์•Œ๊ณ ๋ณด๋ฉด 10MB๋„ ์•ˆ๋˜๋Š” ์‹คํ–‰ํŒŒ์ผ ํ•˜๋‚˜, ํ˜น์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ์ด ํ•ต์‹ฌ ๊ณ„์‚ฐ ๋ชจ๋“ˆ์ด๊ณ  ์ €๊ฒƒ์€ ํฌํŠธ๋ž€์œผ๋กœ ๋งŒ๋“  ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ํŒŒ์ด์„ ์˜ ๋Œ€ํ‘œ์ ์ธ ๊ณผํ•™๊ณ„์‚ฐ์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ SciPy์˜ ํ•ต์‹ฌ์ฝ”๋“œ๋Š” ํฌํŠธ๋ž€์ด๋‚˜ C๋กœ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋‹ค. #

์ด์ฒ˜๋Ÿผ ํ•™์ˆ  ๋˜๋Š” ์—ฐ๊ตฌ ์šฉ๋„์˜ ์ฝ”๋“œ์—๋Š” ์•„์ง๊นŒ์ง€ ํฌํŠธ๋ž€์ด ๋งŽ์ด ์• ์šฉ๋˜๋Š”๋ฐ, ์—ฌ๊ธฐ์—๋Š” ํšจ์œจ์„ฑ ์ธก๋ฉด ์ด์™ธ์—๋„ ๊ตณ์ด ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๋‹ค์‹œ ๋งŒ๋“ค ์œ ์ธ์ด ์—†๋‹ค๋Š” ์‚ฌ์‹ค ๋˜ํ•œ ์ž‘์šฉํ•œ๋‹ค. ์—ฐ๊ตฌ์— ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ์˜ ์ฝ”์–ด ๋ถ€๋ถ„์€ ์œ ์„œ๊นŠ๊ณ  ์˜ค๋ž˜๋œ ๊ฒƒ๋“ค์ด ๋งŽ์œผ๋ฉฐ, ์–ด๋–ค ๊ฒƒ์€ ์ง€๋„ ๊ต์ˆ˜์˜ ์ง€๋„ ๊ต์ˆ˜์˜ ์ง€๋„ ๊ต์ˆ˜๋กœ๋ถ€ํ„ฐ ๋‚ด๋ ค์˜จ ๊ฒƒ๋“ค๋„ ์žˆ๋‹ค(...). ์ด๋Ÿฌํ•œ ์ฝ”๋“œ๋Š” ๋‹น์—ฐํžˆ ํฌํŠธ๋ž€์œผ๋กœ ์งœ์—ฌ์ ธ ์žˆ๋Š”๋ฐ, ์ด ๊ฒฝ์šฐ์—๋Š” ์ฝ”๋“œ๊ฐ€ ํ™•์žฅ๋˜๊ณ  ๋ฉ์น˜๊ฐ€ ์ปค์ ธ๋„ ์ฝ”์–ด์™€์˜ ํ˜ธํ™˜์„ ์œ„ํ•ด ํฌํŠธ๋ž€์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์ด ๊ฒฝ์šฐ ์ž ์ •์ ์ธ ์‚ฌ์šฉ์ž๋Š” ์—ฐ๊ตฌ์› ๋‚ด์ง€๋Š” ๋Œ€ํ•™์›์ƒ์ด ๋˜๋Š”๋ฐ, ์ด๋“ค์—๊ฒŒ ์žˆ์–ด์„œ ๋ฌธ๋ฒ•์ด ๋‹จ์ˆœํ•œ ํฌํŠธ๋ž€์„ ์ตํžˆ๋Š” ๊ฒƒ์€ ํฌ๊ฒŒ ๋ถ€๋‹ด์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. ๊ฒฐ๊ตญ ํฌํŠธ๋ž€์„ ์ตํžˆ๋ฉด ๋  ์ผ์„ ๊ตณ์ด ์†๋„๊ฐ€ ๋” ๋А๋ฆฐ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ์‹œ๊ฐ„ ๋‚ญ๋น„, ์ธ๋ ฅ ๋‚ญ๋น„๊ฐ€ ๋˜๋Š” ์…ˆ. ๊ทธ๋ ˆ๊ณ ๋ฆฌ ๋งจํ๋Š” ํ•™๋ถ€์ƒ 1ํ•™๋…„ ๋•Œ๋ถ€ํ„ฐ ํฌํŠธ๋ž€์„ ๋งค์šฐ ์ž˜ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—(...) ํ”„๋ฆฐ์Šคํ„ด์—์„œ ์—ฐ๊ตฌ ์กฐ๊ต๋กœ ์—ฌ๋ฆ„ ์ธํ„ด์ด ๊ฐ€๋Šฅํ–ˆ๋‹ค.

์ž˜ ์“ฐ๊ณ  ์žˆ๋Š” ํฌํŠธ๋ž€ legacy code๋ฅผ ๊ตณ์ด ์—๋Ÿฌ๋ฅผ ๋ฌด๋ฆ… ์จ๊ฐ€๋ฉฐ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๋ณ€ํ™˜ํ•  ํ•„์š”๋Š” ์—†๋‹ค. ๊ทธ๋Ÿฐ ํ–‰๋™์„ ํ•˜๋ ค๊ณ  ์‹œ๊ฐ„์„ ์“ฐ๋‹ค๊ฐ€ ์ง€๋„๊ต์ˆ˜ํ•œํ…Œ ๊ฑธ๋ฆฌ๋ฉด ๋ฐ”๋กœ "๊ทธ๋ƒฅ ๊ธฐ์กด์— ์žˆ๋Š” ํฌํŠธ๋ž€ ๊ฐ€์ ธ๋‹ค ์จ" ๋ž€ ๋ง์„ ๋“ฃ๊ธฐ ์‹ญ์ƒ์ด๋‹ค. ์ž์‹ ์ด ํฌํŠธ๋ž€๊ณผ ๋‹ค๋ฅธ ์–ธ์–ด ๋‘˜ ๋‹ค ์•„์ฃผ ์ž˜ ํ•œ๋‹ค๋ฉด ์ง€๋„๊ต์ˆ˜์—๊ฒŒ ์•ˆ ๊ฑธ๋ฆฌ๊ฒŒ ๋ณ€ํ™˜ํ•ด๋ณด๋ผ. ๋ฌผ๋ก  ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฉด ์ง€๋„๊ต์ˆ˜ ์ž…์—์„œ ๋‚˜์˜ค๋Š” ์ฒซ๋ง์€ "๊ทธ๋ƒฅ ํฌํŠธ๋ž€ ์“ฐ์ง€ ์“ธ๋ฐ์—†๋Š” ์ง“ ํ•˜๋‹ค๊ฐ€ ๋…ผ๋ฌธ ์–ธ์ œ ์“ธ๋ž˜". ์ด ๋ง์„ ๋“ฃ๊ณ  ์—ฐ๊ตฌ์‹ค ๋ถ„์œ„๊ธฐ๋Š” ๊ธ‰๋ฝ.

๊ฐ€๋” ์˜ค๋ž˜๋œ ํŒœํƒ‘ PC (ํœด๋ ›ํŒฉ์ปค๋“œ์˜ 200LX๋‚˜ IBM์˜ PC110๊ฐ™์€...)์—๋‹ค๊ฐ€ ํฌํŠธ๋ž€ ์ปดํŒŒ์ผ๋Ÿฌ ๊น”๊ณ  ๊ณตํ•™์šฉ ๊ณ„์‚ฐ๊ธฐ ๋Œ€์‹ ์œผ๋กœ ์“ฐ๋Š” ๊ดด์ธ๋“ค๋„ ์กด์žฌํ•œ๋‹ค.

๋‹ค๋งŒ ์š”์ฆ˜์€ ๋Œ€ํ•™๊ต์—์„œ๋„ ํ•™์›์—์„œ๋„ ํฌํŠธ๋ž€์„ ๊ฐ€๋ฅด์น˜๋Š” ๊ณณ์ด ๊ฑฐ์˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— (์‹ฌ์ง€์–ด ์ฑ…๋„ ๊ฑฐ์˜ ์—†๋‹ค) ์ ์–ด๋„ ํ•œ๊ตญ์—์„œ๋Š” ์žŠํ˜€์ง„ ์–ธ์–ด ์ทจ๊ธ‰์„ ๋ฐ›๊ฒŒ๋  ๋‚ ์ด ๋ฉ€์ง€ ์•Š์•˜๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”„๋กœ๊ทธ๋žจ์ด ์ฝ”๋ณผ์„ ๋Œ€์ฒดํ–ˆ๋“ฏ์ด ํฌํŠธ๋ž€ ์—ญ์‹œ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์—๋Š” MATLAB, ๋งค์Šค๋งคํ‹ฐ์นด ๊ฐ™์€ ๊ฐ•๋ ฅํ•œ ์ˆ˜์น˜๊ณ„์‚ฐ ํ”„๋กœ๊ทธ๋žจ๋“ค์—๊ฒŒ ์ž๋ฆฌ๋ฅผ ๋‚ด์ฃผ๊ณ  ์žˆ๋‹ค.[13] ํ•˜์ง€๋งŒ ํฌํŠธ๋ž€ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” gnu ์—์„œ ๋ฌด๋ฃŒ๋กœ ๋ฐฐํฌํ•˜๋Š” ๋Œ€์‹  ๋งคํ‹€๋žฉ, ๋งค์Šค๋งคํ‹ฐ์นด๋Š” ์ƒ์šฉ ํ”„๋กœ๊ทธ๋žจ์ด๋ผ ์™„๋ฒฝํ•˜๊ฒŒ ๋Œ€์ฒดํ•˜๊ธฐ๋Š” ํž˜๋“ค๋‹ค. ์‹ค์ œ๋กœ ๋ฌผ๋ฆฌํ•™ ์ „๊ณต์ž๊ฐ€ ์ปดํ“จํ„ฐ๊ณตํ•™ ์ „๊ณต์ž์—๊ฒŒ ์ด ์–ธ์–ด์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐํ•˜๋ฉด ์ปดํ“จํ„ฐ๊ณตํ•™ ์ „๊ณต์ž๋Š” '์—ญ์‚ฌ ์†์œผ๋กœ ์‚ฌ๋ผ์ง„ ์ค„ ์•Œ์•˜๋˜ ์–ธ์–ด๊ฐ€ ์•„์ง๋„ ํ™œ๋ฐœํžˆ ์“ฐ์ด๊ณ  ์žˆ๋‹ค๋‹ˆ!'ํ•˜๋ฉด์„œ ๋†€๋ผ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

4. ๊ธฐํƒ€[ํŽธ์ง‘]

์ „ํˆฌ๊ธฐ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ์‚ฌ์šฉ๋œ ์ „์ ์ด ์žˆ๋‹ค. F-15S์˜ ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ํฌํŠธ๋ž€์œผ๋กœ ์ฝ”๋”ฉ๋˜์–ด์žˆ๋Š” ๊ฒƒ. ์ด ๋ฐ”๋‹ฅ์€ FORTRAN๋ณด๋‹ค ๋” ์›์‹œ์ (?)์ธ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.[14]

์šฐ์ฃผ๊ฐœ๋ฐœ ์—ญ์‚ฌ์˜ ํ•œ ๊ธฐ๋‘ฅ์ด์—ˆ๋˜ ์–ธ์–ด์ด๊ธฐ๋„ ํ•˜๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํƒœ์–‘๊ณ„๋ฅผ ๋ฒ—์–ด๋‚œ ํƒ์‚ฌ์„ ์ธ ๋ณด์ด์ €๋Š” ์›๋ž˜ ํฌํŠธ๋ž€ 5๋กœ ์ฝ”๋“œ๊ฐ€ ์งœ์—ฌ์กŒ๋‹ค. ๋‚˜์ค‘์— ์œ ๋ก€์—†๋Š” ์›๊ฒฉ ๋ฆฌํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ†ตํ•ด ํฌํŠธ๋ž€ 77์„ ์ด์‹ํ–ˆ๋‹ค๊ฐ€, ํ˜„์žฌ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ฝ”๋“œ๋ฅผ C ๊ณ„์—ด ์–ธ์–ด๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ์ƒํƒœ์ด์ง€๋งŒ ๊ณ„์‚ฐ ํšจ์œจ ๋“ฑ์˜ ์ด์œ ๋กœ ์ผ๋ถ€ ์ฝ”๋“œ์—๋Š” ํฌํŠธ๋ž€ 77์ด ๊ณ„์† ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค.

ํ•œํŽธ, ํฌํŠธ๋ž€์œผ๋กœ ๋‚˜์˜จ ๊ฒŒ์ž„๋„ ์žˆ๋‹ค. ์„ธ๊ณ„ ์ตœ์ดˆ์˜ ์–ด๋“œ๋ฒค์ฒ˜ ๊ฒŒ์ž„์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋Š” Colossal Cave Adventure๋ผ๋Š” ๊ฒŒ์ž„์œผ๋กœ, ํ˜„์žฌ๋„ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ฐ›์•„์„œ ์ปดํŒŒ์ผํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋„์–ด์“ฐ๊ธฐ๋ฅผ ๋ฌด์‹œํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋ณ€์ˆ˜ ๋“ฑ์˜ ์‹๋ณ„์ž์— ๊ณต๋ฐฑ ๋ฌธ์ž๋ฅผ ํฌํ•จํ•ด์„œ ์จ๋„ ๋œ๋‹ค. CNT X ๋ผ๊ณ  ์ ์–ด๋„ ์ž˜ ๋™์ž‘ํ•œ๋‹ค๋Š” ์†Œ๋ฆฌ.[15] ๋ฐ˜๋ฉด ์ค„๋ฐ”๊ฟˆ์€ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค.

๋ฃจํ”„์˜ ์‚ฌ์šฉํ•˜๋Š” int i ์˜ ๊ธฐ์›์ด๊ธฐ๋„ ํ•˜๋‹ค. ํฌํŠธ๋ž€์€ ๋ฏธ๋ฆฌ ๋ณ€์ˆ˜๋“ค์„ ์„ ์–ธํ•ด ๋‘์—ˆ๋Š”๋ฐ, ์ด๋•Œ i ๋ถ€ํ„ฐ N ๊นŒ์ง€ int ํ˜• ์ด์˜€๋‹ค. ( ๋‚˜๋จธ์ง€๋Š” ์‹ค์ˆ˜ํ˜• ) ๊ทธ๋ž˜์„œ int ํ˜•์˜ ์ฒซ๋ฒˆ์งธ ์˜ค๋Š” i ๊ฐ€ ๋ฃจํ”„์˜ ์ธ๋ฑ์Šค๋กœ ์“ฐ์ด๊ธฐ ์‹œ์ž‘ํ•œ ๊ฒƒ์ด๋‹ค.

์ตœ์‹  IDE ์ค‘์—์„œ๋Š” CLion์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด Fortran์„ ์ž˜ ์ง€์›ํ•œ๋‹ค.
[1] http://www.nag.co.uk/sc22wg5
[2] http://www.j3-fortran.org
[3] ํ™€๋Ÿฌ๋ฆฌ์Šค์‹์€ FORMAT ๋ฌธ๊ณผ ๋ฌธ์ž์—ด์ƒ์ˆ˜์— Hํ‘œ์‹œ๋ฅผ ์ด์šฉํ•œ ๊ธฐ๋ฒ•์ด๋‹ค. ํ—ˆ๋จผ ํ™€๋Ÿฌ๋ฆฌ์Šค์˜ ์ด๋ฆ„์„ ๋•„๋‹ค. ํ˜„์žฌ ์ด ํ™€๋Ÿฌ๋ฆฌ์Šค ํ‘œํ˜„์€ ์˜๋ฏธ๊ฐ€ ์—†์ง€๋งŒ.. ์•„์ง๋„ ๋ฉ‹ ๋ชจ๋ฅด๊ณ  ์‚ฌ์šฉํ•˜๋Š” ์Šต๊ด€์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์ด ์žˆ๊ณ , ๊ทธ๋Ÿฐ ์˜ค๋ž˜๋œ ์ฝ”๋“œ๋“ค๊ณผ ์ •์‹ ์  ๊ต๊ฐ์„ ๋‚˜๋ˆ„๋ฉฐ ์ฝ”๋”ฉ ๊ณ ๊ณ ํ•™์„ ์ง€ํ–ฅํ•˜๋Š” ์ผ๋“ค์ด ๋ฒŒ์–ด์ง€๊ณ  ์žˆ๋‹ค. ์˜๋ฌธ ์œ„ํ‚ค๋ฐฑ๊ณผ ์ฐธ์กฐ.
[4] ftp://ftp.nag.co.uk/sc22wg5/ARCHIVE/mil_std_1753.html
[5] Fortran2008์— ์ถ”๊ฐ€๋œ Do Concurent๋ฅผ "์ œ๋Œ€๋กœ ๋œ Forall"๋กœ ์—ฌ๊ธฐ๋ฉด ๋œ๋‹ค.
[7] ์•„์ง ํ‘œ์ค€์ด์ง€๋งŒ, ์•ž์œผ๋กœ์˜ ํ‘œ์ค€์—์„œ ์‚ญ์ œ๋  ๊ฒƒ์„ ๋ฏธ๋ฆฌ ์•Œ๋ฆฌ๋Š” ๊ฒƒ. ๋‹ค๋ฅธ ์–ธ์–ด์˜ deprecated๋ฅผ ์˜๋ฏธ
[8] ๊ณผ๊ฑฐ์˜ ํ‘œ์ค€์ด์—ˆ์ง€๋งŒ, ํ˜„์žฌ๋Š” ์ง€์›Œ์ง„ ํ‘œ์ค€
[9] ํฌํŠธ๋ž€์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ๋Œ€์•ˆ์€ ์†๋„ ๋ฌธ์ œ๋กœ C๋‚˜ C++๋ฐ–์— ์—†๋‹ค.
[13] ํ•ด์™ธ๋Š” ์ˆ˜์น˜ํ•ด์„, ์Šˆํผ์ปดํ“จํ„ฐ ๋ถ„์•ผ์—์„œ ํฌํŠธ๋ž€์ด ์—ฌ์ „ํžˆ ํ”๋“ค๋ฆผ์ด ์—†๋Š” ๊ฐ•์ž์˜ ์œ„์น˜์— ์žˆ๋‹ค.
[14] Ada๋„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.
[15] ๋•๋ถ„์— ์ปดํŒŒ์ผ๋Ÿฌ ๋งŒ๋“ค๊ธฐ๊ฐ€ ํž˜๋“ค์–ด์ง„๋‹ค.