ィ ィー ィェィーィケ ィ ィ 01 ィィ ィー0201ィェ ィィ ィ 0903ィィ0802ィェィィ ィコ ィ ィャィャィィ080609ィ ィ

Similar documents
Áeçuìÿííûé-1

Na2008_10

Gender.pm6

tom2.p65

Aksenov.vp

<D1E0F3F8EAE8ED312E7670>

Accounting Report

< FCEE2F7E8EDF1EAE8E95FCAF0E8ECE8EDE0EBFCEDEEE520EDE02E2E2E>

I. 02ィ ィエィィ02 ィィ ィー ィーィィ ツ0209ィコィィ ィ ィコ02ィィ06ィェィェィ 07 ィコ ィィ07: ィケ07ィコ06ィェ0609 (06ィー09. 08

4_2009.p65

untitled

Untitled-1

ィコィィィェ ィコ060909ィコィィィヲ 03ィョ08ィェィ 05 ィャ020301ィョィェィ ィェ ィ 09ィ ィ 09ィー09ィョ02ィー 08ィ 0409ィィィーィィ06 ィャ020301ィョィ

Îáëîæêà1.pm6

Est_na_perelome.pdf

ィ ィェ 0203ィ 07ィ ィー04ィヲ ィャ02ィェィー ィコ09ィ

1300ィィ ィ ィィ04ィ ィー0608 ィィ ィェィェ ィ ィ , 00ィー ィ ィェィィ ツ0209ィコィィ02 03ィィ01ィコ0609ィーィィ 00ィィ ィ ィィ04ィ ィー0608,

-15_Kam

J1_1998

1307 チ チ チ01040

13

KITMIR2_04.vp

untitled

untitled

untitled

VP:CorelVentura 7.0

МР153.pm6

チ ィィ 09ィー08ィ ィェ ィィ ィー0907 ィ ィ ィーィェ04ィャ 05ィィ

untitled

R03_LAVAMAT_54610_01_oS_5kg_sy_ZP.bk

Verstka_#14.FH10

ULANOV.qxd

Èçâ_¹4(95)_2011_ñ1.pm6

Untitled-2

BEJ pmd

КАФЕДРА ТЕОРИИ ВЕРОЯТНОСТЕЙ

ィ ィコ02ィィ02ィヲ ィャィィ ィ ィェ0609ィェ ィケ ィコ06ィヲ, ィ 09ィ ィー ィィ N 19, 00.02ィャ09ィコ;

R03_KB9820E_EU_Compact_R5.bk

TIT.p65

Мир Евразии №1(2016)

<443A5C4F6C65675CC8C8CCCA5CD1DAC5C7C4DB5CF1FAE5E7E42DD0F3F1F1E05CCCE0F2E5F0E8E0EBFB20D1FAE5E7E4E05C56656E C546F6D312E7670>

soderzhanie-05.indd

059_1

Китай - надвигается война?

GIS_Nov_Kar

2_2004_

World Bank Document

для типогр-часть1.p65

Ãëÿíåö.pm6

Vest_2_2006.pmd

Женские глянцевые журналы: хронотоп воображаемой повседневности

Libretto_New_RS

Untitled-30

Mova_12.p65

MP-14.pmd

ОГЛАВЛЕНИЕ

Microsoft Word - Муравьев.doc

772_a.p65

OKO-LAVAMAT_88840_advanced.bk

hydra main.pm6

R03_LAVALOGIC_1820_LCD_5kg_BT_db.bk

Êîé Áýàôóò. Ðåâîëþöèÿ Quixtar.pmd

028265rs.p65

3 A3 10

R03_OKO-LAVAMAT_LAVALOGIC_1810_LCD.bk


Оглавление.pmd

katalog.p65

Jour_2006_2.p65

Симпозиум-2007-пробный p65

Ò_1.PM6

/ ィ ィェィコィー-0302ィー0208ィ ィョ ィィィー0208ィ ィーィョ08ィェ06-07ィョィ 05ィ

1300ィ ィー0208ィィィ ィ ィィィィ, ィィ09ィー0608ィィィィ ィィ 05ィーィェ060008ィ 00ィィィィ 06ィ 0908ィィィィ XV 0908ィィ09ィー0609 ィC ィャ020909ィィ07,

Fungi4.p65

チ ツ02ィ ィェ ィ ィィ02 08ィェ ィィィコィー ィィ ツィ 05ィー ィ ィ ィャィャィィ080609ィ ィ

25_rozdil.indd

cee didelis

Maket.pmd

r-01.p65

J Dop

untitled

RA2.qxd

13A ィ ィコィーィョィ 05ィケィェ ィ ィコ02ィィ ィーィ ィー 04ィ 0906ィ 06ィヲ 07ィ ィコィ ィエィ ィーィケ ィョィ 05ィィィコィ 02ィィィィ 09ィーィ ィーィケィィ

rus-07-Minilap-text.qxp

<4D F736F F D20E15FE7E0E1F3E4F1EAE8E920EEE1E7EEF0205FF0E0F4EBEC20EBEC EF20E8E8E8E8E820F3F0E5F420F0EEE2EDEE2E646F63>

untitled

untitled

CH_0_RU.p65

ィィ 0108ィョ00ィィ01 ィョ ツ02ィ ィェィィィコ0609, 08ィ 0408ィ ィ 06ィーィ ィェィェ0401 ィコ06ィャ07ィ ィェィィ02ィヲ 00ィ ィヲィコ ィー: 07 ツ02ィ ィェ ィコィー04 09 ィ

<50686F746F73686F705FD0E5ECE5E7EEE2F1EAE8E95F E7670>

033722rs.p65

ィェ ィ ィェィィ080609ィ ィェィィィィ 0905ィョ03ィ 04, ィェ06 ィェ02 ィー060001ィ, ィコ060001ィ 0904 ィィィャ0202ィー ィコ06ィェィコ0802ィーィェ04ィャィィ 07ィ 02ィィ0

ィ ィ 06ィーィ ィエ02ィェィ ィコ08ィィィー0208ィィ07ィャ ィィィェィー ィコィーィョィ 05ィケィェ0609ィーィィ ィィ09ィコィョ0909ィー0902ィェィェ ィィ09ィー02ィャ. 06

<4D F736F F D20E05FEFEEEBEEEDF1EAE8E920EEE1E7EEF05FF0E0F4EBECEBEC203132EF20E8E8E8E8E820F1EAEEEFF3F120E42E727466>

RA11.qxd

1308ィェィェ06ィーィ 02ィィ ィョ09ィコィェィ 07 ィコ09ィ 05ィィ00ィィィコィ 02ィィ06ィェィェィ 07 08ィ ィ 06ィーィ ィェィ ィー02ィャィョ 0604ィ ィェィェィ 07 09ィィ09ィー02ィャィ 0108ィ ィ

Untitled-1

Overshoot (R) (Lat 16 Jan).qxd

ィェィー ィーィィ ツ0209ィコィィ ィ ィェィィィヲ 09ィ 02ィェィー ィィ ツ0209ィコィィィヲ 09ィ 08ィィィ ィェィー ィィ0106ィ ィェィ 05ィィ04ィ 03, ィ

01ィ ツィ 0506ィャ ィャ060502ィコィョ050708ィェ06ィヲ 07ィ ィェィー ィィィィ ィャ060302ィー, ィィ01ィィィャ06ィャィョ, 09 ツィィィーィ ィーィケ , ィコ060001ィ ィィ04 06ィコィ

Transcription:

130802010208ィ 05ィケィェ0602 ィ 0002ィェィー09ィー0906 0706 06ィ 08ィ 040609ィ ィェィィ06 0408 010609ィョ01ィ 0809ィー0902ィェィェ0602 06ィ 08ィ 040609ィ ィー0205ィケィェ0602 ィョ ツ0802030102ィェィィ02 09040903020006 07080600020909ィィ06ィェィ 05ィケィェ060006 06ィ 08ィ 040609ィ ィェィィ07 0708ィ 05ィケ09ィコィィィヲ 000609ィョ01ィ 0809ィー0902ィェィェ04ィヲ ィョィェィィ09020809ィィィー02ィー ィィィャ. 08.00.010608ィケィコ060006 00ィ ィー02ィャィ ィーィィィコ06-ィャ0201ィ ィェィィ ツ0209ィコィィィヲ 00ィ ィコィョ05ィケィー02ィー 08ィ 00020108ィ ィ 050002ィ 0804 ィィ 01ィィ09ィコ0802ィーィェ06ィヲ ィャィ ィー02ィャィ ィーィィィコィィ 02 0907060906ィ ィ 01 ィィ ィー0201ィェ06050600ィィ0701 08ィ 0903ィィ0802ィェィィ07 070404ィコ0609 0708060008ィ ィャィャィィ080609ィ ィェィィ07 05070202ィィィ 05ィケィェ0609ィーィケ 010109 0602ィィ09ィコ0802ィーィェィ 07 ィャィ ィー02ィャィ ィーィィィコィ ィィ ィャィ ィー02ィャィ ィーィィ ツ0209ィコィ 07 ィコィィィ 0208ィェ02ィーィィィコィ 07 0809ィ 05ィィ00ィィィコィ 02ィィ06ィェィェィ 07 08ィ ィ 06ィーィ ィェィ 09ィー020702ィェィケ ィャィ 00ィィ09ィー08ィ ィャィ ィー02ィャィ ィーィィィコィィ 09ィーィョ0102ィェィーィ 0008. 00010801-2 06020607ィョィエ02ィェ ィコ 04ィ ィエィィィー0207 06 07 2009 00. 00020502ィェィーィケ0209ィ 0808ィー02ィャィ 080502ィコ09020209ィィ ツィ ィェィ ィョ ツィェ04ィヲ 08ィョィコ06090601ィィィー0205ィケ: ィ 0909ィィ09ィー02ィェィー ィコィ 0002010804 ィ 050002ィ 0804 ィィ 01ィィ09ィコ0802ィーィェ06ィヲ ィャィ ィー02ィャィ ィーィィィコィィ, ィコ.00.-ィャ.ィェ. 08050207ィィィェィィィェ 080502ィコ09ィ ィェ0108 0005ィ 01ィィィャィィ080609ィィ ツ 03ィコィ ィー0208ィィィェィ ィョ0800 2009

130402000208ィ ィー 00020502ィェィーィケ0209 08.08. 02 0907060906ィ ィ 01 ィィ ィー0201ィェ06050600ィィ0701 08ィ 0903ィィ0802ィェィィ07 070404ィコ0609 0708060008ィ ィャィャィィ080609ィ ィェィィ07, ィコ09ィ 05ィィ00ィィィコィ 02ィィ06ィェィェィ 07 08ィ ィ 06ィーィ ィェィ 09ィー020702ィェィケ ィャィ 00ィィ09ィー08ィ ィャィ ィー02ィャィ ィーィィィコィィ: 09ィー08. 46, 08ィィ09. 4, ィ ィィィ 05. 27. ィェィ 0409. 080506 ツ02090402 09050609ィ : 08ィ 0903ィィ080702ィャ04ィヲ 070404ィコ 0708060008ィ ィャィャィィ080609ィ ィェィィ07, 08ィ 0903ィィ0802ィェィィ02 070404ィコィ, 08ィ 0903ィィ080702ィャ04ィヲ ィコ06ィャ07ィィ0507ィー0608. 00 08ィ ィ 06ィー02 070806ィィ0409020102ィェ06 0908ィ 09ィェ02ィェィィ02 ィィ ィコ05ィ 0909ィィ00ィィィコィ 02ィィ07 08ィ 0405ィィ ツィェ0401 0908020109ィー09 010507 08ィ 0903ィィ0802ィェィィ07 ィコィ ィコ 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ01, ィーィ ィコ ィィ 0902ィャィ ィェィーィィ ツ0209ィコィィ01 090604ィャ0603ィェ0609ィー02ィヲ ィェ02ィコ06ィー06080401 070404ィコ0609 0708060008ィ ィャィャィィ080609ィ ィェィィ07. 06ィ ィコ0302 0708ィィ09020102ィェ04 0907060906ィ 04 09060401ィ ィェィィ07 ィーィ ィコィィ01 0908020109ィー09. 030605ィョ ツ02ィェィェ0402 01ィ ィェィェ0402 ィ 0405ィィ ィィ09070605ィケ040609ィ ィェ04 ィ 09ィー060806ィャ 010507 09060401ィ ィェィィ07 XWQL 08ィ 0903ィィ0802ィェィィ07 070404ィコィ 04ィ 070806090609, ィコ06ィー06080602 ィョ09070203ィェ06 ィィ09070605ィケ04ィョ02ィー0907 09 07080602ィコィー02 XWiki.

13020005ィ 090502ィェィィ02 1 0009020102ィェィィ02.......................................... 4 1.1 0606 ツィコィィ 08ィ 0903ィィ0802ィェィィ07 ィコ06ィャ07ィィ0507ィー0608ィ........................... 7 1.2 0207080201020502ィェィィ07...................................... 10 2 02ィ 040608 06ィ 05ィ 09ィーィィ....................................... 11 2.1 0609ィー0608ィィ07......................................... 11 2.2 0506090802ィャ02ィェィェ0602 090609ィー0607ィェィィ02................................ 12 3 0805ィ 0909ィィ00ィィィコィ 02ィィ07...................................... 15 3.1 0502ィャィ ィェィーィィ ツ0209ィコィィ02 08ィ 0903ィィ0802ィェィィ07............................. 15 3.2 05ィィィェィーィ ィコ09ィィ ツ0209ィコィィ02 08ィ 0903ィィ0802ィェィィ07............................. 20 3.3 04ィ 0903ィィ080702ィャ0402 ィコ06ィャ07ィィ0507ィー060804............................. 21 3.4 04ィ 0903ィィ080702ィャ0402 070404ィコィィ 0708060008ィ ィャィャィィ080609ィ ィェィィ07...................... 24 4 0508020109ィー09ィ 09060401ィ ィェィィ07 08ィ 0903ィィ0802ィェィィィヲ............................ 29 4.1 05080201ィ JetBrains MPS................................. 29 4.2 05080201ィ Textual Modeling Framework(TMF) Xtext.................. 30 4.3 05080201ィ Eclipse IDE Meta-Tooling Platform...................... 32 4.4 0102ィェ0208ィ ィー060804 07ィ 080902080609................................. 33 4.5 0801ィ 07ィーィィ09ィェ0402 0008ィ ィャィャィ ィーィィィコィィ............................... 41 4.6 05060401ィ ィェィィ02 08ィ 0903ィィ0802ィェィィ07 070404ィコィ............................. 42 4.7 05060401ィ ィェィィ02 08ィ 0903ィィ080702ィャ060006 ィコ06ィャ07ィィ0507ィー0608ィ........................ 43 4.8 02ィィ04ィ ィヲィェ IDE 010507 08ィ 0903ィィ080702ィャ060006 ィコ06ィャ07ィィ0507ィー0608ィ.................... 43 4.9 05060401ィ ィェィィ02 08ィ 0903ィィ080702ィャ060006 070404ィコィ............................ 43 5 05ィ ィコ0506 ツ02ィェィィ02......................................... 44 3

131 0009020102ィェィィ02 00 0708060202090902 08ィ 0408ィ ィ 06ィーィコィィ 0302, ィコィ ィコ 0708ィ 09ィィ0506, ィィ09070605ィケ04ィョ06ィー0907 ィョィェィィ09020809ィ 05ィケィェ0402 070404ィコィィ 0708060008ィ ィャィャィィ080609ィ ィェィィ07, 090604ィャ0603ィェ0609ィー02ィヲ ィコ06ィー06080401 04ィ ツィ 09ィーィョ06 ィェ02 0109ィ ィーィ 02ィー 010507 ィャィェ0600ィィ01 06ィ 05ィ 09ィー02ィヲ. 0309ィー0209ィー0902ィェィェ04ィャ 06ィ 08ィ 0406ィャ 07060709050702ィー0907 04ィ 01ィ ツィ 0706010006ィェィコィィ 090604ィャ0603ィェ0609ィー02ィヲ 070404ィコィ 070601 ィコ06ィェィコ0802ィーィェィョ06 07080201ィャ02ィーィェィョ06 06ィ 05ィ 09ィーィケ. 02ィー090601ィ 090604ィェィィィコィ 02ィー 04ィ 01ィ ツィ ィィ09090502010609ィ ィェィィ07 ィコィ ィコ 06ィ ィエィィ01 0706010106010609 ィコ 08ィ 0903ィィ0802ィェィィ06 070404ィコ0609, ィーィ ィコ ィィ 08ィ 0903ィィ0802ィェィィィヲ ィコ06ィェィコ0802ィーィェ0401 070404ィコ0609 0708060008ィ ィャィャィィ080609ィ ィェィィ07. 020507 ィェィ ツィ 05ィ 06070802010205ィィィャ0907 ツィー06 0302 ィーィ ィコ0602 08ィ 0903ィィ0802ィェィィ02 070404ィコィ 0708060008ィ ィャィャィィ080609ィ ィェィィ07. 0206 09ィィ01 070608 ツ02ィーィコ060006 0607080201020502ィェィィ07 ィーィ ィコ060006 06ィ ィエ020006 0706ィェ07ィーィィ07, ィコィ ィコ ィェィィ 09ィー08ィ ィェィェ06, ィェ02ィー. 00 01ィ ィェィェ06ィヲ 08ィ ィ 06ィー02 08ィ 0903ィィ0802ィェィィ02ィャ 070404ィコィ ィ ィョ0102ィャ 09 ツィィィーィ ィーィケ 0708060008ィ ィャィャィェ0402 0908020109ィー09ィ 010507 ィョ090205ィィ ツ02ィェィィ07 090408ィ 04ィィィー0205ィケィェ0401 ィィ/ィィ05ィィ 00ィョィェィコ02ィィ06ィェィ 05ィケィェ0401 090604ィャ0603ィェ0609ィー02ィヲ 05ィー060006 070404ィコィ. 00 ィコィ ツ0209ィー0902 0708ィィィャ0208ィ 0708ィィ09020102ィャ 070404ィコ X10 (09ィャ.[14]) 08ィ 0903ィィ0802ィェィィ02 070404ィコィ Java 010507 09040906ィコ06070806ィィ04090601ィィィー0205ィケィェ0401 07ィ 08ィ 05050205ィケィェ0401 0904 ツィィ090502ィェィィィヲ: finish { // 04ィ 07ィョ09ィコィ 02ィャ 07ィ 08ィ 05050205ィケィェ04ィヲ 0706ィー06ィコ 0904 ツィィ090502ィェィィ07 09ィョィャィャ04 ィェ02 ツ02ィーィェ0401 050502ィャ02ィェィー0609 async for (int i = 1 ; i < n ; i += 2 ) oddsum += A[i]; for (int i = 0 ; i < n ; i += 2 ) evensum += A[i]; } // 030102ィャ 04ィ 0902080302ィェィィ07 09090201 07ィ 08ィ 05050205ィケィェ0401 0706ィー06ィコ0609 System.out.println("oddSum = " + oddsum + " ; evensum = " + evensum); X10 0106ィ ィ 09050702ィー 09 070404ィコ Java ィェ02ィコ06ィー06080402 090408ィ 04ィィィー0205ィケィェ0402 0908020109ィー09ィ (09 0708ィィィャ020802 05ィー06 nish{} ィィ async for()) 010507 0802ィ 05ィィ04ィ 02ィィィィ 07ィ 08ィ 05050205ィケィェ0401 0904 ツィィ090502ィェィィィヲ. 0306ィャィィィャ06 05ィー060006 X10 070802010609ィーィ 09050702ィー 09040906ィコ06070806ィィ04090601ィィィー0205ィケィェ0402 ィ ィィィ 05ィィ06ィー02ィコィィ 010507 0802ィ 05ィィ04ィ 02ィィィィ 07ィ 08ィ 05050205ィィ04ィャィ (06ィー05ィィ ツィェ0402 06ィー 09ィーィ ィェ01ィ 08ィーィェ0401 09 Java, ィェィ 07ィィ09ィ ィェィェ0402 ィェィ C), ィコ06ィー06080402 ィィ09070605ィケ04ィョ06ィー0907 09 0708060008ィ ィャィャィ 01 ィェィ X10. 06ィ ィコィィィャ 06ィ 08ィ 0406ィャ 070404ィコ X10 0106ィ ィ 09050702ィー ィィ 090408ィ 04ィィィー0205ィケィェ0402, ィィ 00ィョィェィコ02ィィ06ィェィ 05ィケィェ0402 090604ィャ0603ィェ0609ィーィィ 09 070404ィコ Java. 00 ィェ02ィコ06ィー06080401 ィィ09ィー06 ツィェィィィコィ 01 09 ィコィ ツ0209ィー0902 08ィ 0903ィィ0802ィェィィィヲ ィェ02ィコィィ01 070404ィコ0609 08ィ 0909ィャィ ィー08ィィ09ィ 06ィー0907 ィィ 09070202ィィィ 05ィケィェ0402 ィ ィィィ 05ィィ06ィー02ィコィィ, ィィ09070605ィケ04ィョ02ィャ0402 09 0708060008ィ ィャィャィ 01 ィェィ 05ィーィィ01 070404ィコィ 01. 00 01ィ ィェィェ06ィヲ 08ィ ィ 06ィー02 ィーィ ィコィィ02 08ィ 0903ィィ0802ィェィィ07 ィェ02 08ィ 0909ィャィ ィー08ィィ09ィ 06ィー0907, ィー.ィコ. 06ィェィィ 0802ィ 05ィィ04ィョ06ィー0907 09ィェィョィー08ィィ070404ィコ060904ィャィィ 0908020109ィー09ィ ィャィィ 070404ィコィ (09 ィィ09070605ィケ040609ィ ィェィィ02ィャ 070806020201ィョ08ィェ06ィヲ, 00ィョィェィコ02ィィ06ィェィ 05ィケィェ06ィヲ, 06ィ ィイ02ィコィーィェ06-0608ィィ02ィェィーィィ080609ィ ィェィェ06ィヲ ィィ05ィィ 0108. 07ィ 08ィ 01ィィ00ィャィ ィャィィ 0708060008ィ ィャィャィィ080609ィ ィェィィ07). 0609ィコ0506 ツ02ィェィィ02 090609ィーィ 09050706ィー ィー0605ィケィコ06 ィーィ ィコ ィェィ 040409ィ 02ィャ0402 08ィ 0903ィィ080702ィャ0402 070404ィコィィ 0708060008ィ ィャィャィィ080609ィ ィェィィ07, ィコ06ィー06080402 ィャ0600ィョィー ィィ04ィャ02ィェ07ィーィケ 090906ィヲ 09ィィィェィーィ ィコ09ィィ09 c 0706ィャ06ィエィケ06 09070202ィィィ 05ィケィェ0401 090408ィ 04ィィィー0205ィケィェ0401 0908020109ィー09 070404ィコィ. 06.02. ィィ01 09ィェィョィー08ィィ070404ィコ06090402 0908020109ィー09ィ 0907060906ィ ィェ04 ィィ04ィャ02ィェ07ィーィケ 0008ィ ィャィャィ ィーィィィコィョ 070404ィコィ. 0609ィー0608ィィ07 08ィ 0903ィィ0802ィェィィィヲ 070404ィコ0609 ィェィ ツィィィェィ 02ィー0907 09 60-0401 000601ィ 01 09 08ィ ィ 06ィー 06 ィャィ ィコ080607060109ィーィ ィェ0609ィコィ 01 ィィ ィコ06ィャ07ィィ0507ィー0608ィ 01 ィコ06ィャ07ィィ0507ィー06080609. 02ィ 05ィ 09ィーィケ ィ ィコィーィィ09ィェ06 08ィ 0409ィィ09ィ 05ィ 09ィケ, ィィ ィコ06ィェ02 ツィェ06ィヲ 020205ィケ06 0708020109ィーィ 090507-4

13050609ィケ 09060401ィ ィェィィ02 0102ィヲ09ィー09ィィィー0205ィケィェ06 08ィ 0903ィィ080702ィャ060006 070404ィコィ 0708060008ィ ィャィャィィ080609ィ ィェィィ07. 00 ィー06 0302 090802ィャ07 ィ 0405 0708020109ィーィ 090502ィェ 07080602ィコィー 08ィ 0903ィィ080702ィャ060006 070404ィコィ 0708060008ィ ィャィャィィ080609ィ ィェィィ07 Simula. 0106 020006 08ィ 0903ィィ080702ィャ0609ィーィケ 0906070506ィーィィィーィケ ィーィ ィコ ィィ ィェ02 ィョ01ィ 050609ィケ ィィ04-04ィ 090604ィェィィィコ03ィィ01 09050603ィェ0609ィー02ィヲ. 06ィェィー02080209 ィコ 06ィ 05ィ 09ィーィィ 09ィーィ 05 09ィェィィ03ィ ィーィケ0907 09 70-0401 000601ィ 01. 0201ィェィィィャ ィィ04 06ィ ィイ0709ィェ02ィェィィィヲ 05ィー060006 0709050702ィー0907 ツ080204ィャ0208ィェィ 07 09050603ィェ0609ィーィケ 09060401ィ ィェィィ07 08ィ 0903ィィ0802ィェィィィヲ. 08ィコィーィィ09ィェ04ィヲ ィィィェィー02080209 ィコ 06ィ 05ィ 09ィーィィ 09ィェ0609ィケ 07060709050702ィー0907 09 ィェィ ツィ 0502 21 0902ィコィ. 0604 04ィ 09090206ィ ィエ02ィヲ ィコ06ィャ07ィケ06ィー0208ィィ04ィ 02ィィィィ ィャィェ0600ィィィャ 06ィ 05ィ 09ィー07ィャ 09ィーィ 05ィィ ィェ0206ィ 010601ィィィャ04 09070202ィィィ 05ィケィェ0402 070404ィコィィ 0708060008ィ ィャィャィィ080609ィ ィェィィ07, ィ 08ィ 0409ィィィーィィ02 ィャ02ィー06010609 0708060008ィ ィャィャィィ080609ィ ィェィィ07 070604090605ィィ0506 09060401ィ 09ィ ィーィケ 09050603ィェ0402 08ィ 0903ィィ080702ィャ0402 070404ィコィィ. 0306010806ィ ィェ02ィヲ 070806 ィィ09ィー0608ィィ06 08ィ 0903ィィ080702ィャ0401 070404ィコ0609 ィャ0603ィェ06 070806 ツィィィーィ ィーィケ 09 08ィ 0401020502 2.1. 00 ィェィ 09ィー0607ィエ0202 090802ィャ07 06ィ 05ィ 09ィーィケ 08ィ 0903ィィ080702ィャ0401 070404ィコ0609 06 ツ02ィェィケ ィ 0605ィケ03ィ 07 ィィ ィ ィコィーィィ09ィェ06 08ィ 0409ィィ09ィ 06ィエィ 070907, ィェ06 06ィェィ 0905ィ ィ 06 09ィー08ィョィコィーィョ08ィィ080609ィ ィェィ. 05ィョィエ0209ィー09ィョ02ィー ィャィェ06030209ィー0906 08ィ 0903ィィ0802ィェィィィヲ 08ィ 0405ィィ ツィェ0401 070404ィコ0609. 0102ィコ06ィー06080402 ィィ04 ィェィィ01 04ィ ィ 08060302ィェ04, ィ ィェ02ィコ06ィー06080402 0106 09ィィ01 070608 ィョ09070203ィェ06 ィィ09070605ィケ04ィョ06ィー0907. 05ィョィエ0209ィー09ィョ02ィー ィェ0209ィコ0605ィケィコ06 ィコ06ィャ07ィィ0507ィー06080609, ィコ06ィー06080402 04ィ 0709050706ィー 06 09090602ィヲ 08ィ 0903ィィ080702ィャ0609ィーィィ. 0309ィー0209ィー0902ィェィェ04ィャ 06ィ 08ィ 0406ィャ 090604ィェィィィコィ 02ィー 090607080609: ィコィ ィコ06ィヲ ィィ04 ィェィィ01 ィ 06050202 08ィ 0903ィィ080702ィャ ィィ ィー0802ィ ィョ02ィー ィャ02ィェィケ0302 04ィェィ ィェィィィヲ ィィ ィョ09ィィ05ィィィヲ 010507 08ィ 0903ィィ0802ィェィィ07? 06ィ ィコ0302 09ィョィエ0209ィー09ィョ02ィー 06000806ィャィェ0602 ィコ0605ィィ ツ0209ィー0906 ィィィェ09ィー08ィョィャ02ィェィー0609 010507 09060401ィ ィェィィ07 ィコ06ィャ07ィィ0507ィー06080609. 06 ィーィ ィコ0302 090604ィェィィィコィ 02ィー 090607080609: ィコィ ィコィィ02 ィィ04 ィェィィ01 05ィョ ツ0302 07060101060107ィー 010507 09060401ィ ィェィィ07 ィィィャ02ィェィェ06 08ィ 0903ィィ080702ィャ0401 ィコ06ィャ07ィィ0507ィー06080609 ィィ05ィィ 010507 0601ィィィェ06 ツィェ0401 08ィ 0903ィィ0802ィェィィィヲ 070404ィコィ? 0302080201 ィ 09ィー060806ィャ ィ 0405ィ 070609ィーィ 090502ィェィ 04ィ 01ィ ツィ : ィィ09090502010609ィ ィーィケ ィェィ 08ィ ィ 06ィーィコィィ 09 06ィ 05ィ 09ィーィィ 08ィ 0903ィィ0802ィェィィィヲ 070404ィコ0609, ィコ05ィ 0909ィィ00ィィ02ィィ080609ィ ィーィケ ィィ 09ィー08ィョィコィーィョ08ィィ080609ィ ィーィケ 08ィ 0405ィィ ツィェ0402 ィー0201ィェ06050600ィィィィ, 07080602ィコィー04 ィィ 0907060906ィ 04, ィィ09070605ィケ04ィョ02ィャ0402 09 08ィ 0903ィィ080702ィャ0401 070404ィコィ 01 ィィ 09 0601ィィィェ06 ツィェ0401 08ィ 0903ィィ0802ィェィィ0701 070404ィコ0609. 05ィ 01ィ ツィ ィ 0405ィ ィョ09070203ィェ06 08020302ィェィ, ィ ィィィャ02ィェィェ06, 09 01ィ ィェィェ06ィヲ 08ィ ィ 06ィー02 070806ィィ0409020102ィェ 06ィ 040608 ィィ09090502010609ィ ィェィェ0401 08ィ 0903ィィ0802ィェィィィヲ, 070806ィィ0409020102ィェィ 07060704ィーィコィ ィィ01 ィコ05ィ 0909ィィ00ィィィコィ 02ィィィィ ィィ 09ィー08ィョィコィーィョ08ィィ04ィ 02ィィィィ 0706 06ィ ィエィィィャ 0708ィィ04ィェィ ィコィ ィャ. 0906050202 ィー060006, 0708ィィ09020102ィェ 090604ィャ0603ィェ04ィヲ 0705ィ ィェ 09060401ィ ィェィィ07 08ィ 0903ィィ080702ィャ060006 ィコ06ィャ07ィィ0507ィー0608ィ ィェィ 0609ィェ060902 ィィ04ィョ ツ02ィェィェ0401 ィー0201ィェ06050600ィィィヲ. 030605ィョ ツ02ィェィェ0402 ィェィ 0904ィコィィ ィ 09ィー0608 0708ィィィャ02ィェィィ05 010507 09060401ィ ィェィィ07 08ィ 0903ィィ0802ィェィィ07 XWiki Query Language 070404ィコィ JPQL, 070806 ィコ06ィー06080602 ィェィ 07ィィ09ィ ィェ06 09 08ィ 0401020502 4.4. 0306-ィェィ 09ィー0607ィエ02ィャィョ 08ィ 0903ィィ080702ィャ0402 070404ィコィィ 01ィ 0302 09 ィェィ 09ィー0607ィエ0202 090802ィャ07 06 ツ02ィェィケ ィー08ィョ01ィェ06 0802ィ 05ィィ04ィョ02ィャ04. 0306ィャィィィャ06 06ィ 02090702 ツ02ィェィィ07 08ィ 0903ィィ080702ィャ0609ィーィィ, ィー08ィョ01ィェ0609ィーィィ 090604ィェィィィコィ 06ィー 09 090609ィャ0209ィーィェ0609ィーィケ06 08ィ 0903ィィ0802ィェィィィヲ ィィ ィィ01 06ィー05ィ 01ィコ06ィヲ. 06ィ ィコ0302 ィェ02ィコ06ィー06080402 0607ィ 09ィ 06ィー0907, ツィー06 08ィ 0903ィィ080702ィャ0402 070404ィコィィ 04ィ ィー08ィョ01ィェ07ィー 0904ィ ィィィャ060102ィヲ09ィー09ィィ02 0708060008ィ ィャィャィィ09ィー0609, ィーィ ィコ ィコィ ィコ ィ ィョ01ィョィー 070606ィエ0807ィーィケ 09060401ィ ィェィィ02 ィィィェ01ィィ09ィィ01ィョィ 05ィケィェ0401 08ィ 0903ィィ0802ィェィィィヲ 070601 0902ィ 07, ツィー06 ィコィ 030104ィヲ ィ ィョ0102ィー 07ィィ09ィ ィーィケ ィェィ 09090602ィャ 01ィィィ 0502ィコィー02 070404ィコィ, ィェ02090609ィャ0209ィーィィィャ06ィャ 09 01ィィィ 0502ィコィー06ィャ 0108ィョ00060006. 05ィョィエ0209ィー09ィョ06ィー 07080602ィコィー04, ィコィ ィコ ィェィ 0708ィィィャ0208 SQLj (09ィャ. [11]), ィコ06ィー06080402 0709050706ィー0907 0601ィィィェ06 ツィェ04ィャィィ 08ィ 0903ィィ0802ィェィィ07ィャィィ ィ ィ 040609060006 070404ィコィ ィィ ィェ02 0706040906050706ィー 01ィ 05ィケィェ02ィヲ03ィィ02 08ィ 0903ィィ0802ィェィィ07 (0706 ィコ08ィ ィヲィェ02ィヲ ィャ020802 09ィェ0203ィェ02). 06ィ ィコィィ02 08ィ 0903ィィ0802ィェィィ07 09 08ィ ィ 06ィー02 ィーィ ィコ0302 ィィ0909050201ィョ06ィー0907. 00 08ィ 0409ィィ09ィ 06ィエィィ010907 070404ィコィ 01 ィー060302 ィャ0603ィェ06 07080609050201ィィィーィケ 08ィ 0903ィィ0802ィェィィ07. 06ィ ィコ, ィェィ 0708ィィィャ0208, 09 070404ィコ 5

13C# 09 ィコィ 030106ィヲ 09020809ィィィィ 0106ィ ィ 09050702ィー0907 ィャィェ06030209ィー0906 ィェ06090401 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ01 ィコ06ィェ09ィー08ィョィコ02ィィィヲ. 0106 ィィ01 09050603ィェ06 060202ィェィィ09ィ ィーィケ 09 ィー06 ツィコィィ 040802ィェィィ07 09060401ィ ィェィィ07 08ィ 0903ィィ0802ィェィィィヲ, ィーィ ィコ ィコィ ィコ 05ィー06 09ィェィョィー0802ィェィェィィ02 08ィ 0903ィィ0802ィェィィ07, 09ィィ05ィケィェ06 09090704ィ ィェィェ0402 09 070404ィコ06ィャ. 00 ィ 0605ィケ03ィィィェ09ィー0902 070404ィコ0609 0708060008ィ ィャィャィィ080609ィ ィェィィ07 ィェ02ィー 09ィィ09ィー02ィャ04 09060401ィ ィェィィ07 08ィ 0903ィィ0802ィェィィィヲ, ィィ 010507 ィィ01 09060401ィ ィェィィ07 ィー0802ィ ィョ02ィー0907 0005ィョィ 06ィコ0602 04ィェィ ィェィィ02 ィョ09ィー0806ィヲ09ィー09ィ ィコ06ィャ07ィィ0507ィー0608ィ. 00 06ィー05ィィ ツィィ02 06ィー C#, 070404ィコ Java ィ 06050202 ィコ06ィェ09020809ィ ィーィィ0902ィェ 09 08ィ 0409ィィィーィィィィ ィィ 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ ィャ02ィェィケ0302. Java 09070202ィィィ 05ィケィェ06 09060401ィ 09ィ 050907 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ ィャィィィェィィィャィ 05ィケィェ04ィャ 010507 06ィ 050200 ツ02ィェィィ07 0904ィ ィィィャ060102ィヲ09ィー09ィィ07 0708060008ィ ィャィャィィ09ィー0609. 02ィー ツィ 09ィーィィ ィ 05ィ 000601ィ 0807 05ィー06ィャィョ, Java 0902ィヲ ツィ 09 0709050702ィー0907 ィェィ ィィィ 06050202 070607ィョ050708ィェ04ィャ 070404ィコ06ィャ 0708060008ィ ィャィャィィ080609ィ ィェィィ07 (09ィャ. [6]). 000905020109ィー09ィィ02 ィ 0605ィケ03060006 090606ィ ィエ0209ィー09ィ ィィ ィ 0605ィケ0302ィヲ ィェ0206ィ 010601ィィィャ0609ィーィィ 08ィ 0903ィィ0802ィェィィィヲ, ィョ 070404ィコィ Java 000608ィ 040106 ィ 0605ィケ0302 09ィェ0203ィェィィ01 08ィ 0903ィィ0802ィェィィィヲ ィィ 070806090601ィィィー0907 ィ 0605ィケ0302 ィィ09090502010609ィ ィェィィィヲ 09 05ィー06ィヲ 06ィ 05ィ 09ィーィィ ツ02ィャ ィョ C#. 030605ィー06ィャィョ 09 01ィ ィェィェ06ィヲ 08ィ ィ 06ィー02 09 0609ィェ0609ィェ06ィャ ィィ0909050201ィョ06ィー0907 08ィ 0903ィィ0802ィェィィ07 070404ィコィ Java ィィ 070404ィコ0609, 0609ィェ0609ィ ィェィェ0401 ィェィ 0705ィ ィー000608ィャ02 Java. 0809ィー0608 ィーィ ィコ0302 ィェ02 09ィコ080409ィ 02ィー ィ 0605ィケ03060006 060704ィーィ 08ィ ィ 06ィー04 09 ィェィィィャ ィィ 05ィィ ツィェ060006 070802010706 ツィー02ィェィィ07. 020507 09060401ィ ィェィィ07 08ィ 0903ィィ0802ィェィィィヲ 09 ィェィョ0507 ィィ09070605ィケ04ィョ02ィー0907 ィャィェ06030209ィー0906 ィィィェ09ィー08ィョィャ02ィェィー0609, 06ィ 050200 ツィ 06ィエィィ01 ィィ01 09060401ィ ィェィィ02: 0002ィェ0208ィ ィー060804 0502ィコ0902080609, 0002ィェ0208ィ ィー060804 07ィ 080902080609, ィコ06ィャ07ィィ0507ィー060804 ィコ06ィャ07ィィ0507ィー06080609, 08ィ 0405ィィ ツィェ0402 09090706ィャ0600ィ ィー0205ィケィェ0402 ィ ィィィ 05ィィ06ィー02ィコィィ, 0908020109ィー09ィ 09090704ィィ 0906 0908020106ィヲ 08ィ 0408ィ ィ 06ィーィコィィ ィィ 070806 ツ0202. 000902 05ィー06 ィ ィョ0102ィー 08ィ 0909ィャ06ィー0802ィェ06 09 0005ィ 0902 4. 04ィ ィ 06ィーィ ィョ09ィー080602ィェィ 09050201ィョ06ィエィィィャ 06ィ 08ィ 0406ィャ. 0006 0909020102ィェィィィィ 01ィ 050202 ィィ0102ィー 06ィ 040608 ィーィィ07ィィ ツィェ06ィヲ 09ィー08ィョィコィーィョ0804 ィコ06ィャ07ィィ0507ィー0608ィ, 020006 090604ィャ0603ィェ0401 ィー06 ツ02ィコ 08ィ 0903ィィ0802ィェィィ07 ィィ 0907ィィ0906ィコ 0607080201020502ィェィィィヲ, ィィ09070605ィケ04ィョ02ィャ0401 09 08ィ ィ 06ィー02. 05ィ ィェィィィャ ィィ0102ィー ィィ09ィー0608ィィ07 08ィ 0409ィィィーィィ07 08ィ 0903ィィ0802ィェィィィヲ ィ ィーィ ィコ0302 ィィ01 0906090802ィャ02ィェィェ0602 090609ィー0607ィェィィ02. 00 0005ィ 0902 3 070806ィィ0409020102ィェィ 07060704ィーィコィ 06ィ 040608ィ ィィ ィコ05ィ 0909ィィ00ィィィコィ 02ィィィィ ィー02ィコィョィエィィ01 07080602ィコィー0609 06ィ 05ィ 09ィーィィ. 01ィ ィコ06ィェ0202, 09 0005ィ 0902 4 090601020803ィィィー0907 06ィ 040608 ィィィェ09ィー08ィョィャ02ィェィー0609 010507 09060401ィ ィェィィ07 08ィ 0903ィィ0802ィェィィィヲ 070404ィコ0609. 0306 ツィーィィ 090902 0708ィィ09020102ィェィェ0402 09 08ィ ィ 06ィー02 0708060008ィ ィャィャィェ0402 07080602ィコィー04 010609ィーィョ07ィェ04 09 ィィ09010601ィェ0401 ィコ0601ィ 01 (010507 ィィ04ィョ ツ02ィェィィ07 ィィ ィィ09070605ィケ040609ィ ィェィィ07). 05ィ ィコ0804ィー0401 07080602ィコィー0609 09 01ィ ィェィェ06ィヲ 06ィ 05ィ 09ィーィィ 06 ツ02ィェィケ ィャィ 0506. 6

131.1 0606 ツィコィィ 08ィ 0903ィィ0802ィェィィ07 ィコ06ィャ07ィィ0507ィー0608ィ 020507 ィー060006, ツィー06ィ 04 08ィ 0903ィィ08ィィィーィケ ィコ06ィャ07ィィ0507ィー0608, 09ィェィ ツィ 05ィ ィェ0206ィ 010601ィィィャ06 0706ィェ07ィーィケ 020006 09ィー08ィョィコィーィョ08ィョ. 04ィ 0909ィャ06ィー08ィィィャ 0708ィィィャ0208ィェィョ06 ィーィィ070609ィョ06 09ィー08ィョィコィーィョ08ィョ ィコ06ィャ07ィィ0507ィー0608ィ : 05010209ィケ 05ィィ09ィーィコィィ 06ィ 0604ィェィ ツィ 06ィー 01ィ ィェィェ0402, ィ 04ィ ィコ08ィョ000502ィェィェ0402 070807ィャ06ィョ000605ィケィェィィィコィィ 0708060202090904. 03080602020909 ィコ06ィャ07ィィ050702ィィィィ 06ィ 04 ツィェ06 090609ィー06ィィィー ィィ04 09050201ィョ06ィエィィ01 05ィーィ 070609: 1. 0902ィコ09ィィ ツ0209ィコィィィヲ ィ ィェィ 05ィィ04. 0902ィコ090208. 01ィ 05ィー06ィャ 05ィーィ 0702 0706090502010609ィ ィー0205ィケィェ0609ィーィケ 09ィィィャ0906050609 ィィ09010601ィェ060006 00ィ ィヲ05ィ 07080206ィ 08ィ 04ィョ02ィー0907 09 0706090502010609ィ ィー0205ィケィェ0609ィーィケ 0502ィコ0902ィャ, ィー06 0209ィーィケ 07ィ 08 (ィィ0102ィェィーィィ00ィィィコィ ィー0608 0502ィコ0902ィャ04, 0706090502010609ィ ィー0205ィケィェ0609ィーィケ 09ィィィャ0906050609). 0902ィコ0902ィャ04 ィーィ ィコ0302 ツィ 09ィー06 ィェィ 040409ィ 06ィー ィー06ィコ02ィェィ ィャィィ. 000601ィョ05ィケ, 06ィー0902 ツィ 06ィエィィィヲ 04ィ 0502ィコ09ィィ ツ0209ィコィィィヲ ィ ィェィ 05ィィ04, ィェィ 040409ィ 02ィー0907 0502ィコ09020806ィャ ィィ05ィィ ィー06ィコ02ィェィ ィヲ04020806ィャ. 0102 090902 ィコ06ィャ07ィィ0507ィー060804 ィィィャ0206ィー 090401020502ィェィェ04ィヲ 0502ィコ09ィィ ツ0209ィコィィィヲ ィ ィェィ 05ィィ04ィ ィー0608, 070609ィコ0605ィケィコィョ 06ィェ ィャ060302ィー 07090507ィーィケ0907 ィェ0204ィ ィャ02ィーィェ06ィヲ ツィ 09ィーィケ06 09ィィィェィーィ ィコ09ィィ ツ0209ィコ060006 ィ ィェィ 05ィィ04ィ ィー0608ィ. 2. 05ィィィェィーィ ィコ09ィィ ツ0209ィコィィィヲ (0008ィ ィャィャィ ィーィィ ツ0209ィコィィィヲ) ィ ィェィ 05ィィ04. 03ィ 08090208. 0306090502010609ィ ィー0205ィケィェ0609ィーィケ 0502ィコ0902ィャ 07080206ィ 08ィ 04ィョ02ィー0907 09 010208020906 08ィ 04ィ 0608ィ 09 090606ィー0902ィー09ィー09ィィィィ 09 0008ィ ィャィャィ ィーィィィコ06ィヲ 070404ィコィ. 000601ィョ05ィケ, 06ィー0902 ツィ 06ィエィィィヲ 04ィ 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィィヲ ィ ィェィ 05ィィ04, ィェィ 040409ィ 02ィー0907 07ィ 08090208. 020208020906 08ィ 04ィ 0608ィ ィーィョィー 0706ィェィィィャィ 02ィー0907 09 06ィ ィエ02ィャ 09ィャ04090502. 02ィ 04 ツィェ06 09 09ィィィェィーィ ィコ09ィィ ツ0209ィコ06ィャ ィ ィェィ 05ィィ0402 ィィ09070605ィケ04ィョ02ィー0907 09ィィィェィーィ ィコ09ィィ ツ0209ィコ0602 010208020906 (Abstract Syntax Tree, AST), ィコ06ィー06080602 06ィー05ィィ ツィ 02ィー0907 06ィー 0102080209ィ 08ィ 04ィ 0608ィ 06ィー09ィョィー09ィー09ィィ02ィャ ィェ0209ィョィエ0209ィー0902ィェィェ0401 0008ィ ィャィャィ ィーィィ ツ0209ィコィィ01 050502ィャ02ィェィー0609 (ィェィ 0708ィィィャ0208: 04ィ 0707ィー0402, 09ィコ06ィ ィコィィ, ィコ0506 ツ02090402 09050609ィ ; ィィ01 ィャ0603ィェ06 09060909ィーィ ィェ0609ィィィーィケ 0706 ィーィィ07ィョ ィィ 09ィー08ィョィコィーィョ0802 ィョ04050609 AST). 7

133. 0502ィャィ ィェィーィィ ツ0209ィコィィィヲ ィ ィェィ 05ィィ04. 020208020906 08ィ 04ィ 0608ィ 06ィ 08ィ ィ ィ ィー0409ィ 02ィー0907 09 020205ィケ06 ィョ09ィーィ ィェ06090502ィェィィ07 020006 0902ィャィ ィェィーィィィコィィ (09ィャ040905ィ ). 01ィ 0708ィィィャ0208, 0708ィィ090704ィコィ ィィ0102ィェィーィィ00ィィィコィ ィー06080609 ィコ ィィ01 0102ィコ05ィ 08ィ 02ィィ07ィャ, ィーィィ07ィ ィャ, 070806090208ィコィ 090609ィャ0209ィーィィィャ0609ィーィィ, 0607080201020502ィェィィ02 ィーィィ070609 090408ィ 0302ィェィィィヲ ィィ ィー.01. 040204ィョ05ィケィーィ ィー06ィャ 06ィ 04 ツィェ06 0709050702ィー0907 08ィ 0903ィィ0802ィェィェ0602 010208020906 08ィ 04ィ 0608ィ. チィ 09ィー06 0902ィャィ ィェィーィィ ツ0209ィコィィィヲ ィ ィェィ 05ィィ04 010205ィ 02ィー0907 09 0706ィャ06ィエィケ06 ィ ィー08ィィィ ィョィーィェ06ィヲ 0008ィ ィャィャィ ィーィィィコィィ, ィィ 09 080204ィョ05ィケィーィ ィー02 070605ィョ ツィ 02ィー0907 08ィ 0903ィィ0802ィェィェ0602 ィ ィー08ィィィ ィョィーィ ィャィィ 010208020906 08ィ 04ィ 0608ィ. 4. 0102ィェ0208ィ 02ィィ07 070806ィャ0203ィョィー06 ツィェ060006 0708020109ィーィ 090502ィェィィ07. 0306 01ィ ィェィェ04ィャ 0902ィャィ ィェィーィィ ツ0209ィコ060006 ィ ィェィ 05ィィ04ィ 09060401ィ 02ィー0907 0708020109ィーィ 090502ィェィィ02 (ィェィ 0708ィィィャ0208, 09 000608ィャ02 ィコィ ィコ060006 ィェィィィ ィョ01ィケ 09070202ィィィ 05ィケィェ060006 09040906ィコ06ィョ080609ィェ020006 ィ 090902ィャィ 050208ィ ) ィョ0106ィ ィェ0602 010507 01ィ 05ィケィェ02ィヲ0302ィヲ 0607ィーィィィャィィ04ィ 02ィィィィ ィィ 0002ィェ0208ィ 02ィィィィ ィコ0601ィ. 5. 0207ィーィィィャィィ04ィ 02ィィ07. 0004070605ィェ0702ィー0907 ィョ01ィ 0502ィェィィ02 ィィ0405ィィ03ィェィィ01 ィコ06ィェ09ィー08ィョィコ02ィィィヲ ィィ ィョ070806ィエ02ィェィィ02 ィコ0601ィ 09 09060108ィ ィェ02ィェィィ02ィャ 020006 09ィャ040905ィ. 0207ィーィィィャィィ04ィ 02ィィ07 ィャ060302ィー 070806ィィ04090601ィィィーィケ0907 ィェィ 08ィ 04ィェ0401 ィョ080609ィェ0701 ィィ 05ィーィ 07ィ 01: ィェィ 0708ィィィャ0208, ィェィ 01 070806ィャ0203ィョィー06 ツィェ04ィャ ィコ060106ィャ ィィ05ィィ ィェィ 01 ィコ06ィェ02 ツィェ04ィャ ィャィ 03ィィィェィェ04ィャ ィコ060106ィャ. 6. 0102ィェ0208ィ 02ィィ07 ィコ0601ィ. 0604 070806ィャ0203ィョィー06 ツィェ060006 0708020109ィーィ 090502ィェィィ07 070608060301ィ 02ィー0907 ィコ0601 ィェィ 020205020906ィャ (06ィ 04 ツィェ06 ィャィ 03ィィィェィェ06ィャ) 070404ィコ02. 00 ィコ06ィェィコ0802ィーィェ0401 0802ィ 05ィィ04ィ 02ィィ0701 ィコ06ィャ07ィィ0507ィー06080609 05ィーィィ 05ィーィ 0704 ィャ0600ィョィー ィ 04ィーィケ 08ィ 0401020502ィェ04 ィィ05ィィ 090609ィャ02ィエ02ィェ04 09 ィー06ィャ ィィ05ィィ ィィィェ06ィャ 09ィィ0102. 0608ィィ 070208090401 05ィーィ 07ィ (ィーィ ィコ0302, 090604ィャ0603ィェ06, 09 09ィコ0506 ツ02ィェィィ02ィャ 070609050201ィョ06ィエ02ィヲ 0002ィェ0208ィ 02ィィィィ 070806ィャ0203ィョィー06 ツィェ060006 0708020109ィーィ 090502ィェィィ07) ツィ 09ィー06 ィェィ 040409ィ 06ィー 000806ィェィー02ィェ0106ィャ (frontend) ィコ06ィャ07ィィ0507ィー0608ィ. 08 ィー08ィィ 070609050201ィェィィ01 05ィーィ 07ィ ィ 05ィコ02ィェ0106ィャ (backend). (080806ィェィー02ィェ01 ィィ ィ 05ィコ02ィェ01 05ィー06 06ィ ィエィィ02 0706ィェ07ィーィィ07, 06ィー08ィ 03ィ 06ィー 090606ィー0902ィー09ィー0902ィェィェ06 ィェィ ツィ 05ィケィェ0602 ィィ ィコ06ィェ02 ツィェ0602 090609ィー0607ィェィィ07 07080602020909ィ. 080806ィェィー02ィェ01 06ィー0902 ツィ 02ィー 04ィ 070605ィョ ツ02ィェィィ02 09090601ィ (09010601ィェ06ィヲ ィィィェ000608ィャィ 02ィィィィ) 09 0506ィ 0401 000608ィャィ 01 06ィー 070605ィケ040609ィ ィー020507 ィィ 06ィ 08ィ ィ 06ィーィコィョ 070605ィョ ツ02ィェィェ06ィヲ ィィィェ000608ィャィ 02ィィィィ 09 ィーィョ 000608ィャィョ, ィコ06ィー0608ィョ06 ィ 05ィコ02ィェ01 0907060906ィ 02ィェ ィィ09070605ィケ040609ィ ィーィケ. 080806ィェィー02ィェ01 05ィー06 ィィィェィー02080002ィヲ09 ィャ020301ィョ 070605ィケ040609ィ ィー020502ィャ ィィ ィ 05ィコ02ィェ0106ィャ) 0308ィィ ツ02ィャ 090604ィャ0603ィェ06 ィェィ 05ィィ ツィィ02 ィェ0209ィコ0605ィケィコィィ01 0904ィ ィィィャ0604ィ ィャ02ィェ0702ィャ0401 000806ィェィー02ィェ010609 ィィ ィ 05ィコ02ィェ010609. 01ィ 0708ィィィャ0208, 09 ィィ04090209ィーィェ06ィャ ィェィ ィ 060802 ィコ06ィャ07ィィ0507ィー06080609 Gnu Compiller Collections 000806ィェィー02ィェ01ィ ィャィィ 0709050706ィー0907 08ィ 09070604ィェィ 09ィ ィー0205ィィ 070404ィコ0609 0708060008ィ ィャィャィィ080609ィ ィェィィ07 C, C++, Pascal, Java, Ada ィィ 0108. 08 ィ 05ィコ02ィェ01ィ ィャィィ 0607ィーィィィャィィ04ィ ィー060804 ィィ 0002ィェ0208ィ ィー060804 ィコ0601ィ 070601 090606ィー0902ィー09ィー09ィョ06ィエィィ02 ィ 0801ィィィー02ィコィーィョ08ィョ 070806020209090608ィ (x86, arm, mips, ィィ 0108.) ィィ 06070208ィ 02ィィ06ィェィェィョ06 09ィィ09ィー02ィャィョ. 06ィーィ ィコ, ツィー06 0302 ィャ0603ィェ06 08ィ 0903ィィ08ィィィーィケ 09 01ィ ィェィェ06ィヲ 090102ィャ02? 0306 ツィーィィ 090902, 020905ィィ ィィィャ02ィーィケ 010609ィーィョ07 ィコ 090606ィー0902ィー09ィー09ィョ06ィエィィィャ ツィ 09ィー07ィャ ィコ06ィャ07ィィ0507ィー0608ィ. 0608ィ 01ィィ02ィィ06ィェィェ0402 ィコ06ィャ07ィィ0507ィー060804 05ィー06ィー 010609ィーィョ07 090609ィェ02 ィェ02 070802010609ィーィ 09050706ィー. 06 01ィ 0302 020905ィィ ィ 04 ィィ 070802010609ィーィ 09ィィ05ィィ, ィー06 09 ィ 0605ィケ03ィィ01 ィコ06ィャ07ィィ0507ィー0608ィ 01 06ィェ ィ 0405 ィ 04 ツ0802040904 ツィ ィヲィェ06 0905060302ィェ. 030605ィー06ィャィョ 09 ィ 0605ィケ03ィィィェ09ィー0902 0905ィョ ツィ 0209 09ィェ0203ィェィィ02 08ィ 0903ィィ0802ィェィィ07 09060401ィ 06ィー 07ィョィー02ィャ 09ィェ02010802ィェィィ07 8

1309 ィェィ ツィ 0506 05ィー06ィヲ 090102ィャ04 090906020006 070802070806020209090608ィ ィィ05ィィ 0002ィェ0208ィ ィー0608ィ ィコ0601ィ ィィ04 090906020006 070404ィコィ ィェィ ィィ09010601ィェ04ィヲ 070404ィコ ィコ06ィャ07ィィ0507ィー0608ィ. 0106, 010607ィョ09ィーィィィャ, ィョ ィェィ 09 0209ィーィケ ィョ0106ィ ィェ04ィヲ 010609ィーィョ07 ィコ06 090902ィャ 09ィー08ィョィコィーィョ08ィ ィャ ィコ06ィャ07ィィ0507ィー0608ィ. 06060001ィ 07060709050706ィー0907 090604ィャ0603ィェ0609ィーィィ 08ィ 0903ィィ0802ィェィィ07 ィェィ ィコィ 030106ィャ ィィ04 ィョ080609ィェ02ィヲ: 1. 0902ィコ090208. 04ィ 0903ィィ0802ィェィィ02ィャ 0502ィコ090208ィ ィャ0603ィェ06 09090209ィーィィ ィェ06090402 0502ィコ0902ィャ04, ィコ06ィー06080402 ィャ0600ィョィー ィ 04ィーィケ 04ィ ィー02ィャ ィィ09070605ィケ040609ィ ィェ04 09 09ィィィェィーィ ィコ09ィィ ツ0209ィコ06ィャ ィ ィェィ 05ィィ04ィ ィー060802. 06ィ ィコ0302 ィャ0603ィェ06 09ィャ02ィェィィィーィケ 06000608ィャ0502ィェィィ02 0708060008ィ ィャィャ04. 01ィ 0708ィィィャ0208, 09 ィコ06ィャ07ィィ0507ィー060802 Nemerle 060702ィィ06ィェィ 05ィケィェ04ィャ 08ィ 0903ィィ0802ィェィィ02ィャ 0502ィコ090208ィ 010609ィーィィ00ィ 02ィー0907 070609020102ィェィィ02 06ィー09ィーィョ070609 ィコィ ィコ 09 Python (05020902ィェィコィ 06ィー09ィーィョ070609 04ィ 01ィ 02ィー 09ィー08ィョィコィーィョ08ィョ 0708060008ィ ィャィャ04, ィー.02. 08ィ 0909ィーィ 09050702ィー ィ 0506ィコィィ 00ィィ00ィョ08ィェ0401 09ィコ06ィ 06ィコ). 2. 03ィ 08090208. 01ィ ィィィ 06050202 ィィィェィー02080209ィェ0602 ィャ0209ィー06 010507 08ィ 0903ィィ0802ィェィィィヲ. 05010209ィケ ィャ0603ィェ06 0106ィ ィ 09ィィィーィケ ィェ06090402 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ02 ィコ06ィェ09ィー08ィョィコ02ィィィィ ィィ05ィィ ィィ04ィャ02ィェィィィーィケ 09ィーィ 080402. 01ィ 0708ィィィャ0208 ィィィャ02ィェィェ06 ィェィ ィョ080609ィェ02 07ィ 08090208ィ 08ィ ィ 06ィーィ 06ィー ィャィ ィコ08060904 09 070404ィコ02 Nemerle. 06.02. ィャ0603ィェ06 09 ツィィィーィ ィーィケ ィャィ ィコ08060904 Nemerle 09ィェィョィー0802ィェィェィィィャ 08ィ 0903ィィ0802ィェィィ02ィャ 07ィ 08090208ィ. 3. 0502ィャィ ィェィーィィ ツ0209ィコィィィヲ ィ ィェィ 05ィィ04ィ ィー0608. 06ィョィー ィェィ 0102050702ィー0907 09ィャ040905 ィェ060904ィャ 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィィャ ィコ06ィェ09ィー08ィョィコ02ィィ07ィャ. 000603ィェ06, ィェィ 0708ィィィャ0208, 09090209ィーィィ ィェ06090402 ィコ06ィェ09ィー08ィョィコ02ィィィィ ィコ 09ィーィ 0804ィャ, ツィー06ィ 04 ィェ02 04ィ ィェィィィャィ ィーィケ0907 0002ィェ0208ィ 02ィィ02ィヲ ィィ01 070806ィャ0203ィョィー06 ツィェ060006 0708020109ィーィ 090502ィェィィ07. 06ィ ィコ0302 ィャ0603ィェ06 0106ィ ィ 09ィィィーィケ ィコィ ィコィョ06-ィェィィィ ィョ01ィケ ィェ0609ィョ06 0902ィャィ ィェィーィィィコィョ 09ィョィエ0209ィー09ィョ06ィエィィィャ 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィィャ ィコ06ィェ09ィー08ィョィコ02ィィ07ィャ. 0308ィィィャ020806ィャ 08ィ 0903ィィ0802ィェィィ07 0902ィャィ ィェィーィィ ツ0209ィコ060006 ィ ィェィ 05ィィ04ィ ィー0608ィ ィャ060302ィー 0905ィョ03ィィィーィケ 08ィ 0903ィィ0802ィェィィ02 NotNullTypes (09ィャ [5]) ィコ06ィャ07ィィ0507ィー0608ィ JastAddJ ィコ06ィー06080602 0708060902080702ィー 0708ィ 09ィィ05ィケィェ0609ィーィケ 0708ィィ0909ィ ィィ09ィ ィェィィィヲ 09 ィー06 ツィコィィ 040802ィェィィ07 010607ィョ09ィーィィィャ0609ィーィィ 07020802ィャ02ィェィェ0401 ィ 04ィーィケ ィェ020607080201020502ィェィェ04ィャィィ. JastAddJ ィ ィョ0102ィー 08ィ 0909ィャ06ィー0802ィェ 0706010806ィ ィェ0202 09 08ィ 0401020502 3.3. 4. 0905ィコ02ィェ01. 06ィョィー 090604ィャ0603ィェ04 0106070605ィェィィィー0205ィケィェ0402 0607ィーィィィャィィ04ィ 02ィィ06ィェィェ0402 07080601060104, 0002ィェ0208ィ 02ィィ07 0106070605ィェィィィー0205ィケィェ060006 (ィェィ 0708ィィィャ0208, 06ィー05ィ 0106 ツィェ060006) ィコ0601ィ. 030806ィ 0502ィャィ ィーィョィー 09 ィー06ィャ, ツィー06 0706 ツィーィィ 0506ィ ィ 07 ィーィ ィコィ 07 ィャ0601ィィ00ィィィコィ 02ィィ07 ィコ06ィャ07ィィ0507ィー0608ィ ィー0802ィ ィョ02ィー 020006 0702080209ィ 0608ィコィィ. 01ィ 0708ィィィャ0208, ィャィ 0502ィヲ030202 ィィ04ィャ02ィェ02ィェィィ02 0008ィ ィャィャィ ィーィィィコィィ ィー0802ィ ィョ02ィー 070605ィェ06ィヲ 0702080209ィ 0608ィコィィ 07ィ 08090208ィ. 06ィ ィコィィィャ 06ィ 08ィ 0406ィャ, 070605ィケ040609ィ ィー0205ィケ09ィコィィ02 08ィ 0903ィィ0802ィェィィ07 ィコ06ィャ07ィィ0507ィー0608ィ 09ィィ05ィケィェ06 04ィ ィー08ィョ01ィェ02ィェ04. 0106 08ィ 0903ィィ080702ィャ0402 ィコ06ィャ07ィィ0507ィー060804, 070806 ィコ06ィー06080402 ィ ィョ0102ィー ィェィ 07ィィ09ィ ィェ06 09 08ィ 0401020502 3.3, 0704ィーィ 06ィー0907 0708020601060502ィーィケ 05ィーィィ 070806ィ 0502ィャ04 08ィ 0405ィィ ツィェ04ィャィィ 0907060906ィ ィ ィャィィ. 9

131.2 0207080201020502ィェィィ07 0308ィィ09020102ィャ ィェ02ィコ06ィー06080402 0607080201020502ィェィィ07, ィィ09070605ィケ04ィョ02ィャ0402 09 06ィ 05ィ 09ィーィィ: 080404ィコ 07080201ィャ02ィーィェ06ィヲ 06ィ 05ィ 09ィーィィ (Domain Specic Language, DSL) 05ィー06 09070202ィィィ 05ィケィェ06 08ィ 0408ィ ィ 06ィーィ ィェィェ04ィヲ 070404ィコ 010507 08020302ィェィィ07 0607080201020504ィェィェ060006 ィコ08ィョ00ィ 04ィ 01ィ ツ, 09 06ィー05ィィ ツィィ02 06ィー 070404ィコ0609 0708060008ィ ィャィャィィ080609ィ ィェィィ07 06ィ ィエ020006 ィェィ 04ィェィ ツ02ィェィィ07. 08ィ ィコ 0708ィ 09ィィ0506 09ィィ05ィケィェ06 0706090403ィ 02ィー 07080601ィョィコィーィィ09ィェ0609ィーィケ 08ィ ィ 06ィー04 09 05ィー06ィヲ 06ィ 05ィ 09ィーィィ, 09 06ィー05ィィ ツィィ02 06ィー ィョィェィィ09020809ィ 05ィケィェ0401 070404ィコ0609. 05ィョィエ0209ィー09ィョ06ィー 09ィェィョィー0802ィェィェィィ02 ィィ 09ィェ0203ィェィィ02 DSL. 00ィェィョィー0802ィェィェィィィヲ DSL (embedded ィィ05ィィ internal DSL) 05ィー06 DSL 09ィェィョィー08ィィ 0108ィョ00060006 070404ィコィ. 00 070404ィコ02 09060401ィ 02ィー0907 090906020006 080601ィ ィャィィィェィィ 070404ィコ ツ02080204 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ02 090604ィャ0603ィェ0609ィーィィ ィ ィ 040609060006 070404ィコィ. 06ィ ィコィィィャ 06ィ 08ィ 0406ィャ, 0708060008ィ ィャィャィ ィェィ 09ィェィョィー0802ィェィェ02ィャ DSL 0709050702ィー0907 ィィ 0708060008ィ ィャィャ06ィヲ ィェィ ィ ィ 04060906ィャ 070404ィコ02. 00 070404ィコィ 01 0902ィャ02ィヲ09ィー09ィ Lisp 09ィェィョィー0802ィェィェィィ02 DSL ィェィ ィィィ 06050202 050200ィコ06 0802ィ 05ィィ04ィョ02ィャ04. 00ィェ0203ィェィィィヲ DSL 05ィー06 DSL, ィェ02 09090704ィ ィェィェ04ィヲ 09 ィ ィ 04060904ィャ 070404ィコ06ィャ, 09 06ィー05ィィ ツィィ02 06ィー 09ィェィョィー0802ィェィェ020006 DSL. 02ィェ ィー0802ィ ィョ02ィー 06ィー010205ィケィェ060006 07ィ 08090208ィ 010507 08ィ 09070604ィェィ 09ィ ィェィィ07. 00 ィコィ ツ0209ィー0902 0708ィィィャ0208ィ ィャ0603ィェ06 0708ィィ090209ィーィィ 00ィ ィヲ0504 0607ィィ09ィ ィェィィ07 09ィ 0608ィコィィ (makele). 080404ィコ060906-0608ィィ02ィェィーィィ080609ィ ィェィェ0602 0708060008ィ ィャィャィィ080609ィ ィェィィ02 (080203, Language oriented programming, LOP) 09ィーィィ05ィケ 0708060008ィ ィャィャィィ080609ィ ィェィィ07, 09 ィコ06ィー060806ィャ, 09 06ィー05ィィ ツィィ02 06ィー 08020302ィェィィ07 04ィ 01ィ ツ ィェィ ィョィェィィ09020809ィ 05ィケィェ0401 070404ィコィ 01, 0708060008ィ ィャィャィィ09ィー 09ィェィ ツィ 05ィ 09060401ィ 02ィー 0601ィィィェ ィィ05ィィ ィェ0209ィコ0605ィケィコ06 DSL 010507 04ィ 01ィ ツィィ, ィィ 0706ィー06ィャ 080203ィ 02ィー 04ィ 01ィ ツィョ ィェィ 05ィーィィ01 070404ィコィ 01. 0306ィェ07ィーィィ02 080203 0708ィィ030506 ィィ04 070404ィコィ Lisp, 000102 ィィ0404ィ 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ01 090604ィャ0603ィェ0609ィー02ィヲ 03ィィ0806ィコ06 0708ィ ィコィーィィィコィョ02ィー0907 09060401ィ ィェィィ02 09ィェィョィー0802ィェィェィィ01 DSL. 030806 070404ィコィィ 0902ィャ02ィヲ09ィー09ィ Lisp 0706010806ィ ィェ0202 ィェィ 07ィィ09ィ ィェ06 09 08ィ 0401020502 3.4. 0806ィャ07ィィ0507ィー0608 ィコ06ィャ07ィィ0507ィー06080609 (Compiler compiler) ィィィェ09ィー08ィョィャ02ィェィー 010507 09060401ィ ィェィィ07 07ィ 08090208ィ, ィィィェィー0208070802ィーィ ィー0608ィ ィィ05ィィ ィコ06ィャ07ィィ0507ィー0608ィ ィィ04 000608ィャィ 05ィケィェ060006 0607ィィ09ィ ィェィィ07 070404ィコィ. 0102ィェ0208ィ ィー0608 07ィ 080902080609 (Parser Generator) ィェィ ィィィ 06050202 08ィ ィェィェ0707 ィィ 03ィィ0806ィコ06 ィィ09070605ィケ04ィョ02ィャィ 07 000608ィャィ ィコ06ィャ07ィィ0507ィー0608ィ ィコ06ィャ07ィィ0507ィー06080609. 05060401ィ 02ィー 07ィ 08090208 0706 0607ィィ09ィ ィェィィ06 0008ィ ィャィャィ ィーィィィコィィ. 020208020906 08ィ 04ィ 0608ィ (Parse Tree, Concrete Syntax Tree(CST)) ィコ0608ィェ02090602, 0706ィャ02 ツ02ィェィェ0602 010208020906, 0708020109ィーィ 09050706ィエ0202 09ィィィェィーィ ィコ09ィィ ツ0209ィコィョ06 09ィー08ィョィコィーィョ08ィョ ィィ09010601ィェ060006 ィー02ィコ09ィーィ 09060005ィ 09ィェ06 ィコィ ィコ06ィヲ-05ィィィ 06 000608ィャィ 05ィケィェ06ィヲ 0008ィ ィャィャィ ィーィィィコ02. 00ィェィョィー0802ィェィェィィ02 ィョ040504 0102080209ィ 0706ィャ02 ツ02ィェ04 ィェ02ィー0208ィャィィィェィ 05ィ ィャィィ 0008ィ ィャィャィ ィーィィィコィィ, ィ 05ィィ09ィーィケ07 0102080209ィ ィー0208ィャィィィェィ 05ィ ィャィィ. 10

1308ィ 09ィー08ィ ィコィーィェ0602 09ィィィェィーィ ィコ09ィィ ツ0209ィコ0602 010208020906 (Abstract Syntax Tree(AST) ィィ05ィィ 07080609ィー06 09ィィィェィーィ ィコ09ィィ- ツ0209ィコ0602 010208020906) 09070202ィィィ 05ィケィェィ 07 08ィ 04ィェ0609ィィ01ィェ0609ィーィケ 0102080209ィ 08ィ 04ィ 0608ィ, ィィ09070605ィケ04ィョ02ィャィ 07 09 ィコ06ィャ07ィィ0507ィー0608ィ 01. 02ィー05ィィ ツィ 02ィー0907 06ィー 0102080209ィ 08ィ 04ィ 0608ィ 06ィー09ィョィー09ィー09ィィ02ィャ ィェ0206ィ 0704ィ ィー0205ィケィェ0401 010507 0902ィャィ ィェィーィィィコィィ ィョ04050609 (ィェィ 0708ィィィャ0208, 04ィ 0707ィー0402, 09ィコ06ィ ィコィィ, ィコ0506 ツ02090402 09050609ィ ) ィィ ィェ02ィコ06ィー060804ィャィィ 0108ィョ00ィィィャィィ 09ィー08ィョィコィーィョ08ィェ04ィャィィ 06ィー05ィィ ツィィ07ィャィィ. 2 02ィ 040608 06ィ 05ィ 09ィーィィ 2.1 0609ィー0608ィィ07 02ィ 05ィ 09ィーィケ 08ィ 0903ィィ080702ィャ0401 070404ィコ0609 0708060008ィ ィャィャィィ080609ィ ィェィィ07 09070208090402 07060709ィィ05ィ 09ィケ 09 60-0401 000601ィ 01 (09ィャ [24]). 03020809ィ 07 ィェィ ィョ ツィェィ 07 08ィ ィ 06ィーィ 00ィ ィコ08060904 010507 09040906ィコ06ィョ080609ィェ02090401 070404ィコ0609 0708060008ィ ィャィャィィ080609ィ ィェィィ07 0708ィィィェィ 01050203ィィィー 02ィョ0005ィ 09ィョ 00ィ ィコ05080606 (M. Douglas Mcllroy's) [23]. 0208ィョ00ィィ02 08ィ ィェィェィィ02 0607ィィ09ィ ィェィィ07 0708ィィィェ02ィィ07ィ 08ィ 0903ィィ080702ィャ0609ィーィィ 0708ィィ09060107ィー0907 09 09ィーィ ィーィケ02 0908ィョィコ0208ィ ィィ 000608ィィ09ィ 070806 ィコ06ィャ07ィィ0507ィー0608 ィコ06ィャ07ィィ0507ィー06080609 [26]. 03ィィィコ 0109ィィ0302ィェィィ07 06ィーィャ02 ツ02ィェ 0109ィョィャ07 ィ ィコィ 0102ィャィィ ツ0209ィコィィィャィィ 09ィィィャ070604ィィィョィャィ ィャィィ 09 1969 [15] ィィ 1971 [16]. 02ィ 040608ィェィ 07 09ィーィ ィーィケ07 0706 01ィ ィェィェ06ィヲ 06ィ 05ィ 09ィーィィ ィ 0405ィ ィェィ 07ィィ09ィ ィェィ 09 1975 000601ィョ 0606ィャィ 0906ィャ 05ィーィ ィェ01ィィ0306ィャ [25], 0706090502 ツ020006 ィィィェィー02080209 ィコ 06ィ 05ィ 09ィーィィ ィェィ ツィ 05 07080607ィ 01ィ ィーィケ. 0106 ィィィェィー02080209 ィコ 06ィ 05ィ 09ィーィィ 09ィェ0609ィケ 080204ィコ06 09060408ィ 09ィーィ 02ィー 09 21-06ィャ 0902ィコ02 (09ィャ [27]). 09ィ 08ィ ィコィー0208ィィ09ィーィィィコィ 08ィ ィェィェィィ01 0706010106010609 00 60-0402-70-0402 00060104, 08ィ 0903ィィ080702ィャ04ィヲ 070404ィコ 0708060008ィ ィャィャィィ080609ィ ィェィィ07 08ィ 0909ィャィ ィー08ィィ09ィ 050907 ィコィ ィコ 09060906ィコィョ07ィェ0609ィーィケ ィィ04 07080609ィー060006 ィ ィ 040609060006 070404ィコィ ィィ ィャ02ィーィ 070404ィコィ, 0907060906ィ ィェ060006 ィィ04ィャ02ィェ07ィーィケ ィ ィ 04060904ィヲ 070404ィコ. 04ィ 0903ィィ0802ィェィェ04ィヲ 070404ィコ 070605ィョ ツィ 02ィー0907 ィャ0601ィィ00ィィィコィ 02ィィ07ィャィィ ィ ィ 040609060006 070404ィコィ 09 0706ィャ06ィエィケ06 ィャ02ィーィ 070404ィコィ. 090605ィケ03ィィィェ09ィー0906 ィー0201ィェィィィコ 08ィ 0903ィィ0802ィェィィィヲ 070404ィコィ 09 05ィー06 090802ィャ07 ィ 0405ィィ 0609ィェ0609ィ ィェ04 ィェィ ィャィ ィコ080607060109ィーィ ィェ0609ィコィ 01. 0602ィャ ィェ02 ィャ02ィェ0202 ィャ0601ィィ00ィィィコィ 02ィィィィ 0008ィ ィャィャィ ィーィィィコ ィーィ ィコ0302 ィィ09090502010609ィ 05ィィ09ィケ, ィィ 09 080204ィョ05ィケィーィ ィー02 07060709ィィ05ィィ09ィケ ィ 01ィ 07ィーィィ09ィェ0402 0008ィ ィャィャィ ィーィィィコィィ, 0907060906ィ ィェ0402 ィィ04ィャ02ィェ07ィーィケ 090906ィヲ 09ィィィェィーィ ィコ09ィィ09 070807ィャ06 0906 090802ィャ07 0904070605ィェ02ィェィィ07. 030806 ィェィィ01 0706010806ィ ィェ0202 ィ ィョ0102ィー 08ィ 0909ィコィ 04ィ ィェ06 09 08ィ 0401020502 4.5. 050606ィ ィエ0209ィー0906 070404ィコィ Lisp 0609ィーィ 09ィ 050609ィケ 06ィー01020502ィェィェ04ィャ 06ィー 090606ィ ィエ0209ィー09ィ ィィ09090502010609ィ ィー020502ィヲ 08ィ 0903ィィ080702ィャ0401 070404ィコ0609 09ィィ01ィィィャ06 0706ィー06ィャィョ, ツィー06, ィコィ ィコ ィィ09090502010609ィ ィー0205ィケ 01ィ 0808ィィ0906ィェ 04ィ ィャ02ィーィィ05 09 [22]: 0506ィ 06ィヲ 070404ィコ 0708060008ィ ィャィャィィ080609ィ ィェィィ07, 09 ィコ06ィー060806ィャ 0708060008ィ ィャィャィ ィィ 01ィ ィェィェ0402 09ィョィエ0209ィー0902ィェィェ06 ィェ0208ィ 0405ィィ ツィィィャ04, ィャ060302ィー 09 ツィィィーィ ィーィケ0907 08ィ 0903ィィ080702ィャ04ィャ 070404ィコ06ィャ.... 05ィー06 050200ィコ06 ィャ0603ィェ06 ィョ09ィィ0102ィーィケ ィィ04 ィー060006 00ィ ィコィーィ, ツィー06 Lisp ィィ09070605ィケ040609ィ 050907 ィコィ ィコ 08ィ 0903ィィ080702ィャ04ィヲ 070404ィコ ィャィェ0600ィィ02 00060104 11

1301ィ ィコ06ィェ00020802ィェ02ィィィィ 1969 000601ィ ィ 0405 0708020109ィーィ 090502ィェ Simula ィコィ ィコ 08ィ 0903ィィ080702ィャ04ィヲ 070404ィコ 0708060008ィ ィャィャィィ080609ィ ィェィィ07 ( ツィー06 0706ィコィ 040409ィ 02ィー 04ィ ィィィェィー020802090609ィ ィェィェ0609ィーィケ ィャィェ0600ィィ01 ィィ09090502010609ィ ィー020502ィヲ 09 08ィ 0903ィィ080702ィャ0401 070404ィコィ 01), ィェ06 09 09ィィ05ィョ 090604ィェィィィコ03ィィ01 ィー08ィョ01ィェ0609ィー02ィヲ 020006 08ィ 0903ィィ080702ィャ0609ィーィケ ィーィ ィコ ィィ ィェ02 ィ 0405ィ 0802ィ 05ィィ040609ィ ィェィ. 05ィーィ ィェ01ィィ03 09 [25] 0607ィィ09ィ 05 ィー08ィィ ィコ05ィ 0909ィ 08ィ 0903ィィ0802ィェィィィヲ 070404ィコ0609, ィコ06ィー06080402 06ィェ ィェィ 0409ィ 05 070208020008ィ 04 (paraphrase), 0608ィー060008ィ 04 (orthophrase) ィィ ィャ02ィーィ 0008ィ 04 (metaphrase). 6ヲ1 030208020008ィ 04 0106ィ ィ 09050702ィー ィェ06090402 090604ィャ0603ィェ0609ィーィィ, 0909060107 ィィ01 ィコ ィョ0302 ィィィャ0206ィエィィィャ0907. 00 ィコィ ツ0209ィー0902 0708ィィィャ0208ィ ィャ0603ィェ06 0708ィィ090209ィーィィ ィャィ ィコ080607060109ィーィ ィェ0609ィコィィ, ィコ06ィー06080402 09 ィコ06ィェ02 ツィェ06ィャ 09 ツ02ィー02 08ィ 04090608ィ ツィィ09ィ 06ィー0907 09 ィコ06ィェ09ィー08ィョィコ02ィィィィ ィ ィ 040609060006 070404ィコィ. 6ヲ1 0208ィー060008ィ 04 0106ィ ィ 09050702ィー 090604ィャ0603ィェ0609ィーィィ, ィェ02090408ィ 04ィィィャ0402 09 ィ ィ 04060906ィャ 070404ィコ02, ィーィ ィコィィ02 ィコィ ィコ, ィェィ 0708ィィィャ0208, 0106ィ ィ 090502ィェィィ02 09ィィ09ィー02ィャ04 09090601ィ -0904090601ィ ィコ 070404ィコィョ, ィェ02 ィィィャ0206ィエ02ィャィョ 06ィェ06ィヲ. 06ィ ィコィィィャ 06ィ 08ィ 0406ィャ, 0608ィー060008ィ 04-08ィ 0903ィィ0802ィェィィ02 01060503ィェ06 ィ 04ィーィケ ィェィ 07ィィ09ィ ィェ06 ィェィ 0108ィョ0006ィャ 070404ィコ02. 0604 0906090802ィャ02ィェィェ0401 0706ィェ07ィーィィィヲ ィ 05ィィ04ィコィィィャ ィ ィェィ 05060006ィャ 0709050702ィー0907 0706ィェ07ィーィィ02 070601ィコ0506 ツィ 02ィャ060006 0106070605ィェ02ィェィィ07 (plug-in). 6ヲ1 0002ィーィ 0008ィ 04 ィャ0601ィィ00ィィ02ィィ08ィョ02ィー ィィィェィー0208070802ィーィ 02ィィ06 09ィョィエ0209ィー09ィョ06ィエィィ01 050502ィャ02ィェィー0609 070404ィコィ, ィィ, ィーィ ィコィィィャ 06ィ 08ィ 0406ィャ, 090408ィ 0302ィェィィ07 08ィ 04ィ ィィ08ィ 06ィー0907 0706-ィェ060906ィャィョ. 02ィェ06 090606ィー0902ィー09ィー09ィョ02ィー 0906090802ィャ02ィェィェ06ィャィョ 0706ィェ07ィーィィ06 0802000502ィコ09ィィィィ. 05ィ ィコィ ィー 08ィ ィェィェィィ01 0706010106010609 05ィーィ ィェ01ィィ03 09 [25] ィ 0800ィョィャ02ィェィーィィ080609ィ 05 ィェ02ィョ01ィ ツィョ 0109ィィ0302ィェィィ07 09050603ィェ0609ィーィケ06 0708060008ィ ィャィャィィ080609ィ ィェィィ07 070609050201ィョ06ィエィィ01 08ィ 0903ィィ0802ィェィィィヲ. 02ィ 04 ツィェ04ィヲ 0708060008ィ ィャィャィィ09ィー ィャ060302ィー 09060401ィ ィーィケ ィェ02ィコ0602 08ィ 0903ィィ0802ィェィィ02 0906ィコ08ィョ00 ィ ィ 040609060006 070404ィコィ, ィェ06 020905ィィ 09ィー06080602 08ィ 0903ィィ0802ィェィィ02 ィ ィョ0102ィー 09060401ィ ィェ06 0906ィコ08ィョ00 07020809060006, ィー06 0708060008ィ ィャィャィィ09ィーィョ ィェィョ03ィェ06 ィ 04ィーィケ ィ 05ィィ04ィコ06 04ィェィ ィコ06ィャ04ィャ ィィ 09 ィ ィ 04060904ィャ 070404ィコ06ィャ, ィィ 09 0702080904ィャ 08ィ 0903ィィ0802ィェィィ02ィャ. 060802ィーィケ02 08ィ 0903ィィ0802ィェィィ02 ィ ィョ0102ィー ィー0802ィ 0609ィ ィーィケ 02ィエ02 ィ 0605ィケ0302 04ィェィ ィェィィィヲ ィィ ィー.01. 05050201ィョ02ィー 04ィ ィャ02ィーィィィーィケ, ツィー06 06ィー01020502ィェィィ02 0708060008ィ ィャィャィィ09ィーィ 06ィー ィェィィ04ィコ06ィョ080609ィェ02090401 0102ィーィ 0502ィヲ, 05ィー06 020205ィケ 070601010601ィ, 07080201070605ィ 00ィ 06ィエ020006 0909020102ィェィィ02 ィ ィ 09ィー08ィ ィコ02ィィィィ. 06ィー06ィー 070601010601 0904ィー0209ィェィィ05 ィィ09090502010609ィ ィェィィ07 08ィ 0903ィィ080702ィャ0609ィーィィ 09 ィー06 090802ィャ07. 2.2 0506090802ィャ02ィェィェ0602 090609ィー0607ィェィィ02 00 0906090802ィャ02ィェィェ06ィャ 0706ィェィィィャィ ィェィィィィ 09ィィ09ィー02ィャィ, 07060101020803ィィ09ィ 06ィエィ 07 08ィ 0903ィィ080702ィャ0602 0708060008ィ ィャィャィィ080609ィ ィェィィ02, 070802010609ィーィ 09050702ィー 090902 ィェィィ030207020802 ツィィ090502ィェィェ0402 090604ィャ0603ィェ0609ィーィィ (09ィャ.[12],[27]): 04ィ 0903ィィ080702ィャ04ィヲ 09ィィィェィーィ ィコ09ィィ09 04ィ 0903ィィ080702ィャ04ィヲ 09ィィィェィーィ ィコ09ィィ09 07080201070605ィ 00ィ 02ィー, ツィー06 070404ィコ ィェ02 0106050302ィェ ィ 04ィーィケ 00ィィィコ09ィィ080609ィ ィェィェ04ィャ ィィ05ィィ 09ィーィ ィーィィ ツィェ04ィャ. 02ィェ 0106050302ィェ 070802010609ィーィ 090507ィーィケ 090604ィャ0603ィェ0609ィーィケ 0106ィ ィ 090507ィーィケ ィェ06090402 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ02 ィコ06ィェ09ィー08ィョィコ- 12

1302ィィィィ. 020607ィョ09ィーィィィャィ ィェ02ィィ04ィャ02ィェィェ0609ィーィケ ィェ02ィコ06ィー06080401 00ィョィェ01ィ ィャ02ィェィーィ 05ィケィェ0401 ィィ 09ィェィョィー0802ィェィェィィ01 090906ィヲ09ィー09 070404ィコィ, ィェ06 09ィィ09ィー02ィャィ ィェ02 01060503ィェィ 070605ィェ0609ィーィケ06 06ィー ィェィィ01 04ィ 09ィィ0902ィーィケ. 04ィ 0903ィィ080702ィャ04ィヲ ィコ06ィャ07ィィ0507ィー0608 00 08ィ 0903ィィ080702ィャ06ィャ 0708060008ィ ィャィャィィ080609ィ ィェィィィィ ィコ06ィャ07ィィ0507ィー0608 ィェ02 0709050702ィー0907 ィャ06ィェ0605ィィィーィェ06ィヲ 0708060008ィ ィャィャ06ィヲ, ィコ06ィー0608ィ 07 07080206ィ 08ィ 04ィョ02ィー ィィ09010601ィェ04ィヲ ィコ0601 09 ィ ィィィェィ 08ィェ04ィヲ ィィ09070605ィェ0702ィャ04ィヲ 000608ィャィ ィー. 0806ィャ07ィィ0507ィー0608 09ィ ィャ 0106050302ィェ ィ 04ィーィケ 08ィ 0903ィィ080702ィャ ツ02080204 ィェィ ィ 0608 0106070605ィェ02ィェィィィヲ, ィコ06ィー06080402 0706ィャ0600ィ 06ィー 09 07080206ィ 08ィ 040609ィ ィェィィィィ ィィ09010601ィェ060006 070404ィコィ 0906 ツィー06 ィョ000601ィェ06. 01ィ 0708ィィィャ0208, 08ィ 0903ィィ080702ィャ04ィヲ ィコ06ィャ07ィィ0507ィー0608 ィ ィョ0102ィー 0002ィェ0208ィィ080609ィ ィーィケ 06ィ ィイ02ィコィーィェ04ィヲ ィコ0601, 0106ィコィョィャ02ィェィーィ 02ィィ06 ィコ ィコ0601ィョ, 07020802000608ィャィ ィーィィ080609ィ ィェィェ04ィヲ ィィ09010601ィェ04ィヲ ィコ0601 ィィ05ィィ 0506ィ ィョ06 0108ィョ00ィョ06 030205ィ 02ィャィョ06 ィィィェ000608ィャィ 02ィィ06. 080801ィィィー02ィコィーィョ08ィ ィコ06ィャ07ィィ0507ィー0608ィ 01060503ィェィ 070802010609ィーィ 090507ィーィケ ィィィェィー02080002ィヲ0904 010507 010609ィーィョ07ィ 09ィェィョィー08ィケ 07080602020909ィ ィコ06ィャ07ィィ050702ィィィィ ィィ 070802010609ィーィ 090507ィーィケ 090604ィャ0603ィェ0609ィーィケ ィィ09070605ィケ040609ィ ィーィケ ィ 05ィケィー0208ィェィ ィーィィ09ィェ0402 04ィ 01ィ ツィィ 06ィ 08ィ ィ 06ィーィコィィ ィェィ ィコィ 030106ィャ 03ィ 0002 07080602020909ィ ィコ06ィャ07ィィ050702ィィィィ. 020507 07080609ィー06ィヲ 04ィ 01ィ ツィィ ィー08ィ ィェ09050702ィィィィ ィィ09010601ィェ060006 ィコ0601ィ 09 ツィー06-05ィィィ 06, 0907060906ィ ィェ0602 04ィ 07ィョ09ィーィィィーィケ0907 ィェィ ィコ06ィャ07ィケ06ィー020802, 08ィ 0903ィィ080702ィャ04ィヲ ィコ06ィャ07ィィ0507ィー0608 0106050302ィェ: 6ヲ1 0609070605ィケ040609ィ ィーィケ ィャ0601ィョ05ィケィェィョ06 (plug-in) ィィ05ィィ ィコ06ィャ0706ィェ02ィェィーィェィョ06 ィ 0801ィィィー02ィコィーィョ08ィョ 010507 0706 ツィーィィ ィコィ 0301060006 03ィ 00ィ ィコ06ィャ07ィィ050702ィィィィ. 6ヲ1 02070802010205ィィィーィケ 070404ィコ ィィ05ィィ 09ィ 08ィィィ ィェィー 070404ィコィ, ィコ06ィー060804ィヲ ィ ィョ0102ィー ィコ06ィャ07ィィ05ィィ080609ィ ィーィケ0907, ィィ ィェィ ィヲィーィィ 07060101060107ィエィィィヲ ィコ06ィャ0706ィェ02ィェィー 010507 08ィ 09070604ィェィ 09ィ ィェィィ07 ィィ 070806090208ィコィィ 05ィー060006 070404ィコィ. 6ヲ1 03080609020807ィーィケ 0902ィャィ ィェィーィィ ツ0209ィコィョ06 0708ィ 09ィィ05ィケィェ0609ィーィケ 07ィョィー02ィャ 04ィ 07ィョ09ィコィ 090606ィー0902ィー09ィー09ィョ06ィエ020006 ィコ06ィャ0706ィェ02ィェィーィ. 6ヲ1 06ィャ02ィーィケ 090604ィャ0603ィェ0609ィーィケ 0904ィ 0608ィ ィィ04 ィェ0209ィコ0605ィケィコィィ01 0002ィェ0208ィ ィー06080609 ィコ0601ィ 010507 08ィ 04ィェ0401 0708060202090906080609, 06070208ィ 02ィィ06ィェィェ0401 09ィィ09ィー02ィャ, 09ィィ08ィーィョィ 05ィケィェ0401 ィャィ 03ィィィェ ィィ 0708. 6ヲ1 030802010609ィーィ 09ィィィーィケ ィャ02ィー060104 010507 0002ィェ0208ィ 02ィィィィ 0603ィィィ 06ィコ ィィ ィィ01 08ィ 0903ィィ0802ィェィィィヲ. 6ヲ1 030802010609ィーィ 09ィィィーィケ 090604ィャ0603ィェ0609ィーィケ 0106ィ ィ 090507ィーィケ ィェ06090402 ィョ040504, 04ィェィ ツ02ィェィィ07 ィィ 0802ィ 08ィ 09 09ィィィェィーィ ィコ09ィィ ツ0209ィコ0602 010208020906. 6ヲ1 030802010609ィーィ 09ィィィーィケ 090604ィャ0603ィェ0609ィーィケ ィー08ィ ィェ09050702ィィィィ ィィ ィー08ィ ィェ09000608ィャィ 02ィィィィ 09ィィィェィーィ ィコ09ィィ ツ0209ィコ060006 0102080209ィ ィィ05ィィ 0706010102080209ィ ツ02080204 09ィェ0203ィェィィ02 ィコ06ィャ0706ィェ02ィェィー04. 6ヲ1 02ィ 02090702 ツィィィーィケ 0706ィー06ィコ ィィィェ000608ィャィ 02ィィィィ ィャ020301ィョ 09ィェィョィー0802ィェィェィィィャィィ ィィ 09ィェ0203ィェィィィャィィ ィコ06ィャ0706ィェ02ィェィーィ ィャィィ 13

1304ィ 0903ィィ080702ィャィ 07 09080201ィ ィィ09070605ィェ02ィェィィ07 05080201ィ ィィ09070605ィェ02ィェィィ07 08ィ 0903ィィ080702ィャ06ィヲ 09ィィ09ィー02ィャ04 0708060008ィ ィャィャィィ080609ィ ィェィィ07 01060503ィェィ 07060409060507ィーィケ 070404ィコィ ィャ 08ィ 0903ィィ0807ィーィケ ィャィェ06030209ィー0906 010607ィョ09ィーィィィャ0401 06070208ィ 02ィィィヲ. 01ィ 0708ィィィャ0208, 020905ィィ 09ィィ09ィー02ィャィ ィィ09070605ィケ04ィョ02ィー ィィィェィー0208070802ィーィ ィー0608 ィ ィ ィヲィー-ィコ0601ィ, ィー06 06ィェィ 01060503ィェィ ィィィャ02ィーィケ 090604ィャ0603ィェ0609ィーィケ 0607080201020502ィェィィ07 ィェ06090401 ィコ06ィャィ ィェ01 ィィ 090606ィー0902ィー09ィー09ィョ06ィエィィ01 ィィィャ 0708020109ィーィ 090502ィェィィィヲ 09 ィ ィ ィヲィー-ィコ060102. 08ィ ィコ ィィ 09 08ィ 0903ィィ080702ィャ06ィャ 09ィィィェィーィ ィコ09ィィ0902 010607ィョ09ィーィィィャ06 ィェィ 05ィィ ツィィ02 ィェ02ィ 0605ィケ03060006 ィェィ ィ 0608ィ ィェ02ィィ04ィャ02ィェィェ0401 00ィョィェ01ィ ィャ02ィェィーィ 05ィケィェ0401 09ィェィョィー0802ィェィェィィ01 ィィィェ09ィー08ィョィコ02ィィィヲ. 0602ィャ ィェ02 ィャ02ィェ0202, 01060503ィェ06 ィ 04ィーィケ 090604ィャ0603ィェ06 070208020008ィョ04ィィィーィケ (overload) 05ィーィィ 06070208ィ ィー060804 ィーィ ィコ, ツィー06ィ 04 07060709ィィ05ィィ09ィケ ィェ06090402 ィィ05ィィ 0106070605ィェィィィー0205ィケィェ0402 090604ィャ0603ィェ0609ィーィィ. 02ィー01020502ィェィィ02 090601020803ィ ィェィィ07 06ィー 000608ィャ04 04ィ 0903ィィ080702ィャ0402 09ィィ09ィー02ィャ04 0708060008ィ ィャィャィィ080609ィ ィェィィ07 01060503ィェ04 08ィ 0909ィャィ ィー08ィィ09ィ ィーィケ 0708060008ィ ィャィャ04 ィコィ ィコ 01ィ ィェィェ0402 010507 06ィ 08ィ ィ 06ィーィコィィ. 06ィーィィ 0708060008ィ ィャィャ04 01060503ィェ04 ィ 04ィーィケ 070605ィェ0609ィーィケ06 05ィィ0302ィェ04 0506ィ 06ィヲ ィィィェ000608ィャィ 02ィィィィ 06 000608ィャィ ィーィィ080609ィ ィェィィィィ. 05ィィ09ィー02ィャィ 01060503ィェィ 07080206ィ 08ィ 040609ィ ィーィケ 0708060008ィ ィャィャィョ 09 000608ィャィョ, ィェィ ィィィ 06050202 07060101060107ィエィョ06 010507 07080609ィャ06ィー08ィ, 080201ィ ィコィーィィ080609ィ ィェィィ07 ィィ05ィィ 0002ィェ0208ィ 02ィィィィ ィコ0601ィ. 03060101020803ィコィ 06ィー05ィ 01ィコィィ 09060401ィ 09ィ 02ィャ0401 070404ィコ0609 04ィ 0903ィィ080702ィャィ 07 09ィィ09ィー02ィャィ 0708060008ィ ィャィャィィ080609ィ ィェィィ07 01060503ィェィ 07060101020803ィィ09ィ ィーィケ 06ィー05ィ 01ィコィョ 0708060008ィ ィャィャ, ィィ09070605ィケ04ィョ07 ィコ06ィェ09ィー08ィョィコ02ィィィィ 070404ィコィ, ィェィ ィコ06ィー060806ィャ 06ィェィ 04ィ 07ィィ09ィ ィェィ, 09ィェ02 04ィ 09ィィ09ィィィャ0609ィーィィ 06ィー ィコ0605ィィ ツ0209ィー09ィ 08ィ 0903ィィ0802ィェィィィヲ 070404ィコィ ィィ ィー08ィ ィェ09000608ィャィ 02ィィィヲ 0708060008ィ ィャィャ04. 02ィー05ィ 01 ツィィィコ 0106050302ィェ 07060409060507ィーィケ 06ィー06ィ 08ィ 03ィ ィーィケ 01ィ ィェィェ0402 09 000608ィャ02, 07060101060107ィエ02ィヲ 010507 070404ィコィ. 01ィ 0708ィィィャ0208, 020905ィィ 070404ィコ 07060101020803ィィ09ィ 02ィー 09ィー08ィョィコィーィョ0804 01ィ ィェィェ0401 010507 ィ ィィ04ィェ0209 070806020209090609 ィィ05ィィ 0706ィー06ィコ0609 0904070605ィェ02ィェィィ07, ィー06 020006 06ィー05ィ 01 ツィィィコ 0106050302ィェ 0904090601ィィィーィケ 05ィーィィ 09ィー08ィョィコィーィョ0804 09 09ィィ0102 01ィィィ 0008ィ ィャィャ 0603ィィィコィ 0904 [10] (Ishikawa, shbone, cause-and-eect diagrams) ィィ05ィィ 09 0108ィョ0006ィヲ 000608ィャ02, 070802010609ィーィ 09050702ィャ06ィヲ ィェ02ィコィィィャ 09070202ィィィ 05ィケィェ04ィャ ィコ06ィャ0706ィェ02ィェィー06ィャ. 06ィ ィコ0602 0906090802ィャ02ィェィェ0602 0607080201020502ィェィィ02 08ィ 0903ィィ080702ィャ06ィヲ 09ィィ09ィー02ィャ04 0708060008ィ ィャィャィィ080609ィ ィェィィ07 ィー0802ィ ィョ02ィー 06 ツ02ィェィケ ィャィェ0600060006. 030605ィョ ツィィ050907 090906020006 080601ィ ィィ0102ィ 05. 0609ィーィィィェィェ06 08ィ 0903ィィ080702ィャ0401 09ィィ09ィー02ィャ 09 ィーィ ィコ06ィャ 0706ィェィィィャィ ィェィィィィ ィェィ 01ィ ィェィェ04ィヲ ィャ06ィャ02ィェィー ィェ02ィー. 01ィ ィィィ 06050202 ィ 05ィィ04ィコィィィャ ィコ 01ィ ィェィェ06ィャィョ 0607080201020502ィェィィ06 0709050702ィー0907, ィェィ 090208ィェ0602, XLR: Extensible Language and Runtime, 070806 ィコ06ィー060804ィヲ 0706010806ィ ィェ0202 ィェィ 07ィィ09ィ ィェ06 09 3.4. 00 01ィ ィェィェ06ィヲ 08ィ ィ 06ィー02 ィ ィョ0102ィー 08ィ 0909ィャィ ィー08ィィ09ィ ィーィケ0907 ィ 06050202 03ィィ0806ィコィィィヲ ィコ05ィ 0909 08ィ 0903ィィ0802ィェィィィヲ, 09 ィコ06ィー06080401 ィェ02 090902 05ィーィィ ィー0802ィ 0609ィ ィェィィ07 0904070605ィェ02ィェ04. 14

133 0805ィ 0909ィィ00ィィィコィ 02ィィ07 04ィ 0903ィィ0802ィェィィ07 ィコ06ィャ07ィィ0507ィー0608ィ ィャ0603ィェ06 ィョ09050609ィェ06 07060108ィ 04010205ィィィーィケ ィェィ 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ02 ィィ 0902ィャィ ィェィーィィ ツ0209ィコィィ02. 05ィィィェィーィ ィコ09ィィ ツ0209ィコィィ02 08ィ 0903ィィ0802ィェィィ07 0106ィ ィ 09050706ィー ィェ06090402 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ02 ィコ06ィェ09ィー08ィョィコ02ィィィィ 09 070404ィコ. 01ィ 0708ィィィャ0208, 07020802 ツィィ090502ィェィィ07 (enum), 06ィ 06ィ ィエ02ィェィェ0402 ィーィィ0704 (generics) 09 Java 5. 0502ィャィ ィェィーィィ ツ0209ィコィィ02 08ィ 0903ィィ0802ィェィィ07, 09 06ィー05ィィ ツィィ02 06ィー 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ01, 07080609ィー06 ィャ02ィェ0706ィー 070609020102ィェィィ02 ィコ0601ィ ィ 0204 0909020102ィェィィ07 ィェ06090401 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ01 ィコ06ィェ09ィー08ィョィコ02ィィィヲ. 0308ィィィャ020806ィャ 0902ィャィ ィェィーィィ ツ0209ィコィィ01 08ィ 0903ィィ0802ィェィィィヲ 0709050702ィー0907 ィ 090702ィコィーィェ06-0608ィィ02ィェィーィィ080609ィ ィェィェ0602 0708060008ィ ィャィャィィ080609ィ ィェィィ02 (080203), ィコ06ィー06080602 ィ ィョ0102ィー 08ィ 0909ィャ06ィー0802ィェ06 09 08ィ 0401020502 3.1. 3.1 0502ィャィ ィェィーィィ ツ0209ィコィィ02 08ィ 0903ィィ0802ィェィィ07 0502ィャィ ィェィーィィ ツ0209ィコィィ02 08ィ 0903ィィ0802ィェィィ07 ィャ02ィェ0706ィー 070609020102ィェィィ02 0708060008ィ ィャィャ04 ィコィ ィコィィィャ-05ィィィ 06 09ィェ0203ィェィィィャ 06ィ 08ィ 0406ィャ. 01ィ 0708ィィィャ0208, ツ02080204 070802070806020209090608 ィィ09010601ィェ060006 ィィ05ィィ ィ ィ ィヲィー-ィコ0601ィ. 04ィ 0909ィャ06ィー08ィィィャ 0708020109ィーィ 09ィィィー020502ィヲ 01ィ ィェィェ060006 ィコ05ィ 0909ィ : 0002ィーィ 0708060008ィ ィャィャィィ080609ィ ィェィィ02 0002ィーィ 0708060008ィ ィャィャィィ080609ィ ィェィィ02 06ィ 05ィ 09ィーィケ 0608ィィ02ィェィーィィ080609ィ ィェィェィ 07 ィェィ 09060401ィ ィェィィ02 0708060008ィ ィャィャ, ィコ06ィー06080402 09060401ィ 06ィー 0108ィョ00ィィ02 0708060008ィ ィャィャ04 ィコィ ィコ 080204ィョ05ィケィーィ ィー 09090602ィヲ 08ィ ィ 06ィー04 (05ィィィ 06, 09 ツィ 09ィーィェ06ィャ 0905ィョ ツィ 02, ィィ04ィャ02ィェ0706ィエィィ02 ィィ05ィィ 0106070605ィェ0706ィエィィ02 0902ィ 07 0906 090802ィャ07 0904070605ィェ02ィェィィ07). 0002ィーィ 0708060008ィ ィャィャィィ080609ィ ィェィィ02 08ィ 040102050702ィー0907 ィェィ 2 ィェィ 0708ィ 090502ィェィィ07: ィェィ 09ィーィ 01ィィィィ ィコ06ィャ07ィィ050702ィィィィ (0002ィェ0208ィ 02ィィ07 ィコ0601ィ ) ィィ ィェィ 09ィーィ 01ィィィィ 0904070605ィェ02ィェィィ07 (09ィ ィャ06ィャ0601ィィ00ィィ02ィィ08ィョ06ィエィィィヲ0907 ィコ0601). 030208090602 ィェィ 0708ィ 090502ィェィィ02 0706040906050702ィー 070605ィョ ツィィィーィケ 0708060008ィ ィャィャィョ 0708ィィ ィャ02ィェィケ03ィィ01 04ィ ィー08ィ ィーィ 01 090802ィャ02ィェィィ ィィ ィョ09ィィ05ィィィヲ, ツ02ィャ 020905ィィ ィ 04 0708060008ィ ィャィャィィ09ィー 07ィィ09ィ 05 0204 0908ィョ ツィェィョ06. 00ィー06080602 08ィ 0903ィィ080702ィー 090604ィャ0603ィェ0609ィーィィ 0708060008ィ ィャィャィィ09ィーィ. 0002ィーィ 0708060008ィ ィャィャィィ080609ィ ィェィィ02 0708ィィィャ02ィェ0702ィー0907 ィコィ ィコ ィャ02ィー0601 0906 ィャィェ0600ィィ01 06ィ 05ィ 09ィー0701. 08090702ィコィーィェ06-0608ィィ02ィェィーィィ080609ィ ィェィェ0602 0708060008ィ ィャィャィィ080609ィ ィェィィ02 08090702ィコィーィェ06-0608ィィ02ィェィーィィ080609ィ ィェィェ0602 0708060008ィ ィャィャィィ080609ィ ィェィィ02 (080203) 05ィー06 ィャ02ィー0601ィィィコィ 0708060008ィ ィャィャィィ080609ィ ィェィィ07 09 08ィ ィャィコィ 01 ィコ05ィ 0909060906ィヲ 07ィ 08ィ 01ィィ00ィャ04, 0609ィェ0609ィ ィェィェィ 07 ィェィ 0706ィェ07ィーィィィィ ィ 090702ィコィーィ, ィー.02. ィ 0506ィコィ ィコ0601ィ, ィィィェィコィ 0709ィョ05ィィ08ィョ06ィエ020006 09ィコ090604ィェ0602 070609020102ィェィィ02 09 090609ィーィ 0902 ィコ05ィ 09090609 ィィ 070609ィー0608ィェ06 ィィ09070605ィケ04ィョ02ィャ0401 ィャ0601ィョ0502ィヲ. 08090702ィコィーィェ06-0608ィィ02ィェィーィィ080609ィ ィェィェ0602 0708060008ィ ィャィャィィ080609ィ ィェィィ02 09040806090506 ィィ04 06090604ィェィ ィェィィ07 ィー060006, ツィー06 09 ィーィィ0706090401 0708060008ィ ィャィャィ 01 ィェィ 06ィ ィイ02ィコィーィェ06-0608ィィ02ィェィーィィ080609ィ ィェィェ0401 070404ィコィ 01 ツィ 09ィー06 0708020109ィーィ 090502ィェ06 070609020102ィェィィ02, ィコ06ィー06080602 ィェ02 09ィャ02ィエィ 02ィー0907 0209ィー0209ィー0902ィェィェ06 09 0601ィィィェ ィィ05ィィ 01ィ 0302 09 ィェ0209ィコ0605ィケィコ06 ィー0209ィェ06 09090704ィ ィェィェ0401 0708060008ィ ィャィャィェ0401 ィャ0601ィョ0502ィヲ. 03ィィ06ィェ020804 ィ 090702ィコィーィェ060006 070601010601ィ 09090205ィィ ィー0208ィャィィィェ 06070208020902 ツ02ィェィィ0207 (crosscutting, 09ィコ090604ィェィ 07 00ィョィェィコ02ィィ06ィェィ 05ィケィェ0609ィーィケ) 010507 06ィ 0604ィェィ ツ02ィェィィ07 070609020102ィェィィ07 ィコ0601ィ, 0708ィィ ィコ06ィー060806ィャ 070208020902ィコィ 06ィー0907 06ィー0902ィー09ィー0902ィェィェ0609ィーィィ 15

1308ィ 0408ィ ィ 06ィー ツィィィコ0609 0708060008ィ ィャィャィェ0401 ィャ0601ィョ0502ィヲ. 00 06ィ ィイ02ィコィーィェ06-0608ィィ02ィェィーィィ080609ィ ィェィェ06ィャ 0708060008ィ ィャィャィィ080609ィ ィェィィィィ, ィェィ 0708ィィィャ0208, 0201ィィィェィィ0202ィヲ ィャ0601ィョ05ィケィェ0609ィーィィ 0709050702ィー0907 ィコ05ィ 0909, ィ 060902ィコィョィエ020207 090906ィヲ09ィー0906 060109ィ ィー0409ィ 02ィー ィェ0209ィコ0605ィケィコ06 ィコ05ィ 09090609. チィ 09ィー06 070208020902 ツ02ィェィィ02 0909ィー0802 ツィ 02ィー0907 0708ィィ 060800ィ ィェィィ04ィ 02ィィィィ 03ィョ08ィェィ 05ィィ080609ィ ィェィィ07 0708ィィ05060302ィェィィィヲ, ィコ06ィェィー02ィコ09ィーィェ06 04ィ 09ィィ09ィィィャ06ィヲ 06ィ 08ィ ィ 06ィーィコ02 0603ィィィ 06ィコ, 0607ィーィィィャィィ04ィ 02ィィィィ 0904070605ィェ02ィェィィ07 0708060008ィ ィャィャ, ィ ィーィ ィコ0302 09 03ィ ィ 0506ィェィ 01 07080602ィコィーィィ080609ィ ィェィィ07. 080203 0106070605ィェ0702ィー 06ィ ィイ02ィコィーィェ06-0608ィィ02ィェィーィィ080609ィ ィェィェ0602 0708060008ィ ィャィャィィ080609ィ ィェィィ02, 06ィ 0600ィ ィエィ 07 020006 0108ィョ00ィィィャ ィーィィ0706ィャ ィャ0601ィョ05ィケィェ0609ィーィィ, ィコ06ィー060804ィヲ 0706040906050702ィー 0506ィコィ 05ィィ040609ィ ィーィケ ィコ0601 0802ィ 05ィィ04ィ 02ィィィィ 050600ィィィコィィ 070208020902 ツ02ィェィィ07 09 0601ィェ06ィャ ィャ0601ィョ0502. 06ィ ィコィィ02 ィャ0601ィョ05ィィ 06ィ 0604ィェィ ツィ 06ィー0907 ィー0208ィャィィィェ06ィャ ィ 090702ィコィー04, 06ィー ィ 090702ィコィーィェ06-0608ィィ02ィェィーィィ080609ィ ィェィェ060006 0708060008ィ ィャィャィィ080609ィ ィェィィ07. 08090702ィコィー04 09 09ィィ09ィー02ィャ02 ィャ0600ィョィー ィィ04ィャ02ィェ07ィーィケ0907, 0909ィーィ 090507ィーィケ0907, ィョ01ィ 0507ィーィケ0907 ィェィ 05ィーィ 0702 ィコ06ィャ07ィィ050702ィィィィ ィィ, ィ 06050202 ィー060006, 070609ィー0608ィェ06 ィィ09070605ィケ040609ィ ィーィケ0907. 000902 070404ィコィィ 080203 070802010609ィーィ 09050706ィー 0907060906ィ 04 010507 090401020502ィェィィ07 09ィコ090604ィェ06ィヲ 00ィョィェィコ02ィィ06ィェィ 05ィケィェ0609ィーィィ 09 06ィー010205ィケィェィョ06 09ィョィエィェ0609ィーィケ. 04ィ 0405ィィ ツィィ02 ィャ020301ィョ ィェィィィャィィ 04ィ ィコ0506 ツィ 02ィー0907 09 ィョ0106ィ 09ィー0902, ィ 02040607ィ 09ィェ0609ィーィィ ィィ 06ィ 05ィ 09ィーィィ 0708ィィィャ02ィェ02ィェィィ07 0908020109ィー09, ィコ06ィー06080402 06ィェィィ 070802010609ィーィ 09050706ィー. 01ィ ィィィ 06050202 070607ィョ050708ィェ04ィヲ ィェィ 01ィ ィェィェ04ィヲ ィャ06ィャ02ィェィー 070404ィコ 080203 AspectJ. 0609070605ィケ04ィョ02ィャ0402 09 ィェ02ィャ 0706ィェ07ィーィィ07 08ィ 0907080609ィー08ィ ィェィィ05ィィ09ィケ ィェィ ィ 0605ィケ03ィィィェ09ィー0906 070404ィコ0609 080203. 04ィ 0909ィャ06ィー08ィィィャ AspectJ ィェィ 0708ィィィャ020802 ィ 090702ィコィーィ 010507 03ィョ08ィェィ 05ィィ080609ィ ィェィィ07 0906ィ 04ィーィィィヲ. 020607ィョ09ィーィィィャ ィョ ィェィ 09 0209ィーィケ ィャィェ06030209ィー0906 ィャ02ィー06010609 dosomething, 09 ィコ06ィー06080401 ィェ0206ィ 010601ィィィャ06 03ィョ08ィェィ 05ィィ080609ィ ィーィケ ィャ06ィャ02ィェィー04 09010601ィ ィィ 0904010601ィ, ィェィ 0708ィィィャ0208: public void doget(jspimplicitobjects theobjects) throws ServletException { logger.entry("doget(...)"); JspTestController controller = new JspTestController(); controller.handlerequest(theobjects); logger.exit("doget"); } 0008ィョ ツィェィョ06 07ィィ09ィ ィーィケ 03ィョ08ィェィ 05ィィ080609ィ ィェィィ02 010507 ィコィ 0301060006 ィャ02ィー0601ィ ィー0802ィ ィョ02ィー 09ィョィエ0209ィー0902ィェィェ0401 ィョ09ィィ05ィィィヲ, ィィ ィャ060302ィー 0708ィィ090209ィーィィ ィコ ィー08ィョ01ィェ06 09040709050702ィャ04ィャ 0603ィィィ ィコィ ィャ, 020905ィィ 0708060008ィ ィャィャィィ09ィー ィェ02ィャィェ060006 0603ィィィ 02ィー0907 09 09ィー0806ィコ02 03ィョ08ィェィ 05ィィ080609ィ ィェィィ07. 0106 05ィーィ 04ィ 01ィ ツィ 050200ィコ06 080203ィ 02ィー0907 0909020102ィェィィ02ィャ 09ィコ090604ィェ06ィヲ 00ィョィェィコ02ィィ06ィェィ 05ィケィェ0609ィーィィ ツ02080204 09050201ィョ06ィエィィィヲ ィ 090702ィコィー: public aspect AutoLog { pointcut publicmethods() : execution(public * my.package..*(..)); 16

13pointcut logobjectcalls() : execution(* Logger.*(..)); pointcut loggablecalls() : publicmethods() &&! logobjectcalls(); before() : loggablecalls() { Logger.entry(thisJoinPoint.getSignature().toString()); } after() : loggablecalls() { Logger.exit(thisJoinPoint.getSignature().toString()); } } 030806ィ ィェィ 05ィィ04ィィ08ィョ02ィャ 05ィー06ィー 0708ィィィャ0208 ィィ 070609ィャ06ィー08ィィィャ, ィコィ ィコィィ02 0102ィヲ09ィー09ィィ07 0609ィョィエ0209ィー09050702ィー ィ 090702ィコィー. 030208090602, ィェィ ツィー06 ィェィョ03ィェ06 06ィ 08ィ ィーィィィーィケ 09ィェィィィャィ ィェィィ02 05ィー06 06ィ ィイ07090502ィェィィ02 ィ 090702ィコィーィ. 02ィェ06 07060106ィ ィェ06 06ィ ィイ07090502ィェィィ06 ィコ05ィ 0909ィ ィィ, ィーィ ィコ 0302 ィコィ ィコ ィコ05ィ 0909, 060708020102050702ィー ィーィィ07 Java. 080806ィャ02 ィー060006, ィ 090702ィコィー 090601020803ィィィー ィコ06ィェ09ィー08ィョィコ02ィィィィ pointcut ィィ advice. 030802030102 0909020006, 08ィ 0909ィャ06ィー08ィィィャ, ツィー06 0708020109ィーィ 09050702ィー 0906ィ 06ィヲ 09060201ィィィェ02ィェィィ07 (join point). 0606 ツィコィィ 09060201ィィィェ02ィェィィ07 05ィー06 0601ィェ0604ィェィ ツィェ06 0607080201020502ィェィェ0402 ィー06 ツィコィィ 0708ィィ 0904070605ィェ02ィェィィィィ 0708060008ィ ィャィャ04. 06ィ ィコ, 070601 ィー06 ツィコィ ィャィィ 09060201ィィィェ02ィェィィ07 09 AspectJ 07060108ィ 04ィョィャ0209ィ 06ィー0907: 090404060904 ィャ02ィー06010609, ィー06 ツィコィィ 06ィ 08ィ ィエ02ィェィィ07 ィコ ツ0502ィェィ ィャ ィコ05ィ 0909ィ, ィィ09070605ィェ02ィェィィ02 ィ 0506ィコ0609 06ィ 08ィ ィ 06ィー ツィィィコ0609 ィィ09ィコ0506 ツ02ィェィィィヲ ィィ ィー. 01. 0606 ツィコィィ 09060201ィィィェ02ィェィィ07 ィャ0600ィョィー, 09 09090606 06 ツ02080201ィケ, 090601020803ィ ィーィケ 0108ィョ00ィィ02 ィー06 ツィコィィ 09060201ィィィェ02ィェィィ07. 01ィ 0708ィィィャ0208, 080204ィョ05ィケィーィ ィー 0904040609ィ ィャ02ィー0601ィ ィャ060302ィー 0702080201ィ 09ィ ィーィケ0907 ィコィ ィコィィィャ-ィー06 0108ィョ00ィィィャ ィャ02ィー0601ィ ィャ. 08 09080204 (pointcut) 0709050702ィー0907 070404ィコ060906ィヲ ィコ06ィェ09ィー08ィョィコ02ィィ02ィヲ, ィコ06ィー0608ィ 07 06ィーィ ィィ08ィ 02ィー ィャィェ06030209ィー0906 ィー06 ツ02ィコ 09060201ィィィェ02ィェィィ07 ィェィ 0609ィェ0609ィ ィェィィィィ 0607080201020502ィェィェ060006 ィコ08ィィィー0208ィィ07. 00 0708ィィ09020102ィェィェ06ィャ 09040302 0708ィィィャ020802 0702080904ィヲ 09080204 070601 ィィィャ02ィェ02ィャ publicmethods 0904ィ ィィ08ィ 02ィー ィィ09070605ィェ02ィェィィ07 09090201 public ィャ02ィー06010609 09 07ィ ィコ02ィー02 my.package. 03060106ィ ィェ06 int, ィコ06ィー060804ィヲ 0709050702ィー0907 ィ ィ 04060904ィャ ィーィィ0706ィャ Java, execution 0709050702ィー0907 ィ ィ 04060904ィャ 0908020406ィャ. 02ィェ 0904ィ ィィ08ィ 02ィー ィィ09070605ィェ02ィェィィ07 ィャ02ィー06010609, 090606ィー0902ィー09ィー09ィョ06ィエィィ01 09ィィ00ィェィ ィーィョ0802, 04ィ 01ィ ィェィェ06ィヲ 09 09ィコ06ィ ィコィ 01. 020507 09ィィ00ィェィ ィーィョ08 010607ィョ09ィーィィィャ06 09ィコ0506 ツ02ィェィィ02 09ィィィャ0906050609 03ィ ィ 0506ィェ0609: 09 0708ィィ09020102ィェィェ06ィャ 0708ィィィャ020802 06ィ ィ 09080204ィ 090601020803ィ ィー ィェ0209ィコ0605ィケィコ06 ィーィ ィコィィ01 09ィィィャ0906050609. 00ィー060806ィヲ 09080204 09 ィィィャ02ィェ02ィャ logobjectcalls 0904ィ ィィ08ィ 02ィー 090902 ィィ09070605ィェ02ィェィィ07 ィャ02ィー06010609 09 ィコ05ィ 090902 Logger. 060802ィーィィィヲ 09080204 loggablecalls 06ィ ィイ0201ィィィェ0702ィー 0109ィ 070802010401ィョィエィィ01, ィィ09070605ィケ04ィョ07 ィ ィョ05020904 06070208ィ 02ィィィィ && ィィ!, ツィー06 0604ィェィ ツィ 02ィー 0904ィ 0608 09090201 public ィャ02ィー06010609 ィィ04 my.package 04ィ ィィ09ィコ0506 ツ02ィェィィ02ィャ ィーィ ィコ06090401 09 ィコ05ィ 090902 Logger (080200ィィ09ィー08ィ 02ィィ07 ィャ02ィー06010609 09 ィコ05ィ 090902 Logger 0708ィィ090205ィ ィ 04 09 080204ィョ05ィケィーィ ィー02 ィコ ィ 0209ィコ06ィェ02 ツィェ06ィヲ 0802ィコィョ0809ィィィィ). 0602070208ィケ, 0706090502 ィー060006, ィコィ ィコ 09 ィ 090702ィコィー02 0607080201020502ィェ04 0908020404, ィェィョ03ィェ06 ィィ09070605ィケ040609ィ ィーィケ ィコ06ィェ09ィー08ィョィコ02ィィ06 advice (09060902ィー), ツィー06ィ 04 0904070605ィェィィィーィケ ィー02ィコィョィエィョ06 080200ィィ09ィー08ィ 02ィィ06. 05060902ィー 05ィー06 0008ィ 00ィャ02ィェィー ィコ0601ィ, 0904070605ィェ0706ィエィィィヲ0907 0106, 0706090502 ィィ05ィィ 09 090609ィーィ 0902 ィー06 ツィコィィ 09060201ィィィェ02ィェィィ07. 05060902ィー 060708020102050702ィー0907 010507 pointcut, ツィー06 0708020109ィーィ 09050702ィー 0906ィ 06ィヲ ィェ02 ツィー06 ィェィ 07060106ィ ィィ02 ィョィコィ 04ィ ィェィィ07 060904070605ィェィィィーィケ 05ィー06ィー ィコ0601 0706090502 ィコィ 0301060006 0904-17

13040609ィ ィャ02ィー0601ィ, ィコ06ィー060804ィヲ ィェィ 0106 080200ィィ09ィー08ィィ080609ィ ィーィケ07. 00 ィィィー060002 060905020107 0904040609ィ ィャ02ィー0601ィ (09 0708ィィィャ02ィェ02ィェィィ02ィャ ィ 090702ィコィーィ ) 09 log-00ィ ィヲ0502 090400050701ィィィー 0708ィィィャ0208ィェ06 09050201ィョ06ィエィィィャ 06ィ 08ィ 0406ィャ: entering method: void test.logging.main(string[]) entering method: void test.logging.foo() exiting method: void test.logging.foo() exiting method: void test.logging.main(string[]) 00 ィー06 090802ィャ07 ィコィ ィコ pointcut ィィ advice 0706040906050706ィー 0905ィィ07ィーィケ ィェィ 01ィィィェィ ィャィィィコィョ 0904070605ィェ02ィェィィ07 0708060008ィ ィャィャ04, introduction (09ィェ02010802ィェィィ02) 070802010609ィーィ 09050702ィー ィ 090702ィコィーィ ィャ 090604ィャ0603ィェ0609ィーィケ ィャ0601ィィ00ィィ02ィィ080609ィ ィーィケ 09ィーィ ィーィィ ツ0209ィコィョ06 09ィー08ィョィコィーィョ08ィョ 0708060008ィ ィャィャ04. 0609070605ィケ04ィョ07 09ィェ02010802ィェィィ02, ィ 090702ィコィー04 ィャ0600ィョィー 0106ィ ィ 090507ィーィケ ィェ06090402 ィャ02ィー060104 ィィ 07020802ィャ02ィェィェ0402 09 ィコ05ィ 090904, 06ィ ィイ07090507ィーィケ ィコ05ィ 0909 ィコィ ィコ 0802ィ 05ィィ04ィ 02ィィ06 ィィィェィー02080002ィヲ09ィ, ィョ09ィーィ ィェィ 0905ィィ09ィ ィーィケ ィィ05ィィ 06ィーィャ02ィェ07ィーィケ 070806090208ィコィョ ィィ09ィコ0506 ツ02ィェィィィヲ. 07 AspectJ 09ィョィエ0209ィー09ィョ02ィー 0106080603ィ 07 ィィィェ09ィー08ィョィャ02ィェィーィ 05ィケィェィ 07 07060101020803ィコィ : 0908020104 0708060008ィ ィャィャィィ080609ィ ィェィィ07 Eclipse, NetBeans ィィ Idea ィィィャ0206ィー 08ィ 0903ィィ0802ィェィィ07 010507 ィョ0106ィ ィェ06ィヲ 08ィ ィ 06ィー04 09 AspectJ. AspectJ 050200ィコ06 0708ィィィャ02ィェ07ィーィケ ィィ 09 09ィィ09ィー02ィャィ 01 09ィ 0608ィコィィ ant, maven. 06ィ ィコ0302 ィィィェィー02080209ィェ06 ィャィェ02ィェィィ02 09ィー060806ィェィェィィィコ0609 070404ィコィ 09ィィ0907 06ィ AspectJ: 00 09ィィ090702, 020905ィィ 060106ィーィ ィ 090702ィコィーィェ06-0608ィィ02ィェィーィィ080609ィ ィェィェ060006 0708060008ィ ィャィャィィ080609ィ ィェィィ07, ィェィョ03ィェ06 05ィィ03ィケ ィェィ 09ィー08ィョ00ィ ィーィケ ィェ02ィャィェ060006 ィャィ ィコ0806090609, ィィ 0006ィー060906. 00 Java, ィェィョ0302ィェ 010802000608 08ィィ ツィ 050209, 09060401ィ 06ィエィィィヲ ィェ0609ィョ06 00ィィ08ィャィョ, ィィ ィャ0209070204 ィィ 00060104 07060704ィー06ィコ 04ィ 09ィーィ 09ィィィーィケ 090904 08ィ ィ 06ィーィ ィーィケ. (0302ィー0208 01060809ィィ00) 080203 ィャ0603ィェ06 08ィ 0909ィャィ ィー08ィィ09ィ ィーィケ ィコィ ィコ 09ィ 08ィィィ ィェィー ィャ02ィーィ 0708060008ィ ィャィャィィ080609ィ ィェィィ07 0708ィィ ィコ06ィャ07ィィ050702ィィィィ. 02ィ 04 ツィェ06 ィ 090702ィコィー04 0607ィィ090409ィ 06ィー0907 08ィ 0903ィィ0802ィェィェ04ィャ ィ ィ 04060904ィャ 070404ィコ06ィャ, 070605ィー06ィャィョ ィーィ ィコ0602 080203 ィャ0603ィェ06 08ィ 0909ィャィ ィー08ィィ09ィ ィーィケ ィィ ィコィ ィコ 09ィィィェィーィ ィコ09ィィ ツ0209ィコ0602 08ィ 0903ィィ0802ィェィィ02. 0106 09ィョィエ0209ィー09ィョ06ィー ィィ 0802ィ 05ィィ04ィ 02ィィィィ 080203 06ィ 01060107ィエィィ020907 ィー0605ィケィコ06 0908020109ィー09ィ ィャィィ 070404ィコィ (ィェィ 0708ィィィャ0208, 09 0706ィャ06ィエィケ06 ィ ィェィェ06ィーィ 02ィィィヲ Java 5). 00ィ ィコ080607060109ィーィ ィェ0609ィコィィ 00ィ ィコ080609, ィャィ ィコ080607060109ィーィ ィェ0609ィコィ (06ィー ィ ィェ0005. macros, ィャィェ. ツ. 06ィー macro) 0708060008ィ ィャィャィェ04ィヲ 06ィ ィイ02ィコィー, 0708ィィ 06ィ 08ィ ィ 06ィーィコ02 0608ィ 04090208ィー0409ィ 06ィエィィィヲ090707 09 0706090502010609ィ ィー0205ィケィェ0609ィーィケ 0102ィヲ09ィー09ィィィヲ ィィ05ィィ ィコ06ィャィ ィェ01. 06ィ ィコィィィャ 06ィ 08ィ 0406ィャ, ィャィ ィコ08060904 ィャ0603ィェ06 06ィーィェ0209ィーィィ ィコ ィャ02ィーィ 0708060008ィ ィャィャィィ080609ィ ィェィィ06 ィェィ 09ィーィ 01ィィィィ ィコ06ィャ07ィィ050702ィィィィ. 00ィ ィコ08060904 0706 06ィーィェ060302ィェィィ06 ィコ 070404ィコィョ ィャ0603ィェ06 08ィ 04010205ィィィーィケ ィェィ 09ィェ0203ィェィィ02 ィィ 09ィェィョィー0802ィェィェィィ02. 00ィェ0203ィェィィ02 ィャィ ィコ08060904 ィェ02 09090704ィ ィェ04 09 070404ィコ06ィャ ィィ ィェ02 ィィィャ0206ィー 010609ィーィョ07ィ ィコ ィコ06ィェィー02ィコ09ィーィョ 0708ィィィャ02ィェ02ィェィィ07. 0308ィィィャ0208 09ィェ0203ィェィィ01 ィャィ ィコ0806090609 070802070806020209090608 070404ィコィ C, ィコ06ィー060804ィヲ 0802ィ 05ィィ040609ィ ィェ 09ィェ0203ィェ02ィヲ ィョィーィィ05ィィィー06ィヲ (cpp, The C PreProcessor) ィィ ィェィィィコィ ィコ ィェ02 09090704ィ ィェ 09 070404ィコ06ィャ. 18

1300ィェィョィー0802ィェィェィィ02 ィャィ ィコ08060904, 09 06ィー05ィィ ツィィ02 09ィェ0203ィェィィ01, ィィィャ0206ィー 010609ィーィョ07 ィコ ィコ06ィェィー02ィコ09ィーィョ 0708ィィィャ02ィェ02ィェィィ07, ィィ 070605ィー06ィャィョ 06ィ 05ィ 01ィ 06ィー 000608ィ 040106 ィ 0605ィケ0302ィヲ 090408ィ 04ィィィー0205ィケィェ06ィヲ 0907060906ィ ィェ0609ィーィケ06. 08ィ ィコ 0905020109ィー09ィィ02, 09ィェィョィー0802ィェィェィィ02 ィャィ ィコ08060904 ィー0209ィェ06 09090704ィ ィェ04 09 070404ィコ06ィャ. 0308ィィ 0708ィィィャ02ィェ02ィェィィィィ 06ィェィィ ィィィャ0206ィー 010609ィーィョ07 ィコ 0102080209ィョ 08ィ 04ィ 0608ィ ィィ ィャ0600ィョィー ィィ04ィャ02ィェ07ィーィケ 020006. 01ィ ィィィ 06050202 ィャ06ィエィェ04ィャィィ 09ィェィョィー0802ィェィェィィィャィィ ィャィ ィコ080609ィ ィャィィ 06ィ 05ィ 01ィ 06ィー 070404ィコィィ 0902ィャ02ィヲ09ィー09ィ Lisp (Common Lisp, Scheme). 080404ィコィィ Nemerle ィィ Boo ィーィ ィコ0302 06ィ 05ィ 01ィ 06ィー ィャ06ィエィェ06ィヲ 0909ィー080602ィェィェ06ィヲ 09ィィ09ィー02ィャ06ィヲ ィャィ ィコ0806090609, 09 0706ィャ06ィエィケ06 ィコ06ィー06080401 ィャ0603ィェ06 01ィ 0302 0106ィ ィ 090507ィーィケ ィェ06090402 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ02 ィコ06ィェ09ィー08ィョィコ02ィィィィ 09 070404ィコ. 020507 070404ィコィ Java 09ィョィエ0209ィー09ィョ02ィー 09ィィ09ィー02ィャィ 09ィェィョィー0802ィェィェィィ01 ィャィ ィコ0806090609 Java Syntactic Extender, ィコ06ィー0608ィ 07 ィ ィョ0102ィー 08ィ 0909ィャ06ィー0802ィェィ 09 08ィ 0401020502 3.2. 05ィィ09ィー02ィャ04 ィー08ィ ィェ09000608ィャィ 02ィィィィ 0708060008ィ ィャィャ 060201ィェィィィコィィ ィー08ィ ィェ09000608ィャィ 02ィィィィ 0708060008ィ ィャィャ ィィ09070605ィケ04ィョ06ィー0907 0906 ィャィェ0600ィィ01 09000208ィ 01: 06ィー 0002ィェ0208ィ 02ィィィィ 0708060008ィ ィャィャ, 0607ィーィィィャィィ04ィ 02ィィィィ ィィ 080200ィ ィコィー0608ィィィェ00ィ 0106 06ィ 08ィ ィーィェ06ィヲ 08ィ 0408ィ ィ 06ィーィコィィ ィィ 0002ィェ0208ィ 02ィィィィ 0106ィコィョィャ02ィェィーィ 02ィィィィ. 02ィ ィェィェィ 07 06ィ 05ィ 09ィーィケ 0709050702ィー0907, ィェィ 090208ィェ0602, 09ィ ィャ06ィヲ 09ィーィ 0806ィヲ. 00ィェ0600ィィ02 ィー020608ィィィィ, ィィィェ09ィー08ィョィャ02ィェィー04 ィィ 0708ィィ05060302ィェィィ07 09 05ィー06ィヲ 06ィ 05ィ 09ィーィィ 08ィ 0408ィ ィ 06ィーィ ィェ04 ィ 06050202 30 0502ィー ィェィ 04ィ 01. 00 09090704ィィ ィ 0605ィケ03ィィィャ 09060408ィ 09ィー06ィャ 06ィ 05ィ 09ィーィィ 09 ィェ02ィヲ 09000608ィャィィ080609ィ 05ィィ09ィケ ィェ02ィコ06ィー06080402 09ィーィ ィェ01ィ 08ィー04. 00 07020809ィョ06 06 ツ02080201ィケ 05ィー06 SDF [7] syntax denition formalism, 000608ィャィ ィー 00ィ ィヲ050609 010507 0607ィィ09ィ ィェィィ07 0008ィ ィャィャィ ィーィィィコ ィコ06ィェィー02ィコ09ィーィェ06-090906ィ 0601ィェ0401 070404ィコ0609. 080608ィャィ ィー06ィャ SDF 070605ィケ04ィョ02ィー0907 ィ 0605ィケ03ィィィェ09ィー0906 09ィィ09ィー02ィャ ィー08ィ ィェ09000608ィャィ 02ィィィィ. 080806ィャ02 ィー060006 07080602ィコィー SDF 070802010609ィーィ 09050702ィー 09ィーィ ィェ01ィ 08ィーィェ04ィヲ 0002ィェ0208ィ ィー0608 07ィ 080902080609 ィコ05ィ 0909ィ SGLR (Scanerless Generalized Left-to-right Rightmost derivation parser). SGLR ィィィェ060001ィ ィェィ 040409ィ 06ィー 07ィ 08ィ 05050205ィケィェ04ィャ 07ィ 0809020806ィャ. 06ィー06 08ィ 0903ィィ0802ィェィィ02 LR 07ィ 08090208ィ 010507 07060101020803ィコィィ ィェ020102ィー0208ィャィィィェィィ080609ィ ィェィェ0401 ィィ ィェ020601ィェ0604ィェィ ツィェ0401 0008ィ ィャィャィ ィーィィィコ. 0805000608ィィィーィャィィ ツ0209ィコィ 07 09050603ィェ0609ィーィケ 08ィ 04ィ 0608ィ ィィィャ0202ィー 070608070106ィコ O(n 3 ). 0308ィィ 06ィー09ィョィー09ィー09ィィィィ ィェ020607080201020502ィェィェ0609ィー02ィヲ O(n). 05ィー06ィィィー 04ィ ィャ02ィーィィィーィケ, ツィー06 ィ 0605ィケ03ィィィェ09ィー0906 07ィ 080902080609, ィィ09070605ィケ04ィョ02ィャ0401 09 ィコ06ィャ07ィィ0507ィー0608ィ 01 ィィィャ0206ィー 05ィィィェ02ィヲィェィョ06 09050603ィェ0609ィーィケ, 070605ィー06ィャィョ ィコィョィ ィィ ツ0209ィコィ 07 09050603ィェ0609ィーィケ SGLR 090400050701ィィィー 0705060106. 0106 SGLR 0202ィェ02ィェ ィー02ィャ, ツィー06 ィャ060302ィー 08ィ 09070604ィェィ 09ィ ィーィケ ィェ020102ィー0208ィャィィィェィィ080609ィ ィェィェ0402 ィィ ィェ020601ィェ0604ィェィ ツィェ0402 0008ィ ィャィャィ ィーィィィコィィ. 030006 0906070208ィェィィィコィ ィャィィ 04010209ィケ 0709050706ィー0907 LL(*) 0008ィ ィャィャィ ィーィィィコィィ (ィー0802ィ ィョ06ィー 09070202ィィィ 05ィケィェ0401 ィョィコィ 04ィ ィェィィィヲ 010507 08ィ 0408020302ィェィィ07 ィコ06ィェ0005ィィィコィー0609) ィィ ィ 01ィ 07ィーィィ09ィェ0402 0008ィ ィャィャィ ィーィィィコィィ (06 ツ02ィェィケ 09050603ィェ04). 090605ィケ0306ィヲ ィコ05ィ 0909 08ィ 09070604ィェィ 09ィ 02ィャ0401 070404ィコ0609 0706040906050702ィー 08ィ 09070604ィェィ 09ィ ィーィケ 09050603ィェ0402 070404ィコィィ ィィ 09060401ィ 09ィ ィーィケ ィ 0605ィケ03ィィ02 08ィ 0903ィィ0802ィェィィ07 070404ィコ0609. 04ィ 0909ィャ06ィー08ィィィャ ィェ02ィコ06ィー06080402 09ィィ09ィー02ィャ04 ィー08ィ ィェ09000608ィャィ 02ィィィィ: 6ヲ1 Stratego/XT 05ィー06 070404ィコ ィー08ィ ィェ09000608ィャィ 02ィィィィ Stratego ィィ ィェィ ィ 0608 ィィィェ09ィー08ィョィャ02ィェィー0609 XT 010507 070609ィー080602ィェィィ07 09ィィ09ィー02ィャ ィー08ィ ィェ09000608ィャィ 02ィィィィ. 080404ィコ Stratego 0609ィェ0609ィ ィェ ィェィ 07ィ 08ィ 01ィィ00ィャ02 09ィー08ィ ィー0200ィィ ツ0209ィコ06ィヲ 0702080204ィ 07ィィ09ィィ ィー0208ィャ0609 (strategic term rewriting). 020507 0607ィィ09ィ ィェィィ07 0008ィ ィャィャィ ィーィィィコィィ ィィ09070605ィケ04ィョ02ィー0907 19

1309ィーィ ィェ01ィ 08ィーィェ04ィヲ 000608ィャィ ィー SDF. 01ィ 0609ィェ060902 Stratego/XT 09060401ィ ィェ 000806ィェィー02ィェ01 JavaFront, 08ィ 09070604ィェィ 06ィエィィィヲ 070404ィコ Java. 6ヲ1 ASF+SDF Meta Environment 05ィー06 09080201ィ ィィ ィェィ ィ 0608 ィィィェ09ィー08ィョィャ02ィェィー0609 010507 ィィィェィー0208ィ ィコィーィィ09ィェ060006 ィ ィェィ 05ィィ04ィ ィィ ィー08ィ ィェ09000608ィャィ 02ィィィヲ. ASF+SDF ィコ06ィャィ ィィィェィィ08ィョ02ィー 0607ィィ09ィ ィェィェ04ィヲ 09040302 Syntax Denition Formalism ィィ Algebraic Specication Formalism (ASF), ィ ィーィ ィコ0302 ィェ02ィコ06ィー06080402 0108ィョ00ィィ02 ィー0201ィェ06050600ィィィィ. ASF ィィ09070605ィケ04ィョ02ィー0907 010507 0702080204ィ 07ィィ09ィィ ィー0208ィャ0609. 00 06ィー05ィィ ツィィ02 06ィー Stratego/XT 06ィー05ィィ ツィ 02ィー0907 0608ィィ02ィェィーィ 02ィィ02ィヲ ィェィ 09080201ィョ 0708060008ィ ィャィャィィ080609ィ ィェィィ07 (MetaStudio IDE) ィィ 09ィィ04ィョィ 05ィィ04ィ 02ィィ06 070806020209090609. 6ヲ1 TermWare 05ィー06 09ィィ09ィー02ィャィ 06ィ 08ィ ィ 06ィーィコィィ ィー0208ィャ0609, 07080201ィェィ 04ィェィ ツ02ィェィェィ 07 010507 0909ィー08ィ ィィ09ィ ィェィィ07 09 Java 0708ィィ05060302ィェィィ07. TermWare ィェ02 ィィ09070605ィケ04ィョ02ィー SDF ィィ 090606ィ ィエ02 ィェ02 090601020803ィィィー 090906020006 07ィ 08090208ィ. 05ィ ィャ TermWare 07080201ィェィ 04ィェィ ツ02ィェ ィー0605ィケィコ06 010507 06ィ 08ィ ィ 06ィーィコィィ ィー0208ィャ0609. 01ィ 0609ィェ060902 TermWare ィィ JavaCC 09060401ィ ィェ 000806ィェィー02ィェ01 JavaChecker, 08ィ 09070604ィェィ 06ィエィィィヲ 070404ィコ Java ィィ 0706040906050706ィエィィィヲ 07080609020807ィーィケ ィェ02ィコ06ィー06080402 0902ィャィ ィェィーィィ ツ0209ィコィィ02 0603ィィィ ィコィィ, ィィ09070605ィケ04ィョ07 0708ィ 09ィィ05ィ TermWare. TermWare 07080602ィコィー ィョィコ08ィ ィィィェ09ィコ06ィヲ 00ィィ08ィャ04 0108ィ 01090600ィー [8]. 3.2 05ィィィェィーィ ィコ09ィィ ツ0209ィコィィ02 08ィ 0903ィィ0802ィェィィ07 08ィ ィコ ィョ0302 ィ 040506 09ィコィ 04ィ ィェ06, 09ィィィェィーィ ィコ09ィィ ツ0209ィコ0602 08ィ 0903ィィ0802ィェィィ02 0106ィ ィ 09050702ィー 09 070404ィコ ィェ06090402 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ02 ィコ06ィェ09ィー08ィョィコ02ィィィィ ィィ 090907040409ィ 02ィー 09 ィェィィィャィィ ィコィ ィコィョ06-05ィィィ 06 0902ィャィ ィェィーィィィコィョ. 04ィ 0909ィャ06ィー08ィィィャ 0706010806ィ ィェ0202 0708020109ィーィ 09ィィィー020502ィヲ 05ィー060006 ィコ05ィ 0909ィ. 05ィィ09ィー02ィャィ Java Syntactic Extender Java Syntactic Extender (JSE) 08ィ 0903ィィ0802ィェィィ02 070404ィコィ Java, 0706040906050706ィエ0202 0106ィ ィ 090507ィーィケ 09 070404ィコ ィェ06090402 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ02 ィコ06ィェ09ィー08ィョィコ02ィィィィ. 02ィェ06 0609ィェ0609ィ ィェ06 ィェィ 09ィィ09ィー02ィャ02 ィャィ ィコ0806090609 Dylan 09 ィョ ツ02ィー06ィャ 09070202ィィ00ィィィコィィ 070404ィコィ Java. 04ィ 0903ィィ0802ィェィィ07 ィャ0600ィョィー ィ 04ィーィケ 0802ィ 05ィィ040609ィ ィェ04 ィェ0207060908020109ィー0902ィェィェ06 ィェィ Java ィ 0204 ィコィ ィコィィ0105ィィィ 06 060008ィ ィェィィ ツ02ィェィィィヲ. JSE 05ィー06 070802070806020209090608 070404ィコィ Java, ィコ06ィー060804ィヲ 08ィ 04090608ィ ツィィ09ィ 02ィー ィャィ ィコ08060904. JSE ィィ09070605ィケ04ィョ02ィー 07ィ 08090208 070404ィコィ Java 09 ィャィ ィコ080609ィ ィャィィ, 0609ィェ0609ィ ィェィェ04ィヲ ィェィ 0002ィェ0208ィ ィー060802 07ィ 080902080609 ANTLR. 03ィ 08090208 09ィー0806ィィィー 09070202ィィィ 05ィケィェ0602 010208020906 08ィ 04ィ 0608ィ, 0607ィーィィィャィィ04ィィ080609ィ ィェィェ0602 010507 ィャィ ィコ080607060109ィーィ ィェ060906ィコ, ィコ06ィー06080602 09 JSE ィェィ 040409ィ 02ィー0907 09ィコ020502ィーィェ04ィャ 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィィャ 010208020906ィャ (Skeleton Syntax Tree, SST). 00 01ィ 05ィケィェ02ィヲ0302ィャ ィャィ ィコ08060904 0709ィェ06 ィィ05ィィ ィェ020709ィェ06 ィャィ ィェィィ07ィョ05ィィ08ィョ06ィー ィィィャ02ィェィェ06 SST. 05ィ ィャィィ ィャィ ィコ08060904 0708020109ィーィ 09050706ィー 0906ィ 06ィヲ 06ィ 04 ツィェ0402 ィコ05ィ 090904 Java, ィコ06ィー06080402, ィィィャ0207 010609ィーィョ07 ィコ SST, 08ィ 04090608ィ ツィィ09ィ 06ィー 0904040609 ィャィ ィコ080609ィ 0906 ツィー06 ィョ000601ィェ06. 0306090502 0708ィィィャ02ィェ02ィェィィ07 09090201 ィャィ ィコ0806090609 SST 07080206ィ 08ィ 04ィョ02ィー0907 06ィ 08ィ ィーィェ06 09 ィー02ィコ09ィー ィェィ 070404ィコ02 Java 010507 070609050201ィョ06ィエ02ィヲ 06ィ 08ィ ィ 06ィーィコィィ 09ィーィ ィェ01ィ 08ィーィェ04ィャ ィコ06ィャ07ィィ0507ィー060806ィャ. 20

130102010609ィーィ ィーィコィィ: 6ヲ1 ィェ02 ィョ ツィィィー0409ィ 02ィー0907 06ィ 05ィ 09ィーィケ 09ィィ01ィィィャ0609ィーィィ, 090604ィャ060302ィェ ィコ06ィェ0005ィィィコィー ィィィャ02ィェ; 6ヲ1 SST 070802010609ィーィ 09050702ィー ィャィ 0506 ィコ06ィェィー02ィコ09ィーィェ06ィヲ ィィィェ000608ィャィ 02ィィィィ; 6ヲ1 07080602ィコィー 04ィ ィ 08060302ィェ. 070609050201ィェ0707 09020809ィィ07 0.20 09040305ィ 09 2003 000601ィョ. 020507 ィョ09070203ィェ0609ィーィィ 08ィ 0903ィィ0802ィェィィ07 070404ィコィ ィェィョ03ィェィ 02ィエ02 ィィ 020006 ィィィェ09ィー08ィョィャ02ィェィーィ 05ィケィェィ 07 07060101020803ィコィ. 01ィ ィィィ 06050202 09ィョィエ0209ィー0902ィェィェィ 07060101020803ィコィ 0908020104 0708060008ィ ィャィャィィ080609ィ ィェィィ07, ィコ06ィー060806ィヲ ィョ JSE ィェ02 ィ 040506. 01ィ 090208ィェ0602 05ィー06 ィィ 0709ィィ050609ィケ 0708ィィ ツィィィェ06ィヲ ィェィィ04ィコ060006 ィィィェィー02080209ィ ィコ 05ィー06ィャィョ 07080602ィコィーィョ. 0602ィャ ィェ02 ィャ02ィェ0202 07080602ィコィー 0202ィェ02ィェ ィー02ィャ, ツィー06 0709050702ィー0907 0201ィィィェ09ィー0902ィェィェ06ィヲ 09ィィ09ィー02ィャ06ィヲ 09ィェィョィー0802ィェィェィィ01 ィャィ ィコ0806090609 010507 070404ィコィ Java ィィ 0706040906050702ィー 09 ィィ01 0706ィャ06ィエィケ06 050200ィコ06 0106ィ ィ 090507ィーィケ ィェ06090402 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ02 ィコ06ィェ09ィー08ィョィコ02ィィィィ 09 070404ィコ. 3.3 04ィ 0903ィィ080702ィャ0402 ィコ06ィャ07ィィ0507ィー060804 00 01ィ ィェィェ06ィャ 08ィ 0401020502 0708ィィ09020102ィェ04 ィコ06ィャ07ィィ0507ィー060804, ィコ06ィー06080402 04ィ 0709050706ィー 06 09090602ィヲ 08ィ 0903ィィ080702ィャ0609ィーィィ. 06ィ ィコィィ02 ィコ06ィャ07ィィ0507ィー060804 0706040906050706ィー 09060401ィ 09ィ ィーィケ 08ィ 0903ィィ0802ィェィィ07, ィィ04ィャ02ィェ0706ィエィィ02 07080602020909 ィコ06ィャ07ィィ050702ィィィィ. 0806ィャ07ィィ0507ィー0608 Polyglot Polyglot 08ィ 0903ィィ080702ィャ04ィヲ ィー02ィコ09ィー060904ィヲ 07080206ィ 08ィ 040609ィ ィー0205ィケ Java 0708060008ィ ィャィャ (ィー08ィ ィェ090507ィー0608 ィィ04 Java 09 Java). Polyglot 090609ィー06ィィィー ィィ04 ィ ィ 040609060006 ィコ06ィャ07ィィ0507ィー0608ィ jlc ィィ 020006 08ィ 0903ィィ0802ィェィィィヲ. 0806ィャ07ィィ0507ィー0608 jlc 070605ィェ060202ィェィェ04ィヲ Java 000806ィェィー02ィェ01. 02ィェ 08ィ 04ィ ィィ08ィ 02ィー ィィ09010601ィェ04ィヲ ィコ0601 ィィ 070806090601ィィィー 020006 0902ィャィ ィェィーィィ ツ0209ィコィィィヲ ィ ィェィ 05ィィ04. 0806ィャ07ィィ0507ィー0608 0002ィェ0208ィィ08ィョ02ィー Java ィコ0601. 06ィ ィコィィィャ 06ィ 08ィ 0406ィャ, ィ ィ 04060904ィヲ ィコ06ィャ07ィィ0507ィー0608 ィェ02 070806ィィ04090601ィィィー ィー08ィ ィェ09050702ィィィィ 09 ィ ィ ィヲィー-ィコ0601, 09 06ィー05ィィ ツィィ02 06ィー 09ィーィ ィェ01ィ 08ィーィェ060006 ィコ06ィャ07ィィ0507ィー0608ィ Java. 080404ィコ06090402 08ィ 0903ィィ0802ィェィィ07 0802ィ 05ィィ04ィョ06ィー0907 070609020801 ィ ィ 040609060006 ィコ06ィャ07ィィ0507ィー0608ィ 07ィョィー02ィャ 08ィ 0903ィィ0802ィェィィ07 ィコ06ィェィコ0802ィーィェ060006 ィィ ィ ィ 09ィー08ィ ィコィーィェ060006 09ィィィェィーィ ィコ09ィィ09ィ, 09060401ィ ィェィィ07 ィェ06090401 ィーィィ070609 ィィ 0607080201020502ィェィィ07 ィェ06090401 ィー08ィ ィェ09000608ィャィ 02ィィィヲ ィコ0601ィ. 00 080204ィョ05ィケィーィ ィー02 070605ィョ ツィ 02ィー0907 ィ ィ 09ィー08ィ ィコィーィェ0602 09ィィィェィーィ ィコ09ィィ ツ0209ィコ0602 010208020906, ィコ06ィー06080602 07080206ィ 08ィ 04ィョ02ィー0907 09 ィコ0601 ィェィ Java ィィ ィコ06ィャ07ィィ05ィィ08ィョ02ィー0907 09ィーィ ィェ01ィ 08ィーィェ04ィャ ィコ06ィャ07ィィ0507ィー060806ィャ javac. 0808ィ 00ィャ02ィェィー 0102080209ィ 070404ィコ0609, 0609ィェ0609ィ ィェィェ0401 ィェィ Polyglot: 21

1300 Polyglot ィィ09070605ィケ04ィョ02ィー0907 Polyglot Parser Generator (PPG) 0906ィ 09ィー0902ィェィェ04ィヲ 0002ィェ0208ィ ィー0608 07ィ 080902080609 ィェィ 0609ィェ060902 JavaCUP (09ィャ [2]). 00 PPG 010507 07060101020803ィコィィ 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ01 08ィ 0903ィィ0802ィェィィィヲ ィ 0405ィィ 0106ィ ィ 090502ィェ04 090604ィャ0603ィェ0609ィーィィ ィャ0601ィィ00ィィィコィ 02ィィィィ 0008ィ ィャィャィ ィーィィィコィィ. 0308ィィィャ0208 070208020607080201020502ィェィィ07 0008ィ ィャィャィ ィーィィィコィィ 070404ィコィ Java ィェィ PPG: include "polyglot/parse/java12.cup"... drop { relational_expression ::= relational_expression:a INSTANCEOF reference_type:b; } extend relational_expression ::= relational_expression:a INSTANCEOF type:b {: RESULT = parser.nf.instanceof(parser.pos(a), a, b); :} ; 0308ィィィャ0208 ィョィ ィィ08ィ 02ィー 060008ィ ィェィィ ツ02ィェィィ02 070404ィコィ Java ィェィ ィィ09070605ィケ040609ィ ィェィィ02 ィー0605ィケィコ06 0909040506 ツィェ0401 ィーィィ070609 09 ィコィ ツ0209ィー0902 ィ 0800ィョィャ02ィェィーィ 06070208ィ ィー0608ィ instanceof. 0602070208ィケ 090604ィャ0603ィェ06 0708ィィィャ02ィェ02ィェィィ02 ィーィ ィコ0302 ィィ 0708ィィィャィィィーィィ09ィェ0401 ィーィィ070609. 0308ィィィャ0208 090407ィー ィィ04 08ィ 0903ィィ0802ィェィィ07 0708ィィィャィィィーィィ0904 ィコィ ィコ 06ィ ィイ02ィコィー04 (primitives as objects, PAO) 070404ィコィ Java 1.4. Polyglot 0708ィィィャ0208 ィェィ ィィィ 06050202 070607ィョ050708ィェ060006 070601010601ィ ィコ 09060401ィ ィェィィ06 08ィ 0903ィィ0802ィェィィィヲ 070404ィコィ : 0909020102ィェィィ02 ィコ06ィェ09ィー08ィョィコ02ィィィヲ ィェ0609060006 070404ィコィ ィコ ィコ06ィェ09ィー08ィョィコ02ィィ07ィャ ィェィ ィ ィ 04060906ィャ 070404ィコ02. 0106, 09 06ィー05ィィ ツィィ02 06ィー 0108ィョ00ィィ01 07060106ィ ィェ0401 07080602ィコィー0609, Polyglot 09ィャ0600 0906ィ 08ィ ィーィケ 0906ィコ08ィョ00 0902ィ 07 ィ 0605ィケ030602 090606ィ ィエ0209ィー0906 070605ィケ040609ィ ィー020502ィヲ, ツィー06 0708ィィ09020506 ィコ 070607090502ィェィィ06 ィャィェ0600ィィ01 08ィ 0903ィィ0802ィェィィィヲ 070404ィコィ Java ィェィ 020006 0609ィェ060902. 00 070609050201ィェ0202 090802ィャ07 ィ ィコィーィィ09ィェ0609ィーィケ 07080602ィコィーィ ィョ07ィ 05ィ, ィィ ィェ02ィコ06ィー06080402 07080602ィコィー04 (ィェィ 0708ィィィャ0208 Soot, Aspect Bench Compiller(abc)) 0702080201060107ィー ィェィ ィィ09070605ィケ040609ィ ィェィィ02 ィ 06050202 070208090702ィコィーィィ09ィェ060006 07080602ィコィーィ JastAdd. 05ィィ09ィー02ィャィ JastAdd. 0806ィャ07ィィ0507ィー0608 JastAddJ 08ィ ィコィーィィ ツ0209ィコィィ JastAdd 05ィー06 09070202ィィィ 05ィケィェ0602 08ィ 0903ィィ0802ィェィィ02 070404ィコィ AspectJ 010507 09060401ィ ィェィィ07 ィー08ィ ィェ090507ィー06080609 ィィ 0902ィャィ ィェィーィィ ツ0209ィコィィ01 ィ ィェィ 05ィィ04ィ ィー06080609. JastAdd 0706040906050702ィー 09010205ィ ィーィケ ィィ04 06ィ 04 ツィェ060006 09ィィィェィーィ ィコ09ィィ ツ0209ィコ060006 0102080209ィ (AST) ィ ィー08ィィィ ィョィーィェィョ06 0008ィ ィャィャィ ィーィィィコィョ (ィ ィー06 ツィェ0202, Rewritable Circular Reference Attributed Grammar 02ィィィコ05ィィ ツ0209ィコィョ06 (010607ィョ09ィーィィィャ04 02ィィィコ05ィィ ツ0209ィコィィ02 09090405ィコィィ), 0909040506 ツィェィョ06, ィ ィー08ィィィ ィョィーィェィョ06 0008ィ ィャィャィ ィーィィィコィョ 09 090604ィャ0603ィェ0609ィーィケ06 0702080204ィ 07ィィ09ィィ ィョ04050609, ReCRAG) 0908020109ィー09ィ ィャィィ 080203. JastAdd 0106ィ ィ 09050702ィー ィ ィー08ィィィ ィョィー04, ィィ01 08ィ 09 ツ02ィー ィィ 08ィ 0405ィィ ツィェ0402 0102ィヲ09ィー09ィィ07 ィェィ 01 ィ ィー08ィィィ ィョィーィェ06ィヲ 0008ィ ィャィャィ ィーィィィコ06ィヲ 070807ィャ06 09 ィコ05ィ 090904 AST. 00 080204ィョ05ィケィーィ ィー02 070605ィョ ツィ 06ィー0907 08ィ 0903ィィ0802ィェィェ0402 ィコ05ィ 090904 AST 09 ィ ィー08ィィィ ィョィーィ ィャィィ. 04ィ 09 ツ02ィー ィ ィー08ィィィ ィョィー0609 ィャ0603ィェ06 07ィィ09ィ ィーィケ ィコィ ィコ 09 0102ィコ05ィ 08ィ ィーィィ09ィェ06ィャ (0802ィコ06ィャ02ィェ01ィョ02ィー0907 010507 08ィ 0903ィィ080702ィャ0609ィーィィ), ィーィ ィコ ィィ 09 ィィィャ070208ィ - 22

13ィーィィ09ィェ06ィャ 09ィーィィ0502. JastAdd ィェ02 090601020803ィィィー 0002ィェ0208ィ ィー0608ィ 07ィ 08090208ィ ィィ ィー0802ィ ィョ02ィー 010507 08ィ ィ 06ィー04 ィィ09070605ィケ040609ィ ィェィィ07 0506ィ 060006 09ィェ0203ィェ020006 07ィ 08090208ィ ィィ AST. JastAddJ 08ィ 0903ィィ080702ィャ04ィヲ ィコ06ィャ07ィィ0507ィー0608 Java ィェィ 0609ィェ060902 JastAdd. 0806ィャ07ィィ0507ィー0608 0708ィィィャ02 ツィ ィー020502ィェ ィー02ィャ, ツィー06 0706 ツィーィィ 020205ィィィコ06ィャ 070605ィ 00ィ 02ィー0907 ィェィ ィ ィー08ィィィ ィョィーィェィョ06 0008ィ ィャィャィ ィーィィィコィョ. 07 JastAddJ 05ィーィ 0704 0902ィャィ ィェィーィィ- ツ0209ィコ060006 ィ ィェィ 05ィィ04ィ, 0002ィェ0208ィ 02ィィィィ 070806ィャ0203ィョィー06 ツィェ060006 0708020109ィーィ 090502ィェィィ07, 0607ィーィィィャィィ04ィ 02ィィィィ ィィ 0002ィェ0208ィ 02ィィィィ ィコ0601ィ 0904070605ィェ0702ィー ィ ィー08ィィィ ィョィーィェィ 07 0008ィ ィャィャィ ィーィィィコィ, 070802010609ィーィ 09050702ィャィ 07 09ィィ09ィー02ィャ06ィヲ JastAdd. 00 ィィィー060002 JastAddJ 090609ィー06ィィィー 0706 ツィーィィ 020205ィィィコ06ィャ ィィ04 0607080201020502ィェィィ07 ィィ 08ィ 09 ツ02ィー0609 ィ ィー08ィィィ ィョィー0609 0008ィ ィャィャィ ィーィィィコィィ. JastAddJ 09 ィコィ ツ0209ィー0902 0002ィェ0208ィ ィー0608ィ 07ィ 080902080609 ィィ09070605ィケ04ィョ02ィー Beaver ィャィ 0506ィィ04090209ィーィェ04ィヲ 0002ィェ0208ィ ィー0608 07ィ 080902080609, ィコ06ィー060804ィヲ, ィコィ ィコ ィィ LPG, 05ィャィョ05ィィ08ィョ02ィー ィャィェ06030209ィー0902ィェィェ0602 ィェィ 090502010609ィ ィェィィ02 07080609ィー06 07ィョィー02ィャ 09ィコ0506 ツ02ィェィィ07 09090201 00ィ ィヲ050609 09 080204ィョ05ィケィーィィ08ィョ06ィエィョ06 0008ィ ィャィャィ ィーィィィコィョ. 0308ィィィャ0208 ィィ09070605ィケ040609ィ ィェィィ07 ィ ィー08ィィィ ィョィー0609 010507 0904090601ィ 07020802000608ィャィ ィーィィ080609ィ ィェィェ060006 ィコ0601ィ (prettyprinting): // 010507 09090201 090408ィ 0302ィェィィィヲ 060708020102050702ィャ ィ ィー08ィィィ ィョィー pp() syn String Expression.pp() // 09ィィィー0208ィ 0504 090409060107ィー0907 07080609ィー06 ィコィ ィコ 04ィェィ ツ02ィェィィ07 eq Literal.pp() = value(); // 010507 06ィー06ィ 08ィ 0302ィェィィ07 ィ ィィィェィ 08ィェ0401 090408ィ 0302ィェィィィヲ, 000608ィャィィ08ィョ02ィャ 09ィー0806ィコィョ: eq BinaryExpression.pp() = left().pp() + op() + right().pp(); // 060708020102050702ィャ ィ ィー08ィィィ ィョィー op() 010507 ィ ィィィェィ 08ィェ0401 090408ィ 0302ィェィィィヲ: syn BinaryExpression.op(); eq AddExpression.op() = "+"; eq SubExpression.op() = "-"; 03080602ィコィー JastAddJ 090609ィー06ィィィー ィィ04: 1. Java1.4 frontend 08ィ 04ィ ィィ08ィ 02ィー Java 1.4 ィコ0601, 09060401ィ 02ィー AST ィィ 070806ィィ04090601ィィィー 09ィーィ ィーィィィコ06-0902ィャィ ィェィーィィ ツ0209ィコィィィヲ ィ ィェィ 05ィィ04 (090606ィー0902ィー09ィー09ィィ02 ィーィィ070609 ィィ ィー.01.). 2. Java1.4 backend 08ィ 0903ィィ0802ィェィィ02 Java1.4 frontend. 0102ィェ0208ィィ08ィョ02ィー 09ィーィ ィェ01ィ 08ィーィェ04ィヲ ィ ィ ィヲィー-ィコ0601 010507 JVM. 3. Java1.5 frontend 08ィ 0903ィィ0802ィェィィ02 Java1.4 frontend. 0206ィ ィ 09050702ィー 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ02 08ィ 0903ィィ0802ィェィィ07 Java 1.5 (generics, annotations, ィィ 0708.). 4. Java1.5 backend 08ィ 0903ィィ0802ィェィィ02 Java1.5 frontend ィィ Java1.4 backend. 0102ィェ0208ィィ08ィョ02ィー ィ ィ ィヲィー-ィコ0601. 0806ィャ07ィィ0507ィー0608 JastAddJ 070806010601ィィィー ィ 0605ィケ03ィィィェ09ィー0906 ィー0209ィー0609 ィー0209ィー0609060006 ィコ06ィャ070502ィコィーィ Jacks, ィ 0605ィケ0302 ツ02ィャ 0108ィョ00ィィ02 ィコ06ィャ07ィィ0507ィー060804, 09ィコ0506 ツィ 07 javac, ejc, polyglot jlc, jikes. 0308ィィ 05ィー06ィャ JastAddJ ィャ02010502ィェィェ0202 23

13javac 0909020006 0708ィィィャ0208ィェ06 09 3 08ィ 04ィ ( ツィー06 ィェ020705060106, ィー.ィコ. JastAddJ 070802010609ィーィ 09050702ィー ィ 0605ィケ0302 00ィョィェィコ02ィィィヲ) ィィ ィャ02ィェィケ0302 09090201 0706 06ィ ィイ02ィャィョ ィィ09010601ィェ060006 ィコ0601ィ [19]. 08ィー08ィィィ ィョィーィェィ 07 0008ィ ィャィャィ ィーィィィコィ ィィ 0102ィコ05ィ 08ィ ィーィィ09ィェ04ィヲ 09ィーィィ05ィケ 08ィ 09 ツ02ィーィ ィ ィー08ィィィ ィョィー0609 0907060906ィ 09ィー09ィョ06ィー 050200ィコ06ィヲ 08ィ 0903ィィ080702ィャ0609ィーィィ ィコ06ィャ07ィィ0507ィー0608ィ ィィ 06ィ ィョ0905ィ 0905ィィ09ィ 06ィー 020006 ィャィ 0504ィヲ 08ィ 04ィャ0208. 0106 ィコ06ィャ07ィィ0507ィー0608 JastAddJ, ィコィ ィコ ィィ Polyglot, ィェ02 070802010609ィーィ 09050702ィー 09ィェ0203ィェィィ01 ィィィェィー02080002ィヲ090609 08ィ 0903ィィ0802ィェィィ07. 06ィ ィコィィィャ 06ィ 08ィ 0406ィャ, 010507 09060401ィ ィェィィ07 08ィ 0903ィィ0802ィェィィィヲ 090902 08ィ 09ィェ06 ィェ0206ィ 010601ィィィャ06 08ィ 04ィ ィィ08ィ ィーィケ0907 0906 090902ィャ 09ィェィョィー0802ィェィェ02ィャ ィョ09ィー0806ィヲ09ィー0902 ィコ06ィャ07ィィ0507ィー0608ィ. 00 06ィー05ィィ ツィィ02 06ィー Polyglot, 090606ィ ィエ0209ィー0906 JastAdd 0106090605ィケィェ06 ィャィ 0506, ィィ ィコ0605ィィ ツ0209ィー0906 08ィ 0903ィィ0802ィェィィィヲ ィェ02 ィーィ ィコ 090205ィィィコ06. 010209ィャ06ィー0807 ィェィ 05ィー06, JastAdd ィョ09070203ィェ06 ィィ09070605ィケ04ィョ02ィー0907 09 ィェ02ィコ06ィー06080401 07080602ィコィーィ 01 09 ィコィ ツ0209ィー0902 05ィコ09070208ィィィャ02ィェィーィ 05ィケィェ06ィヲ 04ィ ィャ02ィェ04 Polyglot. 05ィー06ィィィー 04ィ ィャ02ィーィィィーィケ, ツィー06 JastAdd ィ ィ 09060506ィーィェ06 ィェ02 090609ィャ0209ィーィィィャ 09 Polyglot. 07 ィェィィ01 08ィ 04ィェ0402 0708ィィィェ02ィィ0704 ィィ 0907060906ィ 04 08ィ ィ 06ィー04, ィェ06 020205ィケ 0601ィェィ 09060401ィ ィェィィ02 08ィ 0903ィィ080702ィャ0401 ィコ06ィャ07ィィ0507ィー06080609. 3.4 04ィ 0903ィィ080702ィャ0402 070404ィコィィ 0708060008ィ ィャィャィィ080609ィ ィェィィ07 00 01ィ ィェィェ06ィャ 08ィ 0401020502 0708ィィ09020102ィェ04 08ィ 0903ィィ080702ィャ0402 070404ィコィィ 0708060008ィ ィャィャィィ080609ィ ィェィィ07. 02ィー 08ィ 0903ィィ080702ィャ0401 ィコ06ィャ07ィィ0507ィー06080609 08ィ 0903ィィ080702ィャ0402 070404ィコィィ 06ィー05ィィ ツィ 06ィー0907 090604ィャ0603ィェ0609ィーィケ06 ィィ04ィャ02ィェ02ィェィィ07 09ィィィェィーィ ィコ09ィィ09ィ ィェィ ィョ080609ィェ02 070404ィコィ 09 0706ィャ06ィエィケ06 09070202ィィィ 05ィケィェ0401 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ01 ィコ06ィェ09ィー08ィョィコ02ィィィヲ. 0502ィャ02ィヲ09ィー0906 070404ィコ0609 09ィィ0907 09ィィ0907 (Lisp, LISt Processing language 070404ィコ 06ィ 08ィ ィ 06ィーィコィィ 0907ィィ09ィコ0609) 0902ィャ02ィヲ09ィー0906 070404ィコ0609 0708060008ィ ィャィャィィ080609ィ ィェィィ07, 0708060008ィ ィャィャ04 ィィ 01ィ ィェィェ0402 09 ィコ06ィー06080401 0708020109ィーィ 09050706ィー0907 09ィィ09ィー02ィャィ ィャィィ 05ィィィェ02ィヲィェ0401 0907ィィ09ィコ0609 09ィィィャ0906050609. 09ィィ0907 0709050702ィー0907 09ィー060804ィャ 09 ィィ09ィー0608ィィィィ (0706090502 080608ィー08ィ ィェィ ) 09040906ィコ06ィョ080609ィェ020904ィャ 070404ィコ06ィャ 0708060008ィ ィャィャィィ080609ィ ィェィィ07, ィコ06ィー060804ィヲ ィィ09070605ィケ04ィョ02ィー0907 0706 0902ィヲ 0102ィェィケ. 05060401ィ ィー0205ィケ 070404ィコィ, 020306ィェ 00ィ ィコィコィ 08ィーィィ, 04ィ ィェィィィャィ 050907 ィィ09090502010609ィ ィェィィ07ィャィィ 09 06ィ 05ィ 09ィーィィ ィィ09ィコィョ0909ィー0902ィェィェ060006 ィィィェィー02050502ィコィーィ, ィィ 09060401ィ ィェィェ04ィヲ ィィィャ 070404ィコ 0706 09ィィ06 070608ィョ 0709050702ィー0907 0601ィェィィィャ ィィ04 0609ィェ0609ィェ0401 0908020109ィー09 ィャ06010205ィィ080609ィ ィェィィ07 08ィ 0405ィィ ツィェ0401 ィ 090702ィコィー0609 0606. 0608ィ 01ィィ02ィィ06ィェィェ04ィヲ 09ィィ0907 ィィィャ0202ィー 01ィィィェィ ィャィィ ツ0209ィコィョ06 09ィィ09ィー02ィャィョ ィーィィ070609. 080404ィコ 0709050702ィー0907 00ィョィェィコ02ィィ06ィェィ 05ィケィェ04ィャ, ィェ06 ィャィェ0600ィィ02 07060401ィェィィ02 09020809ィィィィ 06ィ 05ィ 01ィ 06ィー ィーィ ィコ0302 ツ0208ィーィ ィャィィ ィィィャ070208ィ ィーィィ09ィェ0609ィーィィ. 08 ィー06ィャィョ 0302, ィィィャ0207 070605ィェ060202ィェィェ0402 0908020109ィー09ィ 09ィィィャ090605ィケィェ06ィヲ 06ィ 08ィ ィ 06ィーィコィィ, 09ィーィ ィェ0609ィィィー0907 090604ィャ0603ィェ04ィャ 0802ィ 05ィィ040609ィ ィーィケ 06ィ ィイ02ィコィーィェ060608ィィ02ィェィーィィ080609ィ ィェィェ0609ィーィケ. 0308ィィィャ020806ィャ ィーィ ィコ06ィヲ 0802ィ 05ィィ04ィ 02ィィィィ 0709050702ィー0907 0705ィ ィー000608ィャィ CLOS Common Lisp Object System. 080404ィコ 09ィィ0907, ィェィ 080701ィョ 09 070404ィコ06ィャ Ada, 070806030205 07080602020909 00ィョィェ01ィ ィャ02ィェィーィ 05ィケィェ06ィヲ 09ィーィ ィェ01ィ 08ィーィィ04ィ 02ィィィィ 010507 ィィ09070605ィケ040609ィ ィェィィ07 09 090602ィェィェ06ィャ 01020502 ィィ 070806ィャ04030502ィェィェ0609ィーィィ, 09 080204ィョ05ィケィーィ ィー02 ツ020006 07060709ィィ050907 09ィーィ ィェ01ィ 08ィー Common Lisp. 030006 0802ィ 05ィィ04ィ 02ィィィィ 09ィョィエ0209ィー09ィョ06ィー 010507 ィ 0605ィケ03ィィィェ09ィー09ィ 0705ィ ィー000608ィャ. 24

1309ィィ0907 ィィィャ0202ィー 030209ィーィコィィィヲ ィ ィ 04060904ィヲ 09ィィィェィーィ ィコ09ィィ09 09ィコ06ィ 06 ツィェ0401 090408ィ 0302ィェィィィヲ. 0209ィーィ 05ィケィェ0602 08ィ 0903ィィ080702ィャ06 00ィョィェィコ02ィィ07ィャィィ, ィャィ ィコ080609ィ ィャィィ, 0507ィャィ 01ィ -ィィ09 ツィィ090502ィェィィ02ィャ ィィ ィコ06ィェ02020702ィィ02ィヲ ィコ0601ィ 0708060008ィ ィャィャ04 ィコィ ィコ 01ィ ィェィェ0401. 0308ィィィャ0208 0607080201020502ィェィィ07 ィャィ ィコ080609ィ ィェィ Lisp: (defmacro nif (expr pos zero neg) `(case (truncate (signum,expr)) (1,pos) (0,zero) (-1,neg))) 030905ィィ ィャ04 01ィ 050202 09 0708060008ィ ィャィャ02 04ィ 07ィィ0302ィャ (nif x p z n) ィー06 ィャィ ィコ080609 nif 08ィ 04090208ィェ02ィー0907 09: (case (truncate (signum x)) (1 'p) (0 'z) (-1 'n)) 06.02. 09 04ィ 09ィィ09ィィィャ0609ィーィィ 06ィー 04ィェィ ィコィ 090408ィ 0302ィェィィ07 x ィ ィョ01ィョィー 0904070605ィェ07ィー0907 090408ィ 0302ィェィィ07 p, z ィィ05ィィ n. 080404ィコ Boo Boo 06ィ ィイ02ィコィーィェ06 0608ィィ02ィェィーィィ080609ィ ィェィェ04ィヲ 09ィーィ ィーィィ ツ0209ィコィィ ィーィィ07ィィ04ィィ08ィョ02ィャ04ィヲ 070404ィコ 010507 0705ィ ィー000608ィャ04.NET. 07 070404ィコィ Boo 09010603ィィィヲ 09 Python 09ィィィェィーィ ィコ09ィィ09. 06ィ ィコ0302 Boo 09070202ィィィ 05ィケィェ06 0608ィィ02ィェィーィィ080609ィ ィェ ィェィ 08ィ 0903ィィ080702ィャ0609ィーィケ 070404ィコィ ィィ ィコ06ィャ07ィィ0507ィー0608ィ. 08ィ ィコ ィィ 09 Nemerle, 070404ィコ Boo 0706040906050702ィー 0607080201020507ィーィケ 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ02 ィャィ ィコ08060904, 0802ィコィョ0809ィィ09ィェ06 08ィ 04090608ィ ツィィ09ィ 06ィエィィ020907 09 ィ ィ 0406090402 ィコ06ィェ09ィー08ィョィコ02ィィィィ 070404ィコィ 07ィョィー02ィャ ィャィ ィェィィ07ィョ050702ィィィヲ 09 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィィャ 010208020906ィャ. 00ィ ィコ08060904 ィャ0600ィョィー ィ 04ィーィケ 04ィ 07ィィ09ィ ィェ04 07080609ィー06 09 09ィィ0102 06ィ ィイ02ィコィーィ 070404ィコィ, ィコィ ィコ 09 Java Syntactic Extender, ィィ05ィィ 09 0706ィャ06ィエィケ06 09070202ィィィ 05ィケィェ0401 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ01 ィコ06ィェ09ィー08ィョィコ02ィィィヲ, ィコィ ィコ 09 Nemerle. 08060001ィ 0708ィィ 09ィィィェィーィ ィコ09ィィ ツ0209ィコ06ィャ 08ィ 04ィ 060802 0909ィー0802 ツィ 02ィー0907 ィェ02ィィ04090209ィーィェィ 07 09ィィィェィーィ ィコ09ィィ ツ0209ィコィ 07 09ィー08ィョィコィーィョ08ィ, 07ィ 08090208 Boo 0708060902080702ィー, 0709050702ィー0907 05ィィ 06ィェィ ィャィ ィコ08060906ィャ, ィィ 020905ィィ 0709050702ィー0907, 0904040409ィ 02ィー 090606ィー0902ィー09ィー09ィョ06ィエィィ02 ィャ02ィー060104 ィョ ィコ05ィ 0909ィ ィャィ ィコ080609ィ. 04ィ 0909ィャ06ィー08ィィィャ 0708ィィィャ0208 0607080201020502ィェィィ07 ィィ ィィ09070605ィケ040609ィ ィェィィ07 ィャィ ィコ080609ィ ィェィ 070404ィコ02 Boo. 00 ィコィ ツ0209ィー0902 0708ィィィャ0208ィ 090604ィケィャ02ィャ ィャィ ィコ080609 with (ィィ04 070404ィコィ VisualBasic), ィコ06ィー060804ィヲ 0706040906050702ィー 07ィィ09ィ ィーィケ 09ィャ0209ィー06 ィーィ ィコ060006 0105ィィィェィェ060006 ィコ0601ィ : fooinstancewithreallylongname.f1 = 100 fooinstancewithreallylongname.f2 = "abc" fooinstancewithreallylongname.dosomething() 25

13ィーィ ィコ06ィヲ ィコ06ィャ07ィ ィコィーィェ04ィヲ ィコ0601: with fooinstancewithreallylongname:.f1 = 100.f2 = "abc".dosomething() 0207080201020502ィェィィ02 ィャィ ィコ080609ィ with ィェィ Boo macro with(target, body as Expression*): for expression in body: match expression: case BinaryExpression(Left: mre = MemberReferenceExpression(Target: OmittedExpression())): mre.target = target yield 080404ィコ Boo, ィコィ ィコ ィィ Nemerle ィィィャ0202ィー 060008ィ ィェィィ ツ02ィェィェィョ06 ィィィェィー020008ィ 02ィィ06 0906 09080201ィ ィャィィ 0708060008ィ ィャィャィィ080609ィ ィェィィ07 MS Visual Studio 2008, SharpDevelop ィィ MonoDevelop. 080404ィコ Nemerle Nemerle 05ィー06 00ィィィ 08ィィ01ィェ04ィヲ 070404ィコ 09040906ィコ060006 ィョ080609ィェ07 010507 0705ィ ィー000608ィャ04.NET 0906 09ィーィ ィーィィ ツ0209ィコ06ィヲ ィーィィ07ィィ04ィ 02ィィ02ィヲ, 060800ィ ィェィィ ツィェ06 0906 ツ02ィーィ 06ィエィィィヲ 09 0902ィ 02 090604ィャ0603ィェ0609ィーィィ 00ィョィェィコ02ィィ06ィェィ 05ィケィェ060006 ィィ 06ィ ィイ02ィコィーィェ06-0608ィィ02ィェィーィィ080609ィ ィェィェ060006 0708060008ィ ィャィャィィ080609ィ ィェィィ07. 05ィィィェィーィ ィコ09ィィ ツ0209ィコィィ 0706010603 ィェィ 070404ィコィィ C#, ML, OCaml, Haskell. 0105ィ 09ィェィ 07 060906ィ 02ィェィェ0609ィーィケ 05ィー06 06 ツ02ィェィケ ィャ06ィエィェィ 07 09ィィ09ィー02ィャィ ィャ02ィーィ 0708060008ィ ィャィャィィ080609ィ ィェィィ07. 040701 070404ィコ06090401 0908020109ィー09 ィコィ 0801ィィィェィ 05ィケィェ04ィャ 06ィ 08ィ 0406ィャ 06ィー05ィィ ツィ 02ィー Nemerle 06ィー C#, Java, C++. 06ィー06 ィャィ ィコ08060904 ィィ 04ィ ィャ04ィコィ ィェィィ07, 0708ィィ ツ04ィャ 09 09ィィ0102, ィ 06050202 01ィ 08ィ ィコィー0208ィェ06ィャ 010507 Lisp ィィ05ィィ 0108ィョ00ィィ01 00ィョィェィコ02ィィ06ィェィ 05ィケィェ0401 070404ィコ0609, ィェ02030205ィィ 010507 05++. 05ィィ09ィー02ィャィ ィャィ ィコ0806090609 0706040906050702ィー 0607ィィ090409ィ ィーィケ ィェィ Nemerle ィェ06090402 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ02 ィコ06ィェ09ィー08ィョィコ02ィィィィ ィィ ィィ09070605ィケ040609ィ ィーィケ ィィ01 ィェィ 08ィ 09ィェ02 0906 0909ィー080602ィェィェ04ィャィィ. 00 0102ィヲ09ィー09ィィィー0205ィケィェ0609ィーィィ, ィ 0605ィケ03ィィィェ09ィー0906 01ィィ0802ィコィーィィ09ィェ0401 ィョ0708ィ 09050706ィエィィ01 ィコ06ィェ09ィー08ィョィコ02ィィィヲ, 09 ィー06ィャ ツィィ090502 06070208ィ ィー060804 if, when, 02ィィィコ0504 09090201 09ィィ010609 0802ィ 05ィィ040609ィ ィェ04 09 09ィィ0102 ィャィ ィコ0806090609 09ィーィ ィェ01ィ 08ィーィェ06ィヲ ィ ィィィ 05ィィ06ィー02ィコィィ Nemerle. 00ィ ィコ08060904 0708020109ィーィ 09050706ィー 0906ィ 06ィヲ 0607ィィ09ィ ィェィィ02 09ィィィェィーィ ィコ09ィィ09ィ ィィ 0102ィヲ09ィー09ィィィヲ. 00 0102ィヲ09ィー09ィィ0701 090604ィャ0603ィェ06 0708ィィィャ02ィェ02ィェィィ02 ィコ09ィ 04ィィ-02ィィィーィィ080609ィ ィェィィ07 (07080206ィ 08ィ 040609ィ ィェィィ02 ィコ0601ィ 09 02ィィィーィ ィー02 09 AST 010507 0106ィ ィ 090502ィェィィ07 09 09ィィィェィーィ ィコ09ィィ ツ0209ィコ0602 010208020906). 00ィ ィコ08060904 ィコ06ィャ07ィィ05ィィ08ィョ06ィー0907 0708020109ィ 08ィィィー0205ィケィェ06 09 ィ ィィィ 05ィィ06ィー02ィコィィ.NET, ィィ 09 01ィ 05ィケィェ02ィヲ0302ィャ ィィ09070605ィケ04ィョ06ィー0907 0708ィィ 08ィ 04ィ 060802 ィィ09010601ィェ060006 ィコ0601ィ 09 ィャィ ィコ080609ィ ィャィィ. 06ィ ィコ0302 ィコィ ィコ ィィ 09 Boo, ィャィ ィコ08060904 26

130708ィィィャ02ィェ0706ィー0907 ィー0605ィケィコ06 ィェィ 07060101060107ィエィィ01, ィェ06 ィェ02ィィ04090209ィーィェ0401 ィ ィ 04060906ィャィョ 07ィ 08090208ィョ, 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ01 ィコ06ィェ09ィー08ィョィコ02ィィ0701. 0106 09 06ィー05ィィ ツィィ02 06ィー Boo, ィャィ ィコ08060904 09 Nemerle ィー0802ィ ィョ06ィー 06ィー010205ィケィェ06ィヲ ィコ06ィャ07ィィ050702ィィィィ 0702080201 ィィ09070605ィケ040609ィ ィェィィ02ィャ. 06ィ ィコ0302 ィェ02090604ィャ0603ィェ06 ィィ09070605ィケ040609ィ ィーィケ ィャィ ィコ080609 0908ィ 04ィョ 0706090502 0607080201020502ィェィィ07, 09 0601ィェ06ィャ 00ィ ィヲ0502. 00ィ ィコ080609 09 ィコ09ィ 04ィィ02ィィィーィィ080609ィ ィェィィ02ィャ ィェィ Nemerle macro ReverseFor (i, begin, body) syntax ("ford", "(", i, ";", begin, ")", body) { <[ for ($i = $begin; $i >= 0; $i--) $body ]> } 00 0708ィィィャ020802 060708020102050702ィー0907 ィャィ ィコ080609 ford, 0604ィェィ ツィ 06ィエィィィヲ 06ィ 08ィ ィーィェ04ィヲ 02ィィィコ05 06ィー $begin 0106 0. 05ィィ09ィー02ィャィ ィャィ ィコ0806090609 Nemerle 09 ツィィィーィ 02ィー0907 0601ィェ06ィヲ ィィ04 09ィ ィャ0401 ィャ06ィエィェ0401. 00ィェ0600ィィ02 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ02 090604ィャ0603ィェ0609ィーィィ 070404ィコィ ィェィ 09ィ ィャ06ィャ 01020502 0709050706ィー0907 ィャィ ィコ080609ィ ィャィィ. 05 0706ィャ06ィエィケ06 020006 ィャィ ィコ0806090609 ィャ0603ィェ06, ィェィ 0708ィィィャ0208, 0802ィ 05ィィ040609ィ ィーィケ 09ィェィョィー0802ィェィェィィ02 070404ィコィィ 07080201ィャ02ィーィェ06ィヲ 06ィ 05ィ 09ィーィィ, ツィ 09ィーィィ ツィェ0402 0904 ツィィ090502ィェィィ07, ィェ02ィコ06ィー06080402 090604ィャ0603ィェ0609ィーィィ ィ 090702ィコィーィェ06-0608ィィ02ィェィーィィ080609ィ ィェィェ060006 0708060008ィ ィャィャィィ080609ィ ィェィィ07 ィィ 070806 ツ0202. Nemerle ィィィャ0202ィー 060702ィィ06ィェィ 05ィケィェィョ06 090604ィャ0603ィェ0609ィーィケ ィィ09070605ィケ040609ィ ィーィケ 06ィー09ィーィョ0704 ィコィ ィコ 09ィー08ィョィコィーィョ08ィョ 0708060008ィ ィャィャ04 (identation based syntax), 07060106ィ ィェ06 ィー06ィャィョ ィコィ ィコ 05ィー06 09010205ィ ィェ06 09 070404ィコ02 Python. 06.02. 09ィャ0209ィー06 ィィ09070605ィケ040609ィ ィェィィ07 09ィコ06ィ 06ィコ 010507 06ィ 0604ィェィ ツ02ィェィィ07 ィ 0506ィコ0609, ィャ0603ィェ06 ィィ09070605ィケ040609ィ ィーィケ 09ィィィャ090605 ィーィ ィ ィョ050702ィィィィ 010507 ィィ01 06000608ィャ0502ィェィィ07 (ィー.02. ィーィ ィコ ィェィ 040409ィ 02ィャィ 07 05020902ィェィコィ 04ィ 01ィ 02ィー 09ィー08ィョィコィーィョ08ィョ, ィ ィェ02 ィェィ 06ィ 060806ィー). 06ィー06 ィャ0603ィェ06 08ィ 0909ィャィ ィー08ィィ09ィ ィーィケ ィコィ ィコ 0708ィィィャ0208 08ィ 0903ィィ0802ィェィィ07 0502ィコ090208ィ 09 Nemerle. 080404ィコ Boo 0106090605ィケィェ06 ィ 05ィィ0406ィコ 0706 090604ィャ0603ィェ0609ィー07ィャ ィコ Nemerle. 0604 08ィ 0405ィィ ツィィィヲ ィャ0603ィェ06 0904010205ィィィーィケ ィ 030605ィケ03ィョ06 ィコ06ィェ0202ィェィー08ィ 02ィィ06 070404ィコィ Nemerle ィェィ ィャィ ィコ08060904 ィィ 00ィョィェィコ02ィィ06ィェィ 05ィケィェ0602 0708060008ィ ィャィャィィ080609ィ ィェィィ02, ィ ィーィ ィコ0302 020006 ィェィ ィョ ツィェィョ06 ィ ィ 04ィョ (0706 070404ィコィョ Nemerle ィ 040506 ィェィ 07ィィ09ィ ィェ06 ィャィェ060006 ィェィ ィョ ツィェ0401 08ィ ィ 06ィー). 0106 070404ィコ Boo 06ィ 05ィ 01ィ 02ィー ィ 0605ィケ03ィィィャ 090606ィ ィエ0209ィー0906ィャ 070605ィケ040609ィ ィー020502ィヲ ィィ, 09ィョ0107 0706 070609050201ィェィィィャ 090407ィョ09ィコィ ィャ, ィ 06050202 ィ ィコィーィィ09ィェ06 08ィ 0409ィィ09ィ 02ィー0907 09 070609050201ィェ0202 090802ィャ07. 080404ィコ Scala Scala 05ィー06, 07060106ィ ィェ06 Nemerle, 00ィィィ 08ィィ01ィェ04ィヲ 070404ィコ 0708060008ィ ィャィャィィ080609ィ ィェィィ07, 0907080602ィコィーィィ080609ィ ィェィェ04ィヲ ィコ08ィ ィーィコィィィャ ィィ ィーィィ0706ィ 02040607ィ 09ィェ04ィャ 010507 07080609ィー060006 ィィ ィ 0409ィー08060006 0708060008ィ ィャィャィィ080609ィ ィェィィ07. 00 ィェ02ィャ 060800ィ ィェィィ ツィェ06 0906- ツ02ィーィ 06ィー0907 090604ィャ0603ィェ0609ィーィィ 00ィョィェィコ02ィィ06ィェィ 05ィケィェ060006 ィィ 06ィ ィイ02ィコィーィェ06 0608ィィ02ィェィーィィ080609ィ ィェィェ060006 0708060008ィ ィャィャィィ080609ィ ィェィィ07. 0209ィェ0609ィェ06ィヲ 020205ィケ06 08ィ 0408ィ ィ 06ィーィコィィ ィ 0405 070404ィコ, 06ィ 05ィ 01ィ 06ィエィィィヲ 010608060302ィヲ 07060101020803ィコ06ィヲ ィコ06ィャ0706ィェ02ィェィーィェ060006 0302. 27

13010609060807ィー, ツィー06 Scala 08ィ 0903ィィ080702ィャ04ィヲ 070404ィコ. 01ィ 09ィ ィャ06ィャ 01020502 09ィィィェィーィ ィコ09ィィ09 Scala 07080609ィー06 ィェィ 09ィー0605ィケィコ06 03ィィ0806ィコ, ツィー06 0706040906050702ィー 050200ィコ06 09060401ィ 09ィ ィーィケ 09ィェィョィー0802ィェィェィィ02 070404ィコィィ 07080201ィャ02ィーィェ06ィヲ 06ィ 05ィ 09ィーィィ ィェィ 0609ィェ060902 Scala. 06ィー06ィャィョ 0907060906ィ 09ィー09ィョ06ィー closures (ィ ィェ06ィェィィィャィェ0402 00ィョィェィコ02ィィィィ, ィーィ ィコ0302 ィィ04090209ィーィェ0402 ィコィ ィコ 04ィ ィャ04ィコィ ィェィィ07), 06ィ ィィ05ィィ02 09ィィィェィーィ ィコ09ィィ ツ0209ィコ060006 09ィ 01ィ 08ィ (ィー06 0209ィーィケ 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ01 0906ィコ08ィ ィエ02ィェィィィヲ, ィェィ 0708ィィィャ0208: a+b 09ィャ0209ィー06 a.+(b)) ィィ 00ィョィェィコ02ィィ06ィェィ 05ィケィェィ 07 0708ィィ080601ィ 070404ィコィ. 05ィィ09ィー02ィャィ XLR: Extensible Language and Runtime 05ィィ09ィー02ィャィ XLR 090609ィー06ィィィー ィィ04 08ィ 0903ィィ080702ィャ060006 070404ィコィ XL ィィ 0908020104 020006 ィィ09070605ィェ02ィェィィ07. 00 08ィ ィャィコィ 01 070404ィコィ ィ 0405 0909020102ィェ 09ィーィィ05ィケ ィコ06ィェ020207ィーィェ060006 0708060008ィ ィャィャィィ080609ィ ィェィィ07. 0806ィェ020207ィー06ィャ ィェィ 040409ィ 02ィー0907 ィコィ ィコィ 07-05ィィィ 06 09ィョィエィェ0609ィーィケ 04ィ 01ィ ツィィ, ィコ06ィー0608ィ 07 09ィ 03ィェィ 010507 0708060008ィ ィャィャ04. 0806ィェ020207ィーィェ0602 0708060008ィ ィャィャィィ080609ィ ィェィィ02 ィィ09010601ィィィー ィィ04 07080609ィー06ィヲ ィィ0102ィィ: ィコ0601 0106050302ィェ 06ィー08ィ 03ィ ィーィケ ィコ06ィェ020207ィー04 09 0708ィィ05060302ィェィィィィ. 0308060008ィ ィャィャィィ080609ィ ィェィィ02 09 05ィー06ィャ ィコ06ィェィー02ィコ09ィー02 0709050702ィー0907 ィィ09ィコィョ0909ィー0906ィャ ィー08ィ ィェ09000608ィャィ 02ィィィィ ィコ06ィェ020207ィー0609 09 ィコ0601. 0208ィョ00ィィィャィィ 09050609ィ ィャィィ, 0708060008ィ ィャィャィィ080609ィ ィェィィ02 06ィー06ィ 08ィ 03ィ 02ィー ィコ06ィェ020207ィー04 ィィ04 0607080201020502ィェィェ060006 07080609ィー08ィ ィェ09ィー09ィ 070806ィ 0502ィャ 09 0607080201020502ィェィェ0602 07080609ィー08ィ ィェ09ィー0906 ィコ0601ィ. 0806ィェ020207ィーィェ0602 0708060008ィ ィャィャィィ080609ィ ィェィィ02 ィ ィコ0202ィェィーィィ08ィョ02ィー 09ィェィィィャィ ィェィィ02 ィェィ ィー06ィャ, ィコィ ィコ 0708060008ィ ィャィャィィ09ィー04 07020802ィェ060907ィー ィコ06ィェ020207ィー04 09 ィィ01 0708020109ィーィ 090502ィェィィ02. 06ィー06 06ィー05ィィ ツィ 02ィー0907 06ィー 0108ィョ00ィィ01 ィャ02ィー060106050600ィィィヲ, ィコ06ィー06080402 ィ ィコ0202ィェィーィィ08ィョ06ィー 09ィェィィィャィ ィェィィ02 ィェィ ィェィ ィ 060802 ィー0201ィェ06050600ィィィヲ ィィ05ィィ 0708ィ ィコィーィィィコ, ツィ 09ィー06 070605ィョ ツ02ィェィェ0401 05ィャ07ィィ08ィィ ツ0209ィコィィ ィィ04 060704ィーィ. 06ィ ィコィィィャ 06ィ 08ィ 0406ィャ, 070404ィコ XL 0704ィーィ 02ィー0907 080203ィ ィーィケ 070806ィ 0502ィャ04 ィェィ ィィィ 06050202 0708060408ィ ツィェ06 ィィ 05ィ ィコ06ィェィィ ツィェ06 09 ィャィィィェィィィャィ 05ィケィェ04ィャ 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィィャ 03ィョィャ06ィャ (05ィィ03ィェィィィャィィ 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィィャィィ ィコ06ィェ09ィー08ィョィコ02ィィ07ィャィィ, ィェ02 06ィー06ィ 08ィ 03ィ 06ィエィィィャィィ ィコ06ィェ020207ィー). 00070806 ツ02ィャ, 0706ィェ07ィーィィ07 ィコ06ィェ020207ィー 09 070404ィコ02 XL ィェ02ィー, 070605ィー06ィャィョ ィコ06ィェ020207ィーィェ0602 0708060008ィ ィャィャィィ080609ィ ィェィィ02 ィャ0603ィェ06 ィョ09050609ィェ06 09 ツィィィーィ ィーィケ 07080609ィー06 ィコ08ィ 09ィィ0904ィャィィ 09050609ィ ィャィィ. XLR 0706 ツィーィィ 090606ィー0902ィー09ィー09ィョ02ィー 0906090802ィャ02ィェィェ06ィャィョ 0607080201020502ィェィィ06 08ィ 0903ィィ080702ィャ06ィヲ 09ィィ09ィー02ィャ04 0708060008ィ ィャィャィィ080609ィ ィェィィ07, 0607ィィ09ィ ィェィェ06ィヲ 09 08ィ 0401020502 2.2. XLR 09ィコ0506 ツィ 02ィー 070404ィコ 09 08ィ 0903ィィ080702ィャ04ィャ 09ィィィェィーィ ィコ09ィィ0906ィャ XL, ィャ0601ィョ05ィケィェ04ィヲ ィコ06ィャ07ィィ0507ィー0608, 09ィィ08ィーィョィ 05ィケィェィョ06 ィャィ 03ィィィェィョ. 0106 ィーィ ィコ ィコィ ィコ XLR ィェ02 070802010609ィーィ 09050702ィー 0908020104 08ィ 0408ィ ィ 06ィーィコィィ, ィー06 070806 07060101020803ィコィョ 06ィー05ィ 01ィコィィ 0006090608ィィィーィケ ィェ02 0708ィィ010601ィィィー0907. 0604ィェィ ツィ 05ィケィェ06 XLR ィ 0405ィ ィェィ 07ィィ09ィ ィェィ ィェィ C++, ィェ06 0706ィー06ィャ ィ 0405ィ 0702080207ィィ09ィ ィェィ ィェィ 09ィ ィャ06ィヲ 0902ィ 02 (bootstraping). 03080602ィコィー XLR 0106090605ィケィェ06 ィィィェィー0208020902ィェ, ィェ06 ィャィ 0506ィ ィコィーィィ0902ィェ. 030905ィィ ィ 04 07080602ィコィー ィ 0405 ィェィ 07ィィ09ィ ィェ ィェィ Java ィィ ィィ09070605ィケ040609ィ 05 JVM, ィー06 020006 090606ィ ィエ0209ィー0906 ィ 040506 ィ 04 000608ィ 040106 ィ 0605ィケ0302. 0308ィィ09020102ィャ 0708ィィィャ0208 0904 ツィィ090502ィェィィ07 00ィ ィコィー0608ィィィ 05ィ ィェィ XL: function Factorial(N : integer) return number written N! is if N = 0 then return 1 else return N * (N-1)! 28

1300 0708ィィィャ020802 09090601ィィィー0907 09ィィィェィーィ ィコ09ィィ ツ0209ィコィ 07 ィコ06ィェ09ィー08ィョィコ02ィィ07 N!, ィコ06ィー0608ィ 07 0904040409ィ 02ィー 00ィョィェィコ02ィィ06 F actorial(n) 010507 0904 ツィィ090502ィェィィ07 00ィ ィコィー0608ィィィ 05ィ 06ィー N. 4 0508020109ィー09ィ 09060401ィ ィェィィ07 08ィ 0903ィィ0802ィェィィィヲ 020507 09060401ィ ィェィィ07 ィコ06ィャ07ィィ0507ィー06080609 ィィ09070605ィケ04ィョ02ィー0907 ィャィェ06030209ィー0906 09090706ィャ0600ィ ィー0205ィケィェ0401 ィィィェ09ィー08ィョィャ02ィェィー0609. 00 01ィ ィェィェ06ィャ 08ィ 0401020502 0708ィィ09020102ィェ04 ィェィ ィィィ 06050202 07060101060107ィエィィ02 ィィ04 ィェィィ01 010507 0802ィ 05ィィ04ィ 02ィィィィ ィィィャ02ィェィェ06 08ィ 0903ィィ080702ィャ0401 ィコ06ィャ07ィィ0507ィー06080609 ィィ 070404ィコ0609. 4.1 05080201ィ JetBrains MPS Meta Programming System 09080201ィ 08ィ 0408ィ ィ 06ィーィコィィ DSL ィィ ィィ01 ィィィェィー020008ィ 02ィィィィ 09 IDE Idea. 0306040906050702ィー 09 050200ィコ0609ィーィケ06 09060401ィ ィーィケ 090906ィヲ 070404ィコ, 080201ィ ィコィー060804 ィィ 0002ィェ0208ィ ィー060804 ィコ ィェ02ィャィョ. 02ィー05ィィ ツィ 02ィー0907 06ィー 0609ィーィ 05ィケィェ0401 ィィィェ09ィー08ィョィャ02ィェィー0609 ィー02ィャ, ツィー06 0108ィ ィェィィィー ィィ09010601ィェ0402 00ィ ィヲ0504 070404ィコィ ィェ02 09 07080609ィー06ィャ ィー02ィコ09ィー060906ィャ 000608ィャィ ィー02, ィ 09 09ィィ0102 09ィィィェィーィ ィコ09ィィ ツ0209ィコ060006 0102080209ィ (09 XML). 06ィ ィコィィィャ 06ィ 08ィ 0406ィャ 0502ィコ09ィィ ツ0209ィコィィィヲ, 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィィヲ ィ ィェィ 05ィィ04 ィィ 090208ィィィ 05ィィ04ィ ィー060804 09ィーィ ィェ060907ィー0907 ィェ02 ィェィョ03ィェ04, ィ ィーィ ィコ0302 09ィェィィィャィ 06ィー0907 ィャィェ0600ィィ02 070806ィ 0502ィャ04 09ィィィェィーィ ィコ09ィィ ツ0209ィコ06ィヲ 08ィ 0903ィィ080702ィャ0609ィーィィ, ィェ06 070605ィケ040609ィ ィー0205ィケ 09ィーィ ィェ0609ィィィー0907 09ィィ05ィケィェ06 04ィ 09ィィ09ィィィャ04ィャ 06ィー 080201ィ ィコィー0608ィ. 040201ィ ィコィーィィ080609ィ ィェィィ02 070404ィコィ 09020102ィー0907 07ィョィー02ィャ 09060401ィ ィェィィ07 ィーィィ070609 ィィ 09ィー08ィョィコィーィョ0804 09ィィィェィーィ ィコ09ィィ ツ0209ィコ060006 0102080209ィ (09ィー08ィョィコィーィョ08ィェ060006 ィコ06ィェ020207ィーィ 09 ィー0208ィャィィィェ06050600ィィィィ MPS). 02ィ 050202 010507 ィコィ 0301060006 ィェ0609060006 ィーィィ07ィ 09060401ィ 02ィー0907 0607ィィ09ィ ィェィィ02 080201ィ ィコィー0608ィ, ィコ06ィー06080602 060708020102050702ィー ィー06, ィコィ ィコ ィ ィョ0102ィー 09040005070102ィーィケ ツィ 09ィーィケ 080201ィ ィコィー0608ィ 070404ィコィ 010507 01ィ ィェィェ060006 ィーィィ07ィ 09ィィィェィーィ ィコ09ィィ ツ0209ィコ060006 0102080209ィ. 020205ィ 02ィー0907 05ィー06 07ィョィー02ィャ 08ィ 0909ィーィ ィェ0609ィコィィ 07060502ィヲ 09090601ィ ィィ 08ィ 0405ィィ ツィェ0401 07060107ィィ0902ィヲ. 040201ィ ィコィー0608 080201ィ ィコィー06080609 0601ィェィ ィィ04 09ィィ05ィケィェ02ィヲ03ィィ01 09ィー060806ィェ MPS. 030605ィケ040609ィ ィーィケ0907 ィィィャ 010609ィーィ ィー06 ツィェ06 07080609ィー06. 0102ィェ0208ィ ィー0608 0708020109ィーィ 09050702ィー 0906ィ 06ィヲ 03ィ ィ 0506ィェ ィコ0601ィ, ィコ06ィー060804ィヲ 0708ィィィャ02ィェ0702ィー0907 ィコ 070404ィコィョ. 00 080204ィョ05ィケィーィ ィー02 ィャ060302ィー 070605ィョ ツィィィー0907, ィェィ 0708ィィィャ0208, ィィィェィー0208070802ィーィ ィー0608 070404ィコィ ィェィ Java. 040201ィ ィコィー0608 0002ィェ0208ィ ィー06080609 0706040906050702ィー 050200ィコ06 09060401ィ 09ィ ィーィケ 09050603ィェ0402 03ィ ィ 0506ィェ04 09 07060109ィーィ ィェ0609ィコィ ィャィィ, ィィィー0208ィ 02ィィ07ィャィィ ィィ 0708. MPS 07060101020803ィィ09ィ 02ィー ィャィェ06030209ィー0902ィェィェ0602 ィェィ 090502010609ィ ィェィィ02 070404ィコ0609. 0308ィィ 05ィー06ィャ 07080609ィー06 070806ィィ09010601ィィィー 06ィ ィイ0201ィィィェ02ィェィィ02 09090201 ィーィィ070609 09ィィィェィーィ ィコ09ィィ ツ0209ィコ060006 0102080209ィ 09090201 070404ィコ0609. 0905ィ 000601ィ 0807 0108ィ ィェ02ィェィィ06 ィィ09010601ィェ0401 00ィ ィヲ050609 09 09ィィ0102 09ィィィェィーィ ィコ09ィィ ツ0209ィコ060006 0102080209ィ, 09ィェィィィャィ 02ィー0907 070806ィ 0502ィャィ ィャィェ06030209ィー0902ィェィェ060006 ィェィ 090502010609ィ ィェィィ07, ィィィャ0206ィエィ 070907 09 0108ィョ00ィィ01 ィィィェ09ィー08ィョィャ02ィェィーィ 01. 00 MPS 0802ィ 05ィィ040609ィ ィェ06 ィャィェ06030209ィー0906 070404ィコ0609, 09 ィー06ィャ ツィィ090502 09ィ ィャィ Java, ィコ06ィー0608ィ 07 0708ィィィャ02ィェ0702ィー0907 09 080201ィ ィコィー060802 0002ィェ0208ィ ィー06080609. 030605ィケ040609ィ ィーィケ0907 MPS ィェ0609ィィ ツィコィ ィャ 06 ツ02ィェィケ 07080609ィー06. 0106 010507 010608060306 04ィェィ ィコ06ィャ0401 09 070404ィコ06ィャ, MPS ィャ060302ィー 0706ィコィ 04ィ ィーィケ0907 0905ィィ03ィコ06ィャ 060008ィ ィェィィ ツィィ09ィ 06ィエィィィャ, ィー.ィコ. ィェ02 08ィ 04080203ィ 02ィー 090906ィ 0601ィェ0602 080201ィ ィコィーィィ080609ィ ィェィィ02 ィィ 000608ィャィ ィーィィ080609ィ ィェィィ02 ィコ0601ィ (09090601 090604ィャ060302ィェ ィー0605ィケィコ06 09 07060507 09090601ィ ). 06ィ ィコィィィャ 06ィ - 29

1308ィ 0406ィャ, MPS 070802010609ィーィ 09050702ィー 090906ィ 0601ィョ ィィ04ィャ02ィェ02ィェィィ07 0008ィ ィャィャィ ィーィィィコィィ 070404ィコィ, 0904ィ ィャ02ィェ ィェィ 06ィーィコィ 04 06ィー 020006 0502ィコ09ィィ ツ0209ィコ06ィヲ ツィ 09ィーィィ. 0106 010507 ィャィェ0600ィィ01 0708060008ィ ィャィャィィ09ィー0609 ィェ02090604ィャ0603ィェ0609ィーィケ 000608ィャィ ィーィィ080609ィ ィェィィ07 ィコ0601ィ ィコィ ィコ ィィィャ ィェ08ィ 09ィィィー0907 0709050702ィー0907 ィェ02ィコィィィャ 0709ィィ0106050600ィィ ツ0209ィコィィィャ 0708020707ィー09ィー09ィィ02ィャ. 0602ィャ ィェ02 ィャ02ィェ0202 05ィー06 0708020707ィー09ィー09ィィ02 07080206010605ィィィャ06 (09 ィコィ ツ0209ィー0902 0708ィィィャ0208ィ 09ィャ0203ィェ06ィヲ 070806ィ 0502ィャ04 ィャ0603ィェ06 0708ィィ090209ィーィィ ィィィェ09ィー08ィョィャ02ィェィー04 070806090208ィコィィ 09ィーィィ0507 ィコ0601ィ, ィコ06ィー06080402 03ィィ0806ィコ06 ィィ09070605ィケ04ィョ06ィー0907 0708ィィ 08ィ 0408ィ ィ 06ィーィコ02 0302 09 010609ィーィ ィー06 ツィェ06 ィ 0605ィケ03ィィ01 0008ィョ0707ィ 01). 090605ィケ03ィ 07 ツィ 09ィーィケ ィィ09010601ィェ060006 ィコ0601ィ MPS 06ィーィコ0804ィーィ 070601 05ィィ0202ィェ04ィィ02ィヲ Apache 2.0. 05ィ ィコ0804ィー06ィヲ 0709050702ィー0907 ィィ09070605ィケ04ィョ02ィャィ 07 09 MPS ツィ 09ィーィケ IDE Idea, ィコ06ィー0608ィ 07 0709050702ィー0907 ィコ06ィャィャ0208 ツ0209ィコィィィャ 07080601ィョィコィー06ィャ. 01ィ 01ィ ィェィェ04ィヲ ィャ06ィャ02ィェィー 010609ィーィョ07ィェィ 09020809ィィ07 1.0beta2. 040201ィ ィコィー0608 080201ィ ィコィー06080609 MPS: 4.2 05080201ィ Textual Modeling Framework(TMF) Xtext Xtext ィ ィェィ 050600 MPS 010507 IDE Eclipse. 0809050702ィー0907 ィェィ ィ 060806ィャ ィィィェ09ィー08ィョィャ02ィェィー0609 010507 09060401ィ ィェィィ07 09ィェ0203ィェィィ01 DSL ィィ 080201ィ ィコィー0608ィ ィコ ィェィィィャ ィェィ 0609ィェ060902 Eclipse. 0209ィェ0609ィ ィェ06 ィェィ ィーィ ィコィィ01 ィー0201ィェ06050600ィィ0701 07080602ィコィーィ Eclipse ィコィ ィコ Eclipse Modeling Framework(EMF), Graphical Modeling Framework(GMF), Model To Text (M2T), Eclipse Modeling Framework Technology (EMFT). 01ィ ィー02ィコィョィエィィィヲ ィャ06ィャ02ィェィー (09020809ィィ07 0.7.0RC4) 07080602ィコィー ィェィ 010601ィィィー0907 ィェィ 09ィーィ 01ィィィィ 08ィ 0408ィ ィ 06ィーィコィィ (Eclipse incubation). 0305ィ ィェィィ08ィョ02ィー0907 ィィィェィー020008ィ 02ィィ07 09 09050201ィョ06ィエィョ06 09020809ィィ06 Eclipse 3.5 Galileo. 0108ィ ィャィャィ ィーィィィコィ 0601ィェ06090802ィャ02ィェィェ06 09 ィャ06010205ィケ06 04ィ 01ィ 02ィー0907 09 0706ィャ06ィエィケ06 ィコ06ィャ07ィ ィコィーィェ060006 ィィ 090408ィ 04ィィィー0205ィケィェ060006 070404ィコィ, 09 000608ィャ02, 070601060302ィヲ ィェィ 09ィィ05ィケィェ06 08ィ 0903ィィ0802ィェィェィョ06 EBNF. 03060101020803ィィ09ィ 02ィー0907 ィェィ 090502010609ィ ィェィィ02 (ィェ02 ィャィェ06030209ィー0902ィェィェ0602) 0008ィ ィャィャィ ィーィィィコ. Xtext 0706 0008ィ ィャィャィ ィーィィィコ02 070404ィコィ 09060401ィ 02ィー: 30

136ヲ1 ィィィェィコ0802ィャ02ィェィーィ 05ィケィェ04ィヲ 07ィ 08090208 ィィ 0502ィコ090208, 0609ィェ0609ィ ィェィェ0402 ィェィ ANTLR (09 08ィ 0408ィ ィ 06ィーィコ02 0906ィ 09ィー0902ィェィェ04ィヲ 0002ィェ0208ィ ィー0608 07ィ 080902080609 packrat); 6ヲ1 ィャ02ィーィ ィャ06010205ィケ, 0609ィェ0609ィ ィェィェィョ06 ィェィ Ecore; 6ヲ1 090208ィィィ 05ィィ04ィ ィー0608, ィィ09070605ィケ04ィョ02ィャ04ィヲ 010507 07080206ィ 08ィ 040609ィ ィェィィ07 ィャ02ィーィ ィャ06010205ィィ 06ィ 08ィ ィーィェ06 09 ィー02ィコ09ィー0609ィョ06 000608ィャィョ, 09 09060108ィ ィェ02ィェィィ02ィャ ィィ09010601ィェ060006 000608ィャィ ィーィィ080609ィ ィェィィ07; 6ヲ1 ィィィェィー020008ィ 02ィィ06 070404ィコィ 09 Eclipse IDE: 070601090902ィーィコィ 09ィィィェィーィ ィコ09ィィ09ィ ; ィェィ 09ィィ00ィ 02ィィ07 (F3, ィィ ィー.07.); ィ 09ィー060106070605ィェ02ィェィィ02 ィコ0601ィ (ctrl-space); outline view; 03ィ ィ 0506ィェ04 ィコ0601ィ. 00 ィコィ ツ0209ィー0902 070404ィコィ 010507 0002ィェ0208ィ ィー06080609 ィコ0601ィ, 09 Xtext ィィ09070605ィケ04ィョ02ィー0907 Xpand (09ィーィ ィーィィ ツ0209ィコィィ-ィーィィ07ィィ04ィィ08ィョ02ィャ04ィヲ 03ィ ィ 0506ィェィェ04ィヲ 070404ィコ). 0308ィィィャ0208 0607ィィ09ィ ィェィィ07 ィェ02ィ 0605ィケ03060006 070404ィコィ 0607080201020502ィェィィ07 09ィー08ィョィコィーィョ0804 09ィョィエィェ0609ィー02ィヲ 09 Xtext: Model: (types+=type)*; Type: DataType Entity; DataType: "datatype" name=id; Entity: "entity" name=id "{" (features+=feature)* "}"; Feature: type=[type ID] name=id; 0306 ィャィェ02ィェィィ06 ィ 09ィー0608ィ Xtext 010608060306 070601010601ィィィー 010507 09060401ィ ィェィィ07 ィェ02ィ 0605ィケ03ィィ01 (09 0008ィ ィャィャィ ィーィィ ツ0209ィコ06ィャ 09ィャ04090502) 070404ィコ0609 07080201ィャ02ィーィェ06ィヲ 06ィ 05ィ 09ィーィィ, ィェ06 ィェ02 010507 09060401ィ ィェィィ07 070605ィェ060202ィェィェ0401 070404ィコ0609 0708060008ィ ィャィャィィ080609ィ ィェィィ07. 0006 070208090401 Xtext 070604ィィ02ィィ06ィェィィ08ィョ02ィー0907 010507 070609ィー080602ィェィィ07 09ィェ0203ィェィィ01 DSL, ィ 09ィェ0203ィェィィ02 DSL 31

1306ィ 04 ツィェ06 0709050706ィー0907 ィェ02ィ 0605ィケ03ィィィャィィ. 0006 09ィー06080401, ィィ09070605ィケ04ィョ02ィャ04ィヲ 09 Xtext 0002ィェ0208ィ ィー0608 07ィ 080902080609 ィェ02 07060101020803ィィ09ィ 02ィー 09ィィィェィーィ ィコ09ィィ ツ0209ィコィィ01 ィィ 0902ィャィ ィェィーィィ ツ0209ィコィィ01 07080201ィィィコィ ィー0609, ィコ06ィー06080402 ィー0802ィ ィョ06ィー0907 09 ィ 0605ィケ03ィィ01 ィィ 09050603ィェ0401 070404ィコィ 01 010507 08ィ 0408020302ィェィィ07 ィェ020601ィェ0604ィェィ ツィェ0609ィー02ィヲ 09 0008ィ ィャィャィ ィーィィィコ02. 06 09 ィー0802ィーィケィィ01 0708ィィ 09060401ィ ィェィィィィ 070404ィコィ 04ィ 0102ィヲ09ィー09ィョ02ィー0907 06 ツ02ィェィケ ィャィェ060006 ィー0201ィェ06050600ィィィヲ, 0002ィェ0208ィィ08ィョ02ィー0907 09ィェィョ03ィィィー0205ィケィェィ 07 ィャ06010205ィケ 070404ィコィ, ィコ06ィー0608ィ 07 ィィ09070605ィケ04ィョ02ィー0907 0708ィィ 08ィ 09070604ィェィ 09ィ ィェィィィィ. 0308ィィ ツ02ィャ 05ィーィ ィャ06010205ィケ 090601020803ィィィー ィャィェ060006 ィェ02ィェィョ03ィェ06ィヲ ィィィェ000608ィャィ 02ィィィィ, ツィー06 09 080204ィョ05ィケィーィ ィー02 0708ィィ090601ィィィー ィコ ツ080204ィャ0208ィェ06ィャィョ 0706ィー0802ィ 0502ィェィィ06 07ィ ィャ07ィーィィ. 00070806 ツ02ィャ 05ィー06 09ィ 03ィェ06 ィー0605ィケィコ06 010507 0102ィヲ09ィー09ィィィー0205ィケィェ06 ィ 0605ィケ03ィィ01 070404ィコ0609. 06ィ ィコ0302 Xtext ィェ02 07060101020803ィィ09ィ 02ィー ィャィェ06030209ィー0902ィェィェ0602 ィェィ 090502010609ィ ィェィィ02, ツィー06 ィェ02 0706040906050702ィー 06ィ ィイ0201ィィィェィィィーィケ ィェ0209ィコ0605ィケィコ06 ィェ0204ィ 09ィィ09ィィィャ0401 08ィ 0903ィィ0802ィェィィィヲ 0601ィェ060006 070404ィコィ. 0602ィャ ィェ02 ィャ02ィェ0202, 05ィーィィ ィェ02010609ィーィ ィーィコィィ 0709050706ィー0907 07080206010605ィィィャ04ィャィィ 09 ィー0201ィェィィ ツ0209ィコ06ィャ 0705ィ ィェ02, ィィ ィョ ツィィィー0409ィ 07 ィ 0605ィケ03ィョ06 ィ ィコィーィィ09ィェ0609ィーィケ 07080602ィコィーィ, 090604ィャ0603ィェ06 08ィ 04080203ィ ィー0907 09 ィ ィョ01ィョィエ02ィャ. 4.3 05080201ィ Eclipse IDE Meta-Tooling Platform Eclipse IMP 05ィー06 ィェィ ィ 0608 ィィィェ09ィー08ィョィャ02ィェィー0609 010507 09060401ィ ィェィィ07 0908020104 08ィ 0408ィ ィ 06ィーィコィィ 010507 070806ィィ04090605ィケィェ0401 070404ィコ0609. Eclipse 05ィー06 06ィー05ィィ ツィェィ 07 09080201ィ 010507 08ィ 0408ィ ィ 06ィーィコィィ ィェィ Java, ィェ06 010507 0108ィョ00ィィ01 070404ィコ0609 0708060008ィ ィャィャィィ080609ィ ィェィィ07 09010205ィ ィーィケ 07060106ィ ィェィョ06 09080201ィョ 06 ツ02ィェィケ 09050603ィェ06. 000205ィケ Eclipse IMP ィョ07080609ィーィィィーィケ 09060401ィ ィェィィ02 0908020104 08ィ 0408ィ ィ 06ィーィコィィ ィェィ 0609ィェ060902 Eclipse 010507 070806ィィ04090605ィケィェ0401 070404ィコ0609. 00 06ィー05ィィ ツィィ02 06ィー Xtext, ィコ06ィー060804ィヲ 0608ィィ02ィェィーィィ080609ィ ィェ ィェィ ィェ02ィ 0605ィケ03ィィ02 070404ィコィィ 07080201ィャ02ィーィェ06ィヲ 06ィ 05ィ 09ィーィィ, IMP 0608ィィ02ィェィーィィ080609ィ ィェ ィェィ 070605ィェ060202ィェィェ0402 070404ィコィィ 0708060008ィ ィャィャィィ080609ィ ィェィィ07. 01ィ 0609ィェ060902 IMP ィ 0405ィィ 08ィ 0408ィ ィ 06ィーィ ィェィ 0908020104 010507 070404ィコ0609 X10 ィィ XJ, ィコ06ィー06080402 0709050706ィー0907 08ィ 0903ィィ0802ィェィィ07ィャィィ 070404ィコィ Java. 08ィ ィコィーィィ ツ0209ィコィィ IMP 05ィー06 07080609ィー06 ィェィ ィ 0608 ィィィェ09ィー08ィョィャ02ィェィー0609 010507 09060401ィ ィェィィ07 09020809ィィ090609 ィコ IDE 010507 08ィ 0408ィ ィ ィ ィー0409ィ 02ィャ060006 070404ィコィ. 00 IMP ィィィェィー020008ィィ080609ィ ィェ 0002ィェ0208ィ ィー0608 07ィ 080902080609 LPG (08ィ ィェ0202 ィィ04090209ィーィェ04ィヲ ィコィ ィコ JikesPG), ィェ06 090604ィャ0603ィェ06 ィィ09070605ィケ040609ィ ィェィィ02 ィィ 0108ィョ00ィィ01 0002ィェ0208ィ ィー06080609 ィィ05ィィ 09ィ ィャ0607ィィ09ィェ0401 07ィ 080902080609. LPG ィャ060302ィー ツィ 09ィーィィ ツィェ06 05ィャィョ05ィィ080609ィ ィーィケ ィャィェ06030209ィー0902ィェィェ0602 ィェィ 090502010609ィ ィェィィ02 07ィョィー02ィャ 09ィコ0506 ツ02ィェィィ07 ィェ0209ィコ0605ィケィコィィ01 0008ィ ィャィャィ ィーィィィコ 09 0601ィェィョ. 030905ィィ ィコ06ィャ07ィィ0507ィー0608 0002ィェ0208ィィ08ィョ02ィー Java 00ィ ィヲ0504, ィー06 IMP 09ィャ060302ィー 01ィ 0302 ィィ01 06ィー05ィ 03ィィ09ィ ィーィケ ィ 05ィ 000601ィ 0807 09ィーィ ィェ01ィ 08ィーィョ JSR-45 (09ィャ. [4]). 020507 05ィー060006 ィェィョ03ィェ06 09 Java-00ィ ィヲ0504 0909ィーィ 090507ィーィケ ィコ06ィャィャ02ィェィーィ 08ィィィィ 09ィィ01ィ //#line 010507 090606ィー0902ィー09ィー09ィィ07 09ィー0806ィコ 09 ィィ09010601ィェ06ィャ 00ィ ィヲ0502 ィィ 090002ィェ0208ィィ080609ィ ィェィェ06ィャ 0706 ィェ02ィャィョ Java-00ィ ィヲ0502. IMP, LPG, X10, XJ 07080602ィコィー04 ィコ06ィャ07ィ ィェィィィィ IBM. 32

13050102ィャィ 0904ィ ィィィャ060102ィヲ09ィー09ィィ07 ツィ 09ィー02ィヲ IMP: 03080602ィコィー IMP ィャ0603ィェ06 08ィ 0909ィャィ ィー08ィィ09ィ ィーィケ ィコィ ィコ ィ ィェィ 050600 Xtext, ィェ06 ィ 01ィ 07ィーィィ080609ィ ィェィェ04ィヲ 010507 ィ 0605ィケ03ィィ01 070404ィコ0609 0708060008ィ ィャィャィィ080609ィ ィェィィ07. IMP ィー0802ィ ィョ02ィー ィ 0605ィケ0302 ィョ09ィィ05ィィィヲ 010507 09060401ィ ィェィィ07 070404ィコ0609, ィェ06 0708020105ィ 00ィ 02ィー ィィ ィ 0605ィケ0302 090604ィャ0603ィェ0609ィー02ィヲ. 080806ィャ02 ィー060006 IMP ィャ060302ィー 09ィィ05ィケィェ06 0706ィャ06 ツィケ ィィ 09 0802ィ 05ィィ04ィ 02ィィィィ 070806ィィ04090605ィケィェ0401 ィコ06ィャ07ィィ0507ィー06080609 ィェィ 0609ィェ060902 LPG ィィ05ィィ SDF. 4.4 0102ィェ0208ィ ィー060804 07ィ 080902080609 0308ィィ 08ィ 0408ィ ィ 06ィーィコ02 08ィ 0903ィィ0802ィェィィ07 09ィョィエ0209ィー09ィョ06ィエ020006 070404ィコィ, ィィ05ィィ 09060401ィ ィェィィィィ ィェ0609060006, ィェ02ィィ04ィ 0203ィェ06 0708ィィ0102ィー0907 09ィー0605ィコィェィョィーィケ0907 09 0002ィェ0208ィ ィー0608ィ ィャィィ 07ィ 080902080609. 000201ィケ 09 0708060202090902 08ィ 0408ィ ィ 06ィーィコィィ ィコ06ィャ07ィィ0507ィー0608ィ 08ィ 0408ィ ィ 06ィー ツィィィコ 06ィ 04 ツィェ06 ィェ02 07ィィ0302ィー 07ィ 08090208 070404ィコィ 09ィ ィャ, ィ 070605ィケ04ィョ02ィー0907 0002ィェ0208ィ ィー060806ィャ 07ィ 080902080609, ィコ06ィー060804ィヲ 0002ィェ0208ィィ08ィョ02ィー 04ィ ィェ020006 07ィ 08090208 ィェィ 0609ィェ060902 000608ィャィ 05ィケィェ060006 0607ィィ09ィ ィェィィ07 0008ィ ィャィャィ ィーィィィコィィ. 0308ィィ09020102ィャ 0708ィィィャ020804 ィェィ ィィィ 06050202 ィィィェィー02080209ィェ0401 0002ィェ0208ィ ィー06080609 07ィ 080902080609. 0502ィャ02ィヲ09ィー0906 YACC 08ィ 09070604ィェィ 09ィ 02ィャ04ィヲ ィコ05ィ 0909 070404ィコ0609: LALR(1) 02020502090402 0803: yacc: C; bison: C, C++, ィィ 0108. 060906ィ 02ィェィェ0609ィーィィ: 09ィーィ ィェ01ィ 08ィーィィ040609ィ ィェ 09 POSIX P1003.2. 060802ィ ィョ02ィー 09ィェ0203ィェ020006 0502ィコ090208ィ : lex, ex. 33