// Á¦ ¸ñ: PL/0 Compiler ±¸Çö
// ÀÛ¼ºÀÚ: ±è¿µ´ë( http://www.howto.pe.kr )
1.¹®Á¦¼³¸í
original PL/0 ¿¡ function, array, repeat-until, write, if-then-else ¸¦
ÆÄ½ÌÇÏ´Â ±â´ÉÀ» Ãß°¡Çϰí ÀÎÅÍÇÁ¸®Æ® ÇÑ´Ù
2.°³¹ßȯ°æ
ÄÄÆÄÀÏ/½ÇÇà ȯ°æ: Linux (RedHat 6.1)
±¸Çö¾ð¾î: C ¾ð¾î
±¸ÇöÀÚ: ±è¿µ´ë(cozy@howto.pe.kr, http://www.howto.pe.kr )
3.±¸Çö¹üÀ§
reserved words:
begin, call, const, do, end, if, odd, procedure, then, var, while,
write, repeat, until (array, function ´Â ±¸ÇöÇÏÁö ¸øÇÔ)
instruction code:
lit, opr, lod, sto, cal, inc, jmp, jpc, wrt, stp, lda, lid, sid
special symbols:
¡°+¡±, ¡°-¡±, ¡°*¡±, ¡°/¡±, ¡°(¡°, ¡°)¡±, ¡°=¡°, ¡°,¡±, ¡°.¡±, ¡°;¡±, ¡°&¡±, ¡°<¡°, ¡°>¡±, ¡°<=¡°, ¡°>=¡°, ¡°<>¡±
Ãß°¡ÇÑ ±â´É:
1. write()
2. repeat-until
3. procedure È£Ãâ½Ã ÆÄ¶ó¹ÌÅ͸¦ call-by-value, call-by-addrsss(&) ¹æ¹ýÀ¸·Î È£Ãâ°¡´É
call-by-address ÀÇ formal parameter ´Â ¡°var¡± ·Î ¼±¾ðÇØ¾ß Çϸç actual parameter ´Â
C¾ð¾î¿Í °°ÀÌ ¡°&¡± ±âÈ£¸¦ »ç¿ëÇÑ´Ù
Example
¼±¾ð½Ã: procedure p(a, var b)
È£Ãâ½Ã: call p(x,&y);
4.°á°ú¹° Á¾·ù ¹× ½ÇÇà¹æ¹ý
1. °á°ú¹° Á¾·ù
assemble list - *.asm
symbol/literal table - *.sym
2. ½ÇÇà¹æ¹ý
> pl0 {-c|-i} source_file
; ÄÄÆÄÀÏ ¿É¼Ç
-c : ÄÄÆÄÀÏ + assemble list ÆÄÀÏ »ý¼º + ½Éº¼ Å×ÀÌºí ÆÄÀÏ »ý¼º
-i : ÄÄÆÄÀÏ + assemble list ÆÄÀÏ »ý¼º + ½Éº¼ Å×ÀÌºí ÆÄÀÏ »ý¼º + interpret
; source_fileÀº full name À̸ç source_fileÀÇ symbol/literal table ÆÄÀÏÀº
source_file.sym, assemble list ÆÄÀÏÀº source_file.asm ·Î Ãâ·ÂµÈ´Ù
|
|