28
HAL Id: inria-00073102 https://hal.inria.fr/inria-00073102 Submitted on 24 May 2006 HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés. Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this version: Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller. Towards Automatic Specialization of Java Programs. [Research Report] RR-3579, INRIA. 1998. inria-00073102

Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

HAL Id: inria-00073102https://hal.inria.fr/inria-00073102

Submitted on 24 May 2006

HAL is a multi-disciplinary open accessarchive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come fromteaching and research institutions in France orabroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, estdestinée au dépôt et à la diffusion de documentsscientifiques de niveau recherche, publiés ou non,émanant des établissements d’enseignement et derecherche français ou étrangers, des laboratoirespublics ou privés.

Towards Automatic Specialization of Java ProgramsUlrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller

To cite this version:Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller. Towards Automatic Specialization ofJava Programs. [Research Report] RR-3579, INRIA. 1998. �inria-00073102�

Page 2: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

ISS

N 0

249-

6399

ap por t de r ech er ch e

INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE

Towards Automatic Specialization ofJava Programs

Ulrik Pagh Schultz, Julia L. Lawall, Charles Consel, and Gilles Muller

N ˚ 3579

Decembre 1998

THEME 2

Page 3: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this
Page 4: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

������������ �������������������� �!����"#��$%�&�����'(��)* ��+,�.-/���0���1�2�

3547698;:=<,>@?BA/CEDFAEGH4;IFJ@K%L@GM4;8N>�O&PQOR>TSU>@4;4VKXW1AQ>Y694NZ\[]WU^B_X[9Z`4aKQ>@_Mbdce8;474NZ\[�fgGM474NZ\6

h ikj9l1m�n�oqpsr9tkuvm&wyx`z\uy{#uvm|wm|}�{#~�w�{#��w����kl��@x`wyu�����m����x���m|}�� �s���!�&���

�R~`�Y�Yx���} �km���m|{�ikm9��{�i�m�tE�\�����5o �,r|{#m|l��Y��m¢¡|�\�`£&oqn�¤���~`z`m|�

¥5¦H§|¨#©�ª�«`¨`¬®­ ��}�x\l¢~`}�u�{�����x`z���~\l¯�V�Ym9{�u�~�wyuv°9~�}�uyx\t±{|~`t±�km9��uy²`m�m�³�{�uym|t�}�uyl¢�kwym|lUm|t�}V~�}�uyx\tY��´µ��x\lz\m|tkm9��u�{U{�x\l¢�@x\tkm9t�}��|¶E}�iT������m9{�x\tY{�uywvu�tkz�}�ikm�x`´·}�m|t¸x����Yx���u�tkzez`x�~�w��,x�´¹z`m|t�m|��uy{#uv}º�»~\t��¸m�³�{�uym|t�{#�`¼h i�uy�,}�m9{�i�tku��T�km1i�~\������x�²\m|�½����m�´µ��wH¾ uy}�i�uyt�}�ikm��kx�lU~`uyt»x�´�u�l¢�Ym9��~`}�uy²`m�w�~`t�z\��~`z`m|�|¶¿���k}���x5´µ~`�,uv}iY~`� tkx\}¹�@m#m9t�m�À��kwyx\��m|�]¾ uv}Vikuyt�}Vikm��kx\l¢~`uyt]x�´Mx\�T��m9{�}�Á;x���uym|t�}�m9��w�~`tkz���~�z\m|�|¼

¸m&����m9��m9t�}�m�À��@m|��uylUm9t\}V�!uyt]}�ikm��V�Ym9{�u�~�wyuv°9~�}�uyx\t5x�´Ã�~F²�~�����x`z���~\l¢�#¼ÂÄm��km|lUx�t���}V��~`}�m�ikx�¾±}�x{#x\t���}��V��{#}�~½����x\z\�V~`l��V�Ym9{�u�~�wyuv°|m|��´·x���Ã�~F²F~e����x`z���~\l¢�R´µ��x\lÅ~`t¸m#ÀTu���}�u�tkz»���@m|{#uy~`wvuy°#m9�,´·x\�1������x�Áz���~\l¢�&~`t��Æ~»Ã�~F²�~�ÁN}�x`Á���{�x\l¢�kuywym|�|¼»�k�Ym9{�u�~�wyuv°9~�}�uyx\t¸u���l¢~`tY~�z`m9������u�tkz�~��km|{#wy~\��~`}�uy²`m�~`���Y��x�~`{�i}Vi�~�}¹~`�Y��}V��~\{�}���x�²`m9��}Vikmsx��k}�u�lUuv°9~�}�uvx�t�����xT{#m|�V�%~\t��5l¢~\��ÇT�%uyl¢�kwym|lUm|t�}V~�}�uyx\t5�km#}V~�uywy�|¼%�,���%m�À��Ym9��Áu�lUm|t�}��%��i�x�¾=}Vi�~�}%����x\z\�V~`l��V�@m|{�u�~�wyuy°|~�}�uvx�t�����x�²�u��km9�Q~�´·x\�Y��ÁN}�u�lUm|�Q�V�Ym|m|���Y��x�´�~`t�uyl¢~�z\m�Á;ÈYwy}�m|��u�tkz�Y��x\z\�V~`l�¼ÊÉ ~`��m|�&x�t�}�i�m|��m%m#Àk�@m|��u�l1m9t�}��|¶9¾!m!uy�km9t�}�uv´·�&x\�k}�uylUuy°|~�}�uvx�t��x�´Yx��T��m|{#}�ÁNx\��uvm9t\}�m|�&����x`z���~\l¢�}Vi�~�}s{#~`t½�@m�{|~`�V��uym|��x\��}R����~\�k}�x�lU~`}�u�{�����x`z���~\lË���@m|{#uy~`wvuy°|~`}�uyx\tʼ!¸m1~`��z\��m&}�i�~`}R����x`z\�V~`l����@m�Á{#uy~`wvuy°|~`}�uyx\t�u��¹����m�´µ�kwÊu�t�}Vikm,ÈYm#w��5x`´��x�´·}º¾¹~`��mR{�x�lU�@x\t�m|t�}��|¶k~�wywvx�¾ u�tkz1~1z`m9tkm|��u�{R{�x�l¢�Yx�tkm|t�}!}�x��Ym�V�@m|{�u�~�wyuy°#m|�]}�x�~��V�Ym9{�uvÈ@{�{�x�tTÈYz\�Y��~`}�uyx\tʼÌeÍ�οÏVÐ�Ñ ©�ÒH§`¬ Ã\~F²�~�¶\����x\z\�V~`l��V�@m|{�u�~�wyuy°|~�}�uvx�tʶ�x��T��m|{#}�ÁNx\��uvm9t\}�m|�¢����x`z���~\lUlUu�tkzY¶���x�´·}º¾¹~`��m {�x�lU�@x�Át�m|t�}��

ÓÕÔÊÖ�×NØ|Ù¹Ö ÚHÛy×NÜNÝ�Þ

ß�à9áãâ�ä¿å�æ7çRáãâ�â;èFéFé�å�æ·ê;ë�ì�áãísé�îaæ·êHï�ðsñÊòHóTó@ô

Unite de recherche INRIA RennesIRISA, Campus universitaire de Beaulieu, 35042 RENNES Cedex (France)

Telephone : 02 99 84 71 00 - International : +33 2 99 84 71 00Telecopie : 02 99 84 71 71 - International : +33 2 99 84 71 71

Page 5: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

� � ��Ë"#�.�E��� �!����"#���E���H����'(�����H���2���H�����5� ]������0���1���2� � * ��+,�

��� §�� � ¬ � ~]�V�Yr9{�u�~�wyuy�V~�}�uvx�t�~\�k}�x�lU~`}�u��T�kmU��m¢�Y��x\z\�V~`l¢lUm��Ym9��lUm|}���mUz\r|tkr9��m9�s~\�k}�x�l¢~�}�u��T�km�ÁlUm9t\}��km9�¢wvx\z`u�{�uym#w��Ux\�k}�uylUu���r9���Ä��~\��}�uy����me{#x\l¢�@x\�V~`t�}��Uz`r9tkr|��u�����m|�|¼ ��t={�m|wy~Y¶�m#wywym»�Ym9��lUm#}��km��m|{#x\t�{#uvwyuym|�1wvm9�1x��T��m|{#}�uv´µ�Ux\�@x\��r|�U�kmez`r|t�r|��uy{#uv}�r]m|}U��� m�³�{|~`{�uy}�r\¼ � � �k}�uvwyuy}�r½�kme{�m#}�}�me}�m9{�i�tku��T�km�~��r|lUx\t�}���r#m���~\t��¹wvm&�kx�l¢~�u�tkm&�km|�¹w�~`tkz�~�z\m|�%uyl¢�@r|�V~�}�uv´µ�|¶�lU~`uy� {#m#wywvm#ÁN{#u�t�� ~U�Y~`�!m|t�{#x\��msr|}�r&r|}����kuyr#m�Y~`t��¹wym��kx\l¢~`uytkm&�km9�¹wy~\tkz\~`z`m9��x���uym|t�}�r9�¹x\�T��m|}��|¼

��~`t��]{�m|}5~`��}�u�{�wym`¶�tkx���������r|��m|t�}�x\t����Ytkm»m�À��@r|��uylUm9t\}V~�}�uvx�t±��~`t���wy~ �V�@r|{�u�~�wyu���~`}�uyx\t �km�����x�Áz���~\l¢l1m9�RÃ�~F²�~�¼��sx\���,lUx\t�}���x\t��s�T��� uywHm|��}s�@x\�V��u��kwym1�kmU{�x\tY��}V���ku���m���t��V�@r|{�u�~�wyu���m9���R�@x\���,Ã�~F²F~���Y~`��}�u��H��� ��t¢�V�Yr9{�u�~�wyuy��m|�Y�H�@x\�Y�X����x\z\�V~`l¢lUm|�X�Æm|}Q��� ��t1{#x\l¢�kuywy~`}�m9���XÃ\~F²�~s²`m9���Q�s¼���~`t��Xt�x`}���m ~`�TÁ�Y��xk{�ikm\¶`w�~����@r|{#uy~`wvu��V~�}�uyx\tUm9��}!{�x\t�}V���\wvr|m ²�u�~���t�mR~`���Y��xk{�ikm��kr9{�w�~`�V~�}�uv²\m�����u@�@m|�Vl1m|}%��� ~`�Y��}V��~`uy��m wvm�Y��xk{�m9���V������ x��k}�u�lUuy�V~�}�uvx�t&m#}H�km¹{#~`{�i�m|��wym|�H�kr|}�~�uyw���km!lUuy��m%m9t&xTm|�k²k��m`¼X�T���wy~s��~`��m%�km!tkx\�r#}V���km9�#¶t�x\���,~F²`x�t��Ru��km9t\}�u È@r1wym|�,x\��}�u�l1u��V~�}�uyx\tY�s�km¢����x`z���~\lUlUm9��x\�k��m#}��,�T�kuQ�@m|�k²\m|t�}��|}���m1��r|~`wvu���r|m|�,��~`��V�@r|{�u�~�wyu���~`}�uyx\t½�kmU����x\z\�V~`l¢lUm|�|¼���tÄ��~`��}�u�{#�kwyuym|�|¶Btkx����,~F²`x\tY� x\�k}�m|tT�»��t»´µ~`{#}�m|�Y�s��� ~`{|{�r|wvr9��~`}�uyx\t��m��T��~`}���m&����� �Ytkm�~`����wvu�{#~`}�uyx\t��km�ÈYwy}��V~�z`m���� uyl¢~`z`m`¼

�%m9�U��r|�V�kwy}�~`}���t�x\���U�Ym9��lUm|}�}�m9t�}¢��� ~�³��VlUm|�1����m]w�~��V�Yr9{�u�~�wyuy�V~�}�uvx�tÆ�kme����x\z\�V~`l¢lUm|�&m9��}¢��tkm}�m|{�i�t�uy�T�km�����x\lUm#}�}�m9����m¢�@x\����wym��kx\l¢~�u�tkm¢�km|�&{#x\l¢�@x\�V~`t�}��,wyx`z`u�{�uym#w����uvwXm9��}&�kr9��x���l¢~`uy�,�Yx�����u��kwvm��� x��k}�u�lUuy��m|� ��te{#x\l¢�Yx���~\t�}%x��T��m|{#} z`r|t�r|��uy�T�km��¢��te{�x\t�}�m�Àk}�m&��� �k}�uywyuy�V~�}�uvx�t���x\t�tkr\¼��Ñ ¨9§ Ï «�� � ¬ Ã\~F²�~�¶F�V�Yr9{�u�~�wyuy�V~�}�uvx�t,��m�����x`z\�V~`l¢lUm|�|¶|�Y��x\z\�V~`l¢l¢~�}�uyx\tRx\��uvm9t�}�r#m�x\�T��m|}#¶F{�x\l¢�@x\�V~`t�}��wyx`z\uy{#uvm|wy�

Page 6: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

������������ ������������������������ ����!"�$#%���&����'(�*),+���-��/.0��213����4� �

5 6 '���H��e�5�������'

­ wv}Vikx\��z\i=uyt�uv}�uy~`wvwy�=��m|��uvz�tkm|� ´·x\��m|l��@m|�Y�km|�±���k��}�m|l¢��~`tY�=l¢~\��Ç`m#}�m9� ~`��~�w�~`tkz���~�z\m�´·x\��¾!m|�TÁ�Y~`��m|�5�Y��x\z\�V~`l¢lUuytkz@¶�Ã�~F²�~�u��¹uytY{#��m|~`��u�tkz`wy�¢z\~�u�tku�tkz1~\{#{#m|�k}V~`t�{#m,~\�!~1z`m9tkm|�V~�wvÁº�����V�Yx���mswy~\tkz\��~`z`m\¼h i�m]x��T��m|{#}�ÁNx\��uvm9t\}�m|� �Y~`�V~`�kuyz\l�i�~\�1¾!m#wywvÁN��m|{#x`z\t�uv°|m|�Æ~`��²F~\t�}�~�z\m|��´·x\�¢~`����wvu�{#~`}�uyx\t ��m|��uvz�tʶ�~`tY�lUx���m,���@m|{#u È@{|~�wywv�¢´·x��¹����x\z\�V~`l ��}��V��{�}V����u�tkz@¼87º} l¢~`Ç`m|�!uv}¹�@x\�V��u��kwyms}�x¢��m|{�x�l¢�Yx���m�~`t]~`���kwyu�{#~�}�uvx�tu�t�}�x&¾!m#wyw Áº�km#È@tkm|��¶\z\m|tkm9��u�{ {�x�lU�@x\t�m|t�}��|¶\{#wvx���m|wv�U{�x\�V��m|�V�Yx�t��ku�tkzs}�x�}�i�mR��}V���Y{�}��Y��m�x`´Ê}�ikmRlUxk�km|wvm9��Y��x��kwvm9l�¼eh i�uy�1��}V����{#}�����u�tkz½wvm9~`����}�x�~»tT��l1�Ym9��x`´¹u�l¢�Yx���}V~`t�}���x�´·}º¾¹~`��m¢m|tkz\uytkm|m|��uyt�z½uyl¢����x�²`m#ÁlUm9t\}V�R��m#z�~`�V�kuyt�z�lU~`uyt�}V~�u�t�~`�kuywyuv}º�e~`t��½��m�Áº���V~`�kuywyuv}º�]x�´�{�xk�km\¼:9Rx�¾!m#²\m|�|¶�}�i�m|��m1~`��²F~\t�}�~�z\m|� x`´·}�m9t}V��~\t���wy~`}�m,uyt�}�x�~Uwyx\�V�!uyte�@m|��´·x\�VlU~\t�{�m\¼

h ikmU{�x�t<;Yu�{�}s�@m#}º¾!m#m9t½��x`´·}º¾!~\��m&z\m|tkm9��~`wvuy}º�]~\t��»�@m|��´·x\�Vl¢~`t�{#m�i�~`�,�Ym|m|t»��m|{#x`z�tkuv°|m|��u�t»~`��m|~\��V��{�i1~`�Hx\�@m|�V~�}�uytkz����T��}�m9l¢�>= ?�@�~\t���z���~\��iku�{#�>= ¡9£�@N¼Hh iku��X{�x�t<;Yu�{�}Mu��H�@m#u�tkz�u�t�{#��m|~\��u�tkz`wy�&~`���Y��m9����m|�ʶ¾ uy}�i ����{|{�m9���|¶H�Y��u�tkz½´·x���l¢��x`´0����21��2���A�B����� ����!"�$#%���&����'C=v¡|��@;¼½����x`z���~\l �V�Ym9{�u�~�wyuv°9~�}�uvx�tÆ~`��~\�k}���~z\m|tkm9��u�{Q����x`z���~\lg{#x\l¢�Yx�tkm|t�}}�xs~�z`uy²`m|t�����~`z`m�{#x\t�}�m#Àk}#¼h i�uy�H~`���Y��x�~`{�i�{#~\t&wvm9~`��}�xs{�x�t���uy�km9��~\�kwym�@m|��´·x\�Vl¢~`t�{#mMz\~�u�t��|¶9���sm#wyuylUu�t�~�}�uytkz¹´µ��x\lg}�ikm�z`m|t�m|�V~�w�{�xk�km%~�wyw`~`�V�Ym9{�}V��tkx`}��m|wy~`}�m|�,}�x }�i�~`}E����m|{�u���m{#x\t�}�m#Àk}#¼

�T�@m|{#uy~`wvuy°|~`}�uyx\t¢i�~\�X�Ym|m|t¢�Ym9��´·x���lUm9�1l¢~`tT��~`wvwy�����1~\��~`��}�u�tkz&{#��uv}�uy{|~�w�����x`z���~\l/{�x\l¢�@x\tkm9t�}��M}�x}Vikm1lUx���}R{#x\l¢lUx\t½���V~�z\m���~�}�}�m9��t��4= ��¶¿n3?k¶Bn��D@N¼���~`tT��~`w�V�Ym9{�u�~�wyuv°9~�}�uvx�t]u�l¢����x�²`m|�R�Ym9��´·x���l¢~`tY{�m`¶�Y�k}�i�~`�5~�wvu�lUuv}�m|�±~`�Y�kwvu�{#~\�kuywvuy}º�`¶¹�Ym9{#~\����me}Vikm�����xk{�m|�V�¢u���m|�V��x���Áº����x\tkm\¼ �Rm|{�m9t�}�wy�`¶¹}�xTx`w���i�~F²\m�@m#m9t»�km|²`m#wyx\�@m|�e}�x]~\�k}�x�lU~`}�u�{#~`wvwy���V�@m|{�u�~�wyuy°#m�����x`z���~\l¢�,= ¡\¶¿nT¶¿��¶���¶¿£�¶H¡D?k¶H¡F�%@;¼ ­ ���kwyuy{|~�}�uvx�t��Rx`´�Y��x\z\�V~`l ���@m|{#uy~`wvuy°|~`}�uyx\t�~\��m,m|lUm|��z`u�tkz1uyt]~1tT��l1�Ym9�%x`´�ÈYm|wy���|¶ku�t�{�w����ku�tkz¢��{#uvm9t\}�u ÈB{s{#xT��mE= ��¶T¤Y¶k£�@;¶���k��}�m|l¢�M��x`´·}º¾!~\��m�=v¡|�k¶`n\n%@;¶\~`t��U{�x�lU�Y�k}�m9�Mz\�V~`��iku�{#�0=v¡#¤�@N¶�¾ uy}�iU²`m9�����Y��x�l1u���uytkz,��m9����wv}V�#¼F9Rx�¾!m#²\m|�|¶~\�k}�x�l¢~�}�u�{»�V�Ym9{�u�~�wyuv°9~�}�uvx�t x`´�x\�T��m9{�}�Á;x���uym|t�}�m9� ����x\z\�V~`l¢����m|l¢~�u�t��5�Ytkuyt�²\m|��}�uyz\~�}�m|�ʼ psuy²`m9t±}�ikmm#Àkuy��}�u�tkze��~`��m1x`´%m#Àk�@m|��uym|t�{#m1¾ uy}�iÄuyl¢�@m|�V~�}�uv²\mUw�~`t�z\��~`z`m|�|¶B¾%m�~�u�l�~�}&�Vikx�¾ u�tkz]}Vi�~�}&~�����x`z\�V~`l�V�@m|{�u�~�wyuy°#m|� {|~`te�@m�����m9��}�x�x\��}�u�l1uy°#m�x\�T��m9{�}�ÁNx\��uym|t�}�m9�5����x`z���~\lU�|¶k���@m|{#u ÈB{#~�wywy�]����x`z���~\lU�!¾���uv}�}�m9tu�teÃ\~F²�~Y¼

�,m#²\m#wyx\�ku�tkzÆ~`t=~`�k}�x\l¢~�}�uy{e�V�Ym9{�u�~�wyuv°|m|�1´·x\��~���m|~`wvu���}�uy{]u�lU�@m|�V~�}�uv²\mewy~\tkz\��~`z`m]uy��~¸wyx\tkz�~`tY�{#x\l¢�kwym�À5}V~`�VÇB¼H�s~�}�i�m|�¹}�iY~`t��km|��uvz�tku�tkz�~UÃ�~F²�~1�V�@m|{�u�~�wyuy°#m|�%´µ��x\lË�V{#�V~�}V{�iʶT¾%m&~\��m,m�À��@m|��uylUm|t�}�uytkz¾ uy}�i¢~\tU~\������x\~\{�i1��~\��m9��x�tU}�ikmRhm|l¢�@xG= £�@@�V�Ym9{�u�~�wyuv°|m|�H´·x\�!� ����x`z���~\l¢�#¶�{#x\���kwym|�U¾ uy}�i�~&��wvuyz\i�}�wv�lUxk�kuvÈYm|��²\m|�V��uyx\t5x�´}Vikm,9s~\��u��V��~1x\�k}�uylUuy°#u�tkz�Ã�~F²F~�Á;}�x�Á��={�x�lU��uvwym|�,= n��k¶Yn�¤�@N¼

7�t¸}�i�uy�1��~`�@m|�|¶E¾!m�����m9��m9t�}�����m|wvu�lUuytY~`���½m�À��Ym9��u�lUm|t�}���uyt��V�Ym9{�u�~�wyuv°|uytkz½Ã�~F²�~��Y��x\z\�V~`l¢�#¼5�,���{#x\t�}���u����k}�uyx\tY�!~\��m&~\�!´·x`wywvx�¾��DH

I ÂÄm�uy�km9t�}�uv´·�,�V�Ym9{�u�~�wyuv°9~�}�uvx�tR}V��~\t���´·x���l¢~`}�uyx\t��¿}Vi�~�}�~\��mQ��~\��}�uy{|�kw�~`��wv������m�´µ��w`u�t�x\�T��m9{�}�ÁNx\��uym|t�}�m9�wy~\tkz\�Y~�z`m9�#¼�h ikm9��m�}��V~`t���´·x\�Vl¢~�}�uvx�t���~\��m]uyl¢�kwym|lUm|t�}�m|� ¾ uy}�i�uyt=~���uyt�z`wym`¶���t�u ´·x���lÅ´µ�V~`lUm�Á¾%x���ÇB¼

I ÂÄm�uvwywy�Y��}V��~`}�m�x\��� ~\������x\~\{�i�¾ uy}�ie~�{�x�t�{#��m#}�m,m#À�~`l¢�kwym`¶�~¢z\�V~`�Yikuy{|~�wBÈYwy}�m9��u�tkz�~`�Y�kwvu�{#~`}�uyx\tʶ}��V~`t���´·x\�VlUuyt�z1}Vikm&z`m9tkm|��uy{�{#xT��m,u�t�}�x�~U´·x\�VlË{#wvx���m�}�x�i�~\t��TÁNx\�k}�uylUuy°#m9�]{#xT��m`¼

I ÂÄm1~`���kwy�5}Vikm��km9{�w�~`�V~�}�uv²\m�~\������x\~\{�i�}�x��V�@m|{�u�~�wyuy°|~�}�uvx�te����x��Yx���m9�]���KJXx`w�~`t��V{�ikuL� �0��!$MN= n���@}�x��V�Ym9{�uv´·�5}Vikm����@m|{#uy~`wvuy°|~`}�uyx\t]��}V��~`}�m#z\uvm9�!uyte~¢ikuyz\iTÁNwvm|²`m|w�lU~\t�tkm9�#¼

I ÂÄm%�km|lUx\tY��}V��~`}�mX}�iY~�}Ê}�i�m�{�ikx`u�{�mXx`´��Ä~\�Ê~¹}�~`��z`m|}Êwy~\tkz\�Y~�z`mH´·x������@m|{#uy~`wvuy°#u�tkz Ã�~F²F~¹����x`z���~\l¢�l¢~`Ç�m9�Quy}%�@x\�V��u��kwym�}�xU~`���Y��m9���Xx��k}�u�lUuv°9~�}�uvx�t���~`}%~�wywYwym#²\m#w��X´µ��x\l�}�ikm,��x����V{�mR����x`z���~\l/}�x1}�ikm

O8O íQPSRUT�V

Page 7: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

¤ �8!"�U���4.:� 1�� � ���<��!"� #���+���! �����M�F������! !�� ���Q���U!$�S��� ��'Q� � !��>��' ��0� ! !$�S��� ��! !$� �

���YtTÁ;}�uylUm%m|t�²Tuy��x\t�lUm9t\}|¼�¸m%~�w���x�~`������m|�V�Ê}Vikm%����x\��wvm9lgx`´�m�À�����m|�V��u�tkz }�i�m���m9����wv}x�´�����x`z\�V~`l���@m|{#uy~`wvuy°|~`}�uyx\t�~`� Ã�~F²�~1��x\���V{�m�{�xk�km\¼

I ÂÄm,~`��z\�km }Vi�~�}%����x\z\�V~`l��V�@m|{�u�~�wyuy°|~�}�uvx�tUuy�%~�Ç�m|�U~\������x\~`{�i1}�x�uyl¢����x�²Tuytkz&}VikmR�@m|��´·x\�Vl¢~`t�{#mx�´Qz\m|tkm9��u�{���x�´·}º¾¹~`��m�{�x\l¢�@x\tkm9t�}��|¶B���½~`��~\�k}�u�tkz�}Vikm1{#xk�km�x`´�~�{�x�lU�@x\t�m|t�}R}�x5uy}��,{�x\tkÈYz\�TÁ��~`}�uyx\tʼ

h iku��M��~`�@m|�u��Ex���z�~`tkuy°#m9�&~`�E´·x`wywvx�¾��DH¿È@�V��}|¶��Tm|{�}�uvx�t1n�uytT´·x���l¢~`wvwy�&�km|lUx\tY��}V��~`}�m|����@m|{#uy~`wvuy°|~`}�uyx\tʼh i�m|tʶ@��m9{�}�uvx�t��Uu�t�}���xT�Y��{�m9�%x����¹m�À�~\lU��wvm&����x`z���~\l]¼Mh iku�� ����x`z\�V~`l u�� ���@m|{#uy~`wvuy°#m9�5u�t»��m|{#}�uyx\t]¤Y¶¾�i�uy{�i���m�È@tkm9��}Vikm�~`{�}V��~�w¿����xk{�m|�V�Qx`´E�Ym9��´·x���lUu�tkz1�V�@m|{�u�~�wyuy°|~�}�uvx�t¢x�´EÃ�~F²�~�����x`z\�V~`l¢�|¼ ­ ´·}�m|��¾¹~`�V���#¶�Tm|{�}�uvx�t����km|�V{#��uy�@m|�Q}�ikm¹´µ��tY{�}�uyx\tY~�wyuv}º�Ux�´¿}�ikms��}V~�z`m9�1�Y��x\z\�V~`l/�V�Ym9{�u�~�wyuv°9~�}�uyx\t¢����xk{�m9���Mu�l¢�kwvm9lUm|tTÁ}�m|�Æ���¸x\�����Y��x\}�x`}º�k�@m`¼»��m|{#}�uyx\t(?»��m|�V{#��uy�@m|����m#w�~�}�m|��¾!x\�VÇB¼e��m9{�}�uyx\t �½�kuy�V{#�Y����m|��´µ��}�����m�¾!x\�VÇ@¼�Mu�t�~�wywy�`¶@��m9{�}�uyx\te£¢{�x�t�{�w����km9�#¼

� � �����¢0��H����'5

�%��x\z\�V~`l �V�@m|{�u�~�wyuy°|~�}�uvx�t�i�~`�!�@m#m|t�m�À��kwyx\��m|�U´·x\�%~�²�~`��uym#}º�Ux�´�w�~`tkz���~�z\m|�Q�V~`tkz\uyt�z�´µ��x�l ´µ�Yt�{�}�uvx�t�~�w}�x&wvx\z`u�{¹wy~\tkz\�Y~�z`m9�#¼ 7�t���m9{�m|t�}M�`m9~`�V�#¶\����x\z\�V~`l/�V�Ym9{�u�~�wyuv°|m|�V�H´·x\�Q��m|~`w Áº��uv°|m|�1wy~\tkz\��~`z`m9�wyu�Ç�m��Yx���}V��~\t= ��@s~\t��=� =v¡�¶Q£�@Ri�~F²\m��@m#m9t ��m#²`m|wvx��Ym9�ʼ=��m|~`w Áº��uy°#m9� ~\���kwyuy{|~�}�uyx\tY�1x`´,����x`z���~\l����@m|{#uy~`wvuy°#m9���U}�x²�~\��uyx\���Ê~\��m9~`�¿wyuyÇ`mQ���k��}�m9lU�Ê��x�´·}º¾¹~`��m = n\n%@�~\t�����{#uvm9t�}�uvÈ@{X{�x�lU�Y�k}�u�tkz = ��@\i�~F²\mQ{�wym|~\��wy�R�km9l1x�t���}��V~�}�m9�}Vi�~�}¹~`��}�x\l¢~`}�u�{s����x`z���~\l��V�@m|{�u�~�wyuy°|~�}�uvx�t�u��!~U��m|~�wyu���}�uy{s~`t��]m��¿m|{#}�uy²`m,}�xTx`w¿}�x¢~�wywyx�¾ ����x\z\�V~`l¢lUm|�V�}�x¢¾���uy}�m/1 �S' �S�U��������x\z\�V~`l¢�%¾ uv}Vikx\�k} wyx\�V�¹x�´Hm�³�{�uym|tY{��`¼

­ wv}Vikx\�kz�i�x��T��m|{#}�ÁNx\��uvm9t\}�m|�&w�~`t�z\��~`z`m|�Em|t�{#x\���V~�z\mQz`m9tkm|��u�{�uy}º�`¶�~`t���}�iT���Hx��¿m|�Hx����Yx���}V��tkuy}�uym|�E´·x\��V�@m|{�u�~�wyuy°|~�}�uvx�tʶk���@m|{#uy~`wvuy°|~`}�uyx\t�i�~`� ��xU´µ~`� �@m#m9t�lUx���}�wv�5�Ytkm�À��kwyx\��m|�5´·x\�¹}Vikuy�R{�w�~`�V�%x`´Hw�~`t�z\��~`z`m|�|¼

7�t }�iku��e��m9{�}�uvx�tʶs����x`z���~\l �V�@m|{�u�~�wyuy°|~�}�uvx�t±u��]u�t�}���xk����{�m9�ʼ®Â¸m�~`wy��x �Y��m9��m9t\}�~ ��m|{�w�~`�V~�}�uv²\m~\������x\~\{�i�}�x��V�Ym9{�uv´·�Tuytkz�ikx�¾d~¢����x\z\�V~`l®�Vikx\��wy���Ym��V�@m|{�u�~�wyuy°#m|��¼

��� � !#"%$'&'")(+* ,.-0/�12 (4352 6(�7%2 $987�t�}V�kuv}�uv²\m#wy�`¶T����x`z\�V~`l����@m|{#uy~`wvuy°|~`}�uyx\t¢u���~`uylUm|�5~�}�u�t���}�~\t\}�uy~`}�u�tkz�~��Y��x\z\�V~`l�¾ uy}�i5��m9���@m|{#}�}�xU��x�lUmx`´Xuv}V�R��~\��~\l1m|}�m9���|¼�ɹ�e��m9��}V��u�{�}�uytkz�~�z\m|tkm9��u�{&����x`z���~\l®}�x�~��V�@m|{�uvÈ@{��Y��~`z`m�{�x�t�}�m�Àk}|¶Y¾!m�ikx\�@m�}�xm9t�~`��wvm�´µ����}�i�m|��x��k}�u�lUuv°9~�}�uvx�tʼ9�@x\��~\t]x��T��m|{#}�ÁNx\��uvm9t�}�m|������x`z���~\l]¶k}Viku��R~`�Y����x�~`{�i�{#~\t��@m�~\���kwyuvm9�}�x�}�i�m1lUm#}Vikxk����x`´�~�{�w�~`�V�#¼ ­ l1m|}�ikxk�½{|~`t½�@m1�V�Ym9{�u�~�wyuv°|m|�e¾ uy}�i»��m|�V�Ym9{�}�}�x5��~\��}V��x�´Xuy}��,{#~`wvwyuyt�z{#x\t�}�m#Àk}Xuyt�{#wy�Y�kuyt�z���~`�V~`lUm#}�m|�V�#¶�ÈYm#w����Xx`´¿}Vikm�m9t�{�wyx\��uyt�z,x��T��m|{#}#¶�~`t��¢��}�~�}�uy{ ÈYm#w����Xx`´Bx\}�ikm9�Q{�w�~`�V��m9�#¼�@x\�Hm�À�~\lU��wvm\¶�}�ikm ��~\��~\lUm#}�m9���x�´¿~�l1m|}�ikxk�Ul¢~F����m9����m|��m|t�}Ex��k}�uyx\t��M}�x&�Ym ~`tY~�wy��°|m|��}�x&�km#}�m|�VlUuytkm~��Y~`��}�u�{#�kw�~`�¹}V~`�VÇ�}�x��@m��@m|��´·x\�VlUm|�ʼ!�k�Ym9{�u�~�wyuv°9~�}�uyx\te{|~`t�}º�k�kuy{|~�wywv�]m#wyuylUu�t�~�}�m&}�ikm�uyt�}�m9���Y��m|}�~�}�uvx�tx`´H�V��{�ie{�x�t\}�m�Àk}��Y~�w¿uytk´·x\�VlU~`}�uyx\tʼ

�,tkm1~`������x\~\{�i5}�x5����x`z���~\lË���@m|{#uy~`wvuy°|~`}�uyx\t�u�� �Q���U������! �S-���!"� ���&����'5¾�iku�{�i½�@m|��´·x\�VlU�R~�z`z���m9����uy²`mu�t�}�m9������xk{�m9�����V~�w{#x\t���}�~\t�}s����x\��~`z\~`}�uyx\t;:µx`´%~�wywX��~�}V~�}º�k�@m|�=<a¼&�X~`��}�u�~�wHm#²�~�w���~`}�uyx\t���uv²Tu��km|�s²�~�w��km|�u�t�}�x�}º¾!x�{#~`}�m#z\x\��uvm9� H>�U��������� ²�~�w��km|�R~`��m,}Vikx\��m&}�iY~�}R~\��m�~F²�~�uyw�~`�kwym&������uytkz�}Vikm��V�Ym9{�u�~�wyuv°9~�}�uvx�t]����x�Á{#m|�V�#¶Q�>�' ���E���M²�~�w��km9�~\��m%}�ikx���m%}�i�~`}H~\��m!tkx`}M~F²�~�uywy~\�kwvm%��t�}�uywT~�´·}�m9�H�V�@m|{�u�~�wyuy°|~�}�uvx�tʼM�%x�l¢���k}�~`}�uyx\t��}Vi�~�}%x\tkwy�¢�km|�@m|t���x\t���}�~�}�uy{�²F~`wy��m|��~\��mR}�ikm9lU��m#wy²`m9���V~�u��U}�x1�@ms��}�~`}�u�{�¶T~`t���~\��m��@m|��´·x\�VlUm|�����¢}�ikm

?A@FOB?DC

Page 8: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

������������ ������������������������ ����!"�$#%���&����'(�*),+���-��/.0��213����4� �

�V�@m|{�u�~�wyuy°#m|�|¼�h ikm��k�kt�~\l1u�{¢{�x�lU�Y�k}�~`}�uyx\t��|¶E}Vi�~�}�l¢~F���km9�Ym9t��¸x\t��k�kt�~\l1u�{U²�~�w��km|�|¶~\��m���m|{�x�t���Á}V���Y{�}�m9�e~`t���{�x�t���}�uv}V�k}�m&}Vikm��V�Ym9{�u�~�wyuv°|m|������x\z\�V~`l�¼

�X~`��}�u�~�wm#²�~�w���~`}�uyx\t½~�z\z\��m|�V��uy²`m|wv�]����x���~�z�~�}�m|� u�t����k}s²�~�w��km|�s���@m|{#u ÈYm9�»���e}�ikmU����m9�#¶¿~`�R¾%m|wvwM~`�{#x\t���}�~\t�}��Mm�À��kwyu�{�uy}XuytU}�i�m�����x\z\�V~`l�¶�}�x&�@m|��´·x\�Vl�{�x�t���}�~`t�}M´·x\wy�ku�tkz@¼�XÀ�~\lU��wvm9�Mx�´¿}��V~`t���´·x\�Vl¢~�}�uyx\tY�u�t�{#wy����m&wvxTx\�e��tY��x\wvwyuyt�z¢~\t��e��x�lUm�´·x\�VlU�¹x`´M��}���m|t�z`}�ie��m|���Y{�}�uyx\t�¼Q�X~`��}�u�~�wÊm#²�~`wy��~`}�uyx\t�u����ku��Bm9��m9t\}´µ��x\l x\�V�ku�t�~`����x��k}�u�lUuv°9~�}�uyx\tUu�t�}�iY~�}�tkx1��m9��x�����{#m¹wvu�lUuv}V��~`��m u�lU�@x\��m|�¢x�t¢}�ikms{�x\l¢����}�~�}�uvx�t��Q}Vi�~�}~\��m��@m|��´·x\�VlUm|��������u�tkz»}��V~`tY��´·x���l¢~�}�uvx�tʼ5 i�uvwym5}Vikuy��m|t�~\�kwym|��}V��~\t���´·x\�VlU~`}�uyx\t���}Vi�~�}1~`��m�x\�k}�x`´}Vikms�V{�x��Ymsx�´E~\t�x\�V�ku�t�~`���1{#x\l¢�kuywvm9�#¶�uv}!�kxTm|�%uyl¢�kwy�¢}�i�~`}%}Vikms�Y~`��}�u�~�wYm|²�~�w���~�}�uvx�t�����xT{#m|�V�Ql��Y��}¹�Ymz��ku��km|�����5}�i�m��Y��m9�#¼

h ikmU��m|}�x�´X²�~�w��km9��}�x����@m|{#uy~`wvuy°#m�x�²`m|� l¢~F�e�Ym9{�x�l1m�z\�V~`����~`wvwy�]~F²�~`uvw�~`�kwym�������u�tkz5{�x�l¢�kuvw�~�}�uvx�t~\t���m#Àkm|{#��}�uyx\tʼ ­ �M~s��m|�V�kwy}#¶`�Y��x\z\�V~`l¢��l¢~F��tkm#m9��}�x,�@m ���@m|{#uy~`wvuy°#m9���@x`}�i1~�}M{�x�lU��uvwym%}�uylUm ~`tY��~�}�V��t�}�uylUm\¼ 7�t�´µ~`{#}#¶k}Vikm,�Y~`��}�u�~�wBm#²�~�w���~�}�x\�%hEm9lU�@xUx��¿m|�V�%�@x`}Vi5��}��V~�}�m|z`uym|�%uyt]~���t�u ´·x���l®~\������x\~`{�i�¼7º}V�¢����tkÁ;}�uylUm½���@m|{#uy~`wvuy°|~`}�uyx\t {#~`�Y~`�kuywvuy}º�Æi�~`�¢�Vikx�¾�t }�xÆ����xk���Y{�m�m�³�{�uym|t�}¢����x\z\�V~`l¢�U~`t�� }�xÆ�Ym~\lUx\��}�uy°#m|�¢u�t5~�´·m#¾ �V��t��!x`´�}�ikm����@m|{#uy~`wvuy°#m9�5����x`z���~\l = ��@N¼��%x\t�{|��m|}�m#wy�`¶�}�i�m|��mR´·m9~�}��Y��m9��¾ u��km|t5}�ikmx����@x\��}���tkuy}�uym|�¹}�x¢m#wyuylUu�t�~�}�m&z`m|t�m|��uy{#uv}º��u�te����x\z\�V~`l¢�|¼

h ikm&����xk{�m9���%x�´�V�@m|{�u�~�wyuy°#u�tkz1��~\��}V�!x�´~1wy~\��z\ms����x`z���~\l�¶\~`tY��}�i�m|t���m|x\��z\~`t�uv°|uytkz&}Vikm&����x`z\�V~`l}�x�����m�}Vikm&���@m|{#uy~`wvuy°#m9�]{#xT��m,u�� {�x�l¢�kwvm#ÀʼF7�t]}�i�m���x`´·}º¾!~\��m,�km#²\m#wyx\��lUm|t�} ����xk{�m|�V�|¶T~U����x`z���~\lUlUm9�¾!x\��wy� �V~�}�i�m|���V�Ym9{�uv´·� }Vikm�²�~\��uyx\�����V{�m9t�~`��uyx\�U´·x\�]���@m|{#uy~`wvuy°#u�tkz ~ �Y��x\z\�V~`l u�t���}�m|~\�=x�´��ku���m9{�}�wy�u�t�²`x�Ç\u�tkzÄ}�ikm½�V�Ym9{�u�~�wyuv°9~�}�uyx\t m|tkz\uytkm\¼ h iT���U¾!m�tkm|m|�=~�w�~`t�z\��~`z`m�´·x��¢�km|{#wy~\��u�tkzÄ�V�@m|{�u�~�wyuy°|~�}�uvx�tx����@x\��}���tkuy}�uym|�|¼

��� � ��� /�13 (�")( 7%2��9/ � - - "%$'(41�� 7 $ ! "%$9&'"%(4* ,�-0/ 12 (43 2 6( 7%2 $98JXx\wy~\t��V{�iku � �8��! MQ= n���@k����m|��m|t�}~s�km|{#wy~\��~`}�uy²`mQ~`�Y����x�~`{�i,´·x���V�Ym9{�uv´·�Tuytkz,���@m|{#uy~`wvuy°|~`}�uyx\t�x����Yx���}V��tkuy}�uym|�u�t½x��T��m|{#}�ÁNx\��uvm9t\}�m|�½����x`z���~\l¢�#¼,�k�Ym9{�u�~�wyuv°9~�}�uyx\tex����@x\��}���tkuy}�uym|�,~`��m1��m|{�w�~`��m|�½��m|�Y~`�V~�}�m|wv�]´µ��x\l }�ikm�Y��x\z\�V~`l�¶Fuyt1}�ikm!´·x���l/x`´ �B����� ����!"�$#%���&����' � !$���2� �S��¼H��x\��m!�V�Ym9{�uvÈ@{#~`wvwy�`¶\~s�V�Ym9{�u�~�wyuv°9~�}�uvx�t�{�w�~`�V�M�km�ÈBtkm|�}Vikm�{�x�t��kuy}�uyx\t�� �Yt��km|�¹¾�i�uy{�ie~¢���@m|{#uy~`wvuy°|~`}�uyx\t]��ikx��kw��]xk{|{#��� ~\t��5¾�iY~�} lUm#}�i�xT�Y� }�x��V�Ym9{�u�~�wyuv°|m`¼

� m#}X���Huvwyw�����}V��~`}�m!}�iku��M~`���Y��x�~`{�i&¾ uy}�i1~s��uyl¢�kwym Ã\~F²�~s{�w�~`�V��´·x��H{#x\l¢���k}�uyt�zs}Vikm!�@x�¾!m|�E´µ��t�{�}�uvx�tʶ��uy�V�kw�~F�`m|�5uyt �Muyz\����m¢¡`¼

­ ���V��lUm½}�ikm���� �������� �¸l1m|}�ikxk�=u���uyt�²\x\Ç�m9� ��m|�@m|~`}�m|��wv� ¾ uy}�i±~��V�Ym9{�uvÈ@{em�À��@x\tkm9t�}#¶¹��~F����¶¾ uy}�i�uyt»~5wvxTx��½¾�ikm|��m�x�tkwv��}�i�mU��~\��m1{�i�~`tkz\m|�|¼:7�t½}Vikuy�,��uv}V��~�}�uvx�tʶ@uy},uy�s¾%x���}Vi�¾�ikuvwym�}�x5���@m|{#uy~`wvuy°#m}Vikm����� ��� ���� �¹l1m|}�ikxk��¾ uy}�i&��m|�V�Ym9{�}Ê}�x�}�ikm�z`uy²`m|t,m#Àk�@x\t�m|t�}���¼Hh ikmQ{#x\�V��m9���@x\tY�kuyt�z¹�V�@m|{�u�~�wyuy°|~�}�uvx�t{#wy~\���|¶kt�~`lUm9���������\¶�uy�R�km�È@t�m|�e~`�!´·x\wvwyx�¾��#¼

��� �������� ��� ������� ��� ���� ��� "! � �#�$"% ��&�'�"( �*)�) �,+���� ��� ���� �.-� �/��0�213+

4

h iku����V�Ym9{�u�~�wyuv°9~�}�uvx�t�{#wy~\��� �V�@m|{�uvÈYm9� }�i�~`} }�ikm5���� ��� ���� �UlUm#}�i�xT�e�Vikx\��wy�e�@m����@m|{#uy~`wvuy°#m9�5¾ uy}�i��m|�V�@m|{�}R}�x�}�i�m�²�~�w��km�x`´M}Vikm6��( � ÈYm#w��ʼ¹����x�²�u��ku�tkz�~�²�~�w��km&´·x��7��( � ��m|{�w�~`��m|��uv}R~\�R~���}�~`}�u�{&²�~�w��km`¶~\t��»~`wy��x]�V�Ym9{�uvÈYm|�s}�iY~�}����@m|{#uy~`wvuy°|~`}�uyx\t»{|~`t»�@m�{#~`�V��uvm9�ex\�k}�~�},{�x\l¢�kuywym1}�uylUm`¼�ɹ�»��t���x`wywyuytkz]}�ikmwyxTx\�5uyt�}�i�m8���� �������� ��lUm|}�ikxk�e~`t��]{�x�lU�Y�k}�u�tkz¢}�ikm&²�~`wy�km9�!x�´}Vikm&m�À��@x\tkm9t�}#¶k}�i�m��V�@m|{�u�~�wyuy°|~�}�uvx�t�Y��xk{�m9���!z\m|tkm9��~`}�m|�!}Vikm�´·x`wywvx�¾ u�tkz�lUm#}Vikxk�ʼ

O8O íQPSRUT�V

Page 9: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

? �8!"�U���4.:� 1�� � ���<��!"� #���+���! �����M�F������! !�� ���Q���U!$�S��� ��'Q� � !��>��' ��0� ! !$�S��� ��! !$� �

�"�� ��� #�$"% ��&*'� &� � �� �* �/�� ��( � +# $"% �"& -� �/�� � 1 '��� ��� �"( ��) � + 4 �/������� ��� ���� �.-� �/��0� 1 ' �/��& � �)�� +� $ &�- �/�� ) + ��"��� ��� ��( � + � � 1&�� ����) ��+

& ������&�/ & � � +4

4

�Huyz\�Y��m¢¡3H ­ Ã�~F²�~U{#wy~\���%´·x��¹}�ikm��@x�¾%m9�!´µ��t�{#}�uyx\tʼ

�/������� ��� ���� � - �/��� 1 ' �/�� & � � +&�� �) � � � � ��+&�������&�/ & � � +

4

7N´ tkx½²�~�w��km�¾!m|��m������Y�kwvuym|�¸´·x���}�ikm��"( � ÈYm#w���uyt¸}Vikm5�V�Ym9{�u�~�wyuv°9~�}�uyx\t¸{�w�~`�V�|¶E���@m|{#uy~`wvuy°|~`}�uyx\tľ%x��kw��xk{|{#���Q~`}��V��tU}�u�l1mR¾�ikm|t¢}Vikm ��( � È@m#w��¢uy�%~`�V��uyz\tkm9�1~�²F~`wy��m`¼F7�t¢}�iku���{|~`��m`¶`}VikmR�V�Ym9{�u�~�wyuv°9~�}�uvx�tU{#wy~\���m#À�����m9����m|�!}Vikm��Yx�����u��kuvwyuy}º��}�x��V�Ym9{�u�~�wyuv°|m # $"% ��&�´·x�� ~`t���m�À��@x\tkm9t�}#¼

�T�@m|{#uy~`wvuy°|~`}�uyx\t¸{�w�~`�V��m9��~`��mU����xk{�m9����m|�¸���»}�ikm ������� ����!"�$#%��������' �N!$���2��� ������� ! �S��¶H¾�iku�{�i¸��m#}�m9��ÁlUu�tkm|�Q¾�i�~�}QlUm#}Vikxk���Q�Vikx\��wy�¢�@m����@m|{#uy~`wvuy°#m9�U~\t��U}�x�¾�i�~`}X²F~`wy��m|�|¶\~`�M¾!m#wywY~\�M¾�ikm#}Vikm|�Q�V�@m|{�u�~�wyuy°|~�Á}�uvx�t��Vikx\�kw���xk{#{|���!~�}%{#x\l¢�kuywvms}�u�lUmsx����V��t�}�u�lUm`¼Qh ikm&�T�@m|{�u�~�wyuy°|~�}�uvx�t]�%w�~`�V�¹�%x�lU��uvwym|�%~�w���x�~\�����~�lUm#}Vikxk�»}�x�}�i�mUx���uyz`u�t�~`wH����x`z���~\lË´·x��s��¾ uy}�{�iku�tkze�Ym|}º¾%m|m|t��V�@m|{�u�~�wyuy°#m|��uyl¢�kwym|lUm9t\}V~�}�uvx�t�� :7~`tY�´·x���z\m|tkm9��~`}�u�tkz½}�i�m��V�Ym9{�u�~�wyuv°|m|�Æu�l¢�kwym|lUm|t�}�~`}�uyx\t��U~�}U���YtÆ}�u�lUm]uv´stkm|m|�km9� <a¶�~\t�� �kw�~`{#m|��z\��~\�����}Vi�~�}�~\�k}�x�lU~`}�u�{#~`wvwy��uyt�²`x�Ç�m]}�ikm½lUm#}Vikxk���1´·x\�¢��¾ uy}�{�i�uytkz¸u�lU��wvm9l1m9t�}�~�}�uvx�t��¢¾�ikm9t ~IJF~`wy��m�}Vi�~�}¾¹~`�¹����m|�]´·x�� ���@m|{#uy~`wvuy°|~`}�uyx\t5{�iY~`tkz\m|�|¼

� & � �� � ��$ �� � �"����� � ����� �"/������ $ / -�1 ' � - ��� ��� ��( ��)�) � 1��� ��� � ���� � � ) ��� ����� ����� � ������ � ��-�� ����� ����� 13+

��� � ���� ��� � ���� � � ) ��� ����� ������"/ ��� � ��-�13+

4

­ teuyt�²\xT{|~�}�uvx�t]x`´X}�ikm�x���uyz`u�t�~`wElUm#}�i�xT�eu��R��m|��wy~\{�m|�e���e~`teu�t\²\xk{#~�}�uvx�t5x`´X}�ikmUl1m|}�ikxk�½{|������m|t�}�wv���}�x���m9��uyt�}�ikm � ����� � �!ÈYm#w��ʼMh iku���ÈYm|wy��{#~`t�m#uy}�ikm9�{#x\t�}�~`uyt&}Vikm%�V�@m|{�u�~�wyuy°#m|��l1m|}�ikxk�ʶ�x���}Vikm%x���uyz`u�t�~`w:7z`m9tkm|��uy{�<�uyl¢�kwym|lUm|t�}V~�}�uyx\t�¼

?A@FOB?DC

Page 10: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

������������ ������������������������ ����!"�$#%���&����'(�*),+���-��/.0��213����4� �

� �¢�Ä� �%�#��"���$!������1'������1�2��"��

�,�k��m|{�}�Á;x���uym|t�}�m|������x`z\�V~`l¢��{|~`tÆ�@m]z\uv²\m|tÆ��}��V��{�}V����m5~`t�� z`m|t�m|��uy{#uv}º�¸�\�Æ�@m#u�tkzÄ{#x\l¢�@x\��m|�¸´µ��x\lu�t��kuy²Tuy�Y��~�wQx��T��m|{#}��&}Vi�~�}�uyt�}�m9��~\{�}&}Vi���x��kz\iÄz`m9tkm|��u�{¢uyt�}�m9��´µ~\{�m9�#¼ ­ ��~\tÄm#À�~`l¢�kwym�x�´ ����{�i�~½����x�Áz���~\l�¶k¾%m�����m|��m|t�} ~`t�u�l¢~�z`m�È@wv}�m|��uytkz�����x`z���~\l�¼ 9Rm|��m`¶@l��kwy}�u��kwym�wy~F�\m|�V�!x�´X~`����}��V~`{#}�uyx\t5´µ~`{�uywyuv}V~�}�mm#Àk}�m|tY��u��kuywvuy}º� ~`tY� l¢~�u�t�}�m9t�~`t�{#m]x`´,~ľ uy��m»��~\tkz`m]x�´R´µ�Yt�{�}�uvx�t�~�wyuv}�uvm9�#¼ ­ t=u�l¢~�z`m�u��¢²�uym#¾!m|�=~`�~\t»~`�Y��}V��~\{�}R��x\���V{�m�x�´��kuvÀkm#w��#¼���x\�Y��{#m|�,~`��m&ÈYwy}�m|��m|���\�½~\����}V��~\{�}sx\�@m|�V~�}�x�����}�i�~`}s~`��m1~\���kwyuvm9�½}�xm9~`{�iU�kuvÀTm|w7¼H�QuvÀkm#w�x��Ym9��~`}�uyx\t��M~`��m �km|{#x\����wvm9��´µ��x\l/}Vikm#u��Xwyx�¾¹Á;wym#²\m#wk��m|����m|��m|t�}�~`}�uyx\t����U~`tU~`����}��V~`{#}u�t�}�m9��´µ~\{�m`¼

h iku�����m|{#}�uyx\t�È@����}�uyt�}V��xk����{#m|��u�l¢~�z`mUÈYwy}�m9��u�tkz@¶E}�i�m|t��km#}V~�uywy��}Vikm���}��V��{�}V����m¢x`´%}�i�m�m�À�~`l¢�kwym`¶~\t��5È@t�~�wywy�5�ku���{|������}�ikm�x\�Y�Yx���}V��tkuy}�uym|� }Vi�~�} ¾!m,È@t��]´·x\� �V�Ym9{�u�~�wyuv°9~�}�uvx�tʼ

��� � � * (+&'/�� 253 7 /B")258 &¸m�{�x�t���uy�km9�!uyl¢~�z\m,ÈYwv}�m|��uyt�z¢�Y~`��m|�]x\t�~Ul¢~`}���u Àʶ�ÇTtkx�¾�t�~`�¹~ � ��� ��¼'�Muywv}�m|��uytkz¢u�� �Ym9��´·x���lUm9�]���lUx�²Tu�tkz�}Vikm&lU~\��Ç�~\{#��x\�V�%~\t�u�l¢~�z`m\¶�{�x�lU�Y�k}�u�tkzU}�ikm,ÈYwy}�m9��m9�]�kuvÀkm#w¿u�t5}Vikm&�Yx���uy}�uyx\t]x�´H}�ikm&{�m9t�}�m|�x`´Ê}�ikmRl¢~\��ÇU���U�@m|��´·x\�VlUuytkz&x��Ym9��~`}�uyx\t��Mx�t¢}�ikm,�kuvÀTm|wy�%{�x�²\m|��m|�U�\�U}�i�mRl¢~`�VÇ@¼Q�T��{�iUÈ@wv}�m|�V��{#~\t��Ym�Y��m9�5}�xUx��k}�~`uyt�~U²�~`��uvm|}º��x�´Mm��¿m|{�}V�#¶ku�t�{#wy����uytkz���wy���V��uytkz@¶Tm|�kz\m���m#}�m9{�}�uvx�tʶ�~`t���tkx\uy��m�m#wyuylUu�t�~�}�uvx�t= n�£�@;¼��Yx��Mm�³�{�uym|t�{#�`¶�}Vikm u�lU~`z`m¹u��X�km|{#x\l¢�Yx���m9��u�t�}�x&��m|{�}V~`tkz��kw�~`�L�&� !$�S��¶\~\t���È@wv}�m|��uytkz�u��Q�@m|��´·x\�Vl1m9�~U}�uvwym�~�} ~¢}�u�lUm`¼

�%x�t�{�m9�k}���~`wvwy�`¶`ÈYwy}�m|��u�tkz&uy���Ym9��´·x���lUm|�¢���1~\���kwy�Tuytkz&~\t1x��Ym9��~`}�x��M}�x�~`tUu�l¢~�z`m ��x\���V{�m\¶��Tuvm|wy��uytkz~�t�m#¾ uyl¢~`z`m���x\���V{�m\¼ ­ wywEx��Ym9��~`}�x����!ÈYwy}�m9�R�kuvÀkm#w�� u�t½~���u�lUuvw�~`� ´µ~`�Vikuvx�tʶY~\t��½~`��m&}�iT���s�km�È@t�m|�eu�t}�m|�Vl¢�¹x�´H~¢��}�~\t���~`�V�]uyt�}�m9��´µ~\{�m\¼Mh i�m��Ym9i�~F²Tuvx����!x�´m9~`{�i]x\�@m|�V~�}�x\�!uy� ��m�È@tkm9�e�\�5uv}V����~`�V~`lUm|}�m|�V�|¶�V��{�i�~`�¹}Vikm�l¢~`�VÇ�}�i�~`} uy�¹}�x��Ym�~\���kwyuvm9�]}�x¢}�ikm&u�l¢~�z`m&��x\���V{�m\¼

h ikm9��m�~`��m�~�²�~`��uym#}º�¢x�´M��m9����m9��m9t�}�~�}�uvx�t��X´·x��!}�ikm&��~`}�~1}�i�~`}¹��m�È@tkm9� ~`t5uyl¢~�z\m`¶Tm|~\{�i5��m|����m|��m|tkÁ}V~�}�uvx�tÆi�~F²Tuytkz½�V�Ym9{�uvÈ@{�~\�k²�~`t�}�~`z`m|��~`t����ku���~\�k²�~`t�}�~`z`m9�#¼ �Yx\��}�iku�����m|~\��x�tʶ~`wvw%uyl¢~`z`m���~`}�~½~`tY��V�@m|{�uvÈ@{]�ku Àkm|wy��m�Àk}��V~`{#}�m|�¸´µ��x\l�~\t�uyl¢~�z\m]~\��m�l¢~`t�uy����wy~`}�m|� ~`��~\����}��V~`{�}1��~�}V~����Ä}Vikm�È@wv}�m|��uytkz�Y��xk{�m9���|¶Xl¢~`Ç�uyt�z»uv}¢�@x\�V��u��kwym5}�x¸{�ikxTx\��m�}�i�m�lUx\��}�m#³�{�uym|t�}U�Y~�}�~���m9����m9��m9t�}�~�}�uvx�t¸´·x\�U~`tÆu�l¢~�z\mu�t��km9�Ym9t��km9t\}�wv�]x�´M}�ikm&{�ikx\uy{#m�x�´M}�ikm&u�l¢~�z`msÈYwy}�m9�#¼

��� � ,�7 " 1 7� ")/ $ � 73� /�� * -�3 /�* / 897 (�7%2 $98h i�m%��}��V��{�}V����m�x�´�}�i�m%m#Àk~\l¢�kwvm�uy�H��i�x�¾�t&¾ uv}Vi�~`t�x\�T��m9{�}��uy~`z\�V~`l u�t �Muyz\����m%n�¼M�,tkwy��}�ikx���m�{#wy~\����m|�}Vi�~�},~`��m�{#��uy}�u�{#~�w}�x]}�ikm¢����m|��m|t�}�~`}�uyx\te~`��m��Vikx�¾�tʼsh i�m1{�m9t�}��V~�w{#wy~\��� ���� � ��� "��� ��&5l¢~`tku����kw�~�}�m|��Y~�}�~½��}�x���m9��u�tÆ~��� ����]����uyt�z»~½�ku Àkm|w%����xk{�m|�V��uytkz½��}��V~�}�m#z`�Ä�km�È@t�m|�Æ~`�&~\t ���� � ��� � ��& �� $ &T¼»h ikm�Y~�}�~�uy�,��}�x\��m|�½u�t»~�� �� ���� �� ��&5~`tY�½uy�,~`{|{�m9����m|�e²Tu�~�}�i�m1��~`}�~5��m|�Y��m9��m9t\}V~�}�uvx�t���}��V~�}�m#z\���km#È@tkm9���� ���� � ����� $ � ����¼�h ikm�x��Ym9��~`}�x��Ru�l¢�kwvm9lUm|t�}�~`}�uyx\t0� $ / � $ �"���� $ /�� � ��& "� $ &½u��&��~`�V~`lUm#}�m|��uv°|m|�Ä�\�»~� ��&�/�����}�i�~`}!�km#È@tkm9�%uy}��¹l¢~`�VÇB¼Xh ikuy�%x\�@m|�V~�}�x\�%lU~\tku����kw�~�}�m9� # "( ���&x\�k��m|{�}V��}Vi�~�}¹~`��mRu�t���}�~\t\}�uy~`}�m9��Y��u�tkz ���� � ����� $ � ���¢~`� ~`t�~`�Y��}V��~\{�}!´µ~`{#}�x\���`¼

h ikm ��� � ���� ���� ��&�{�w�~`�V������xk{�m|�V��m|��}�i�m�uyl¢~`z`m�u�tÆ}�uywvm9�#¶M~`tY�Æ����x�²Tu��km|��~½l1m|}�ikxk� � ������ "���]}�xx��k}�~`uyte~U}�uywym`¼¹h ikuy�Rl1m|}�ikxk��u��R�Vikx�¾�t5u�t �Muvz�����m��Y¼ 9Rm9��m\¶Y~��kx����kwym � $ &9ÁNwvxTx\�e�km#È@tkm9��}�i�m��ku Àkm|wy�u�t�}�i�m�x\�k}V���k} :µÈYwv}�m|��m|� <�}�uywvm\¶M���Äuyt�²`x�Ç�uytkze}Vikm�� $ � � ��� � #�$ �/��»lUm#}�i�xT��x`´ }�ikm�x��Ym9��~`}�x��s}Vi�~�}�uy��@m#u�tkz�~`�Y�kwvuym|��}�xU}Vikm���x\���V{�m\¼

O8O íQPSRUT�V

Page 11: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

£ �8!"�U���4.:� 1�� � ���<��!"� #���+���! �����M�F������! !�� ���Q���U!$�S��� ��'Q� � !��>��' ��0� ! !$�S��� ��! !$� �

PackedPixel

StandardPackedPixel

CompositePixel

Pixel

Composite-PixelModel

Packed-PixelModel

implementsextendsreferences

Kernel

BlurKernel LaplacianKernel

ImageFilter

ImageSource

ConvolutionOperator MedianOperator

ImageOperatorTile

SampleModel DataBuffer

Class Interface

�Huyz\�Y��m�n�H%�T}��V��{�}V����m�x`´H}Vikm&m�À�~`l¢�kwym&����x`z\�V~`l

� ��� � ��0���� ��� ��� � � � ���� �"&2 �� � �������"/�� � ��� � �� $ ��&���� '��� � �� $ ��& ��� � &���+��� � ��� � ��&��� $ & $"� +

����� ��� �� �� �� ���� � ������ "���.-� �/��0��( � �/�� ��� � �/�� � % � �/�� ���21 ' �/�� � ) $�� ��� ��� � $ &� �"& -�13+�� ���� �/ ) � &�� ��� ������ ����.- ��(�� � � ����� � � � % �� � � � ��� �� � � 13+�� ���� $ ��� ) �/ � ��& ���� � �"������ "���.- ��( � ��� � � % � ��� 13+� $ &�- �/���� ) +� �"����+�� � 1� $ & - �/�� ( ) +6( ��� % +6(� 1$ ��� � � ��� # �( ����- ( � � � $"� � � $ � � ����� # $ �/�� - (� �� � �� "� � �/ 1 13+& ������&�/ $ ��� +

44

�Huyz\�Y��m&�QHXh ikm ��� � � � ���� �"&�{#wy~\���|¼Xh�V~F²`m9����m|�%uyl¢~`z`m,¾�ikuvwym�~`�Y�kwv�Tu�tkz¢x\�@m|�V~�}�x\�|¼

?A@FOB?DC

Page 12: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

������������ ������������������������ ����!"�$#%���&����'(�*),+���-��/.0��213����4� �

� ��� � ��0���� ��� � $ / � $ ������ $ / � � ��&��� $ & �� � ����� �"/�� � ��� � ��� � ��& �� $ &' �/�� �� �����"% ������ � � ����� ���� � ��� � �� ����� ���"/�� ��& � ( � � ����� ���"/�� �"& � � +� $ ������� � ����� �� � ��$ & +� &�& ��� � ��/���� ��� +���� �� � ����� �"/�� � � �� � ���* �/���� � ��&��&�& ����� � ����� $ ������� $ � ��� +

����# "( ��� ���� ��� "( ��� � ���"� "( ���,+��� �/ "�� ��� "! ��� ��� � $ � ��� ��� ����� %�# "(�����-�1� ��� �� �� # "( ���*� $ � � ��� � # $ �/�� - �/��0( � �/���� � �� "��� �/ � ���� 1 ' �/�� � (

�����(�� "(

���� "( +

�/�� � ����� ���������"/�� +��� "( ) � ����� ���� � ��� � �� ����� ���"/�� ��& � � +(�� "( ) � �����"% ������ � � ����� ����/�� ��& � ( +# "(���� ���� ) ���� �"� "( ��� � � ) ���"� "( ���,+��� � $ & � ��� $ &��*� �� ��� ��"/�� ����� � & � � �"� -�13+ ������ � ��� � �( ���0� $ /��"����&����� $ � $ &� $ &�- � � ) � � ����� ���"/�� �"& � � + � � � ��� �( + � � 1� $ & - � ( ) � � � ��� ���"/�� ��& � (,+ � (���(�� �(,+ � (� 1 '

�/ � ���� ��� ��� # "(�����- ( ��(�� � �

� � 13+���0� $�� ��& ��� ��� � ���� � ��� ������� �"/�� ) �� ��� ��� ��� --�� �� �� ����� ����/�� ��& � � 1 � � ������% ������ - � (� ��� ����� ���"/�� ��& � ( 1�13+

� � � ������.- �� ����� ������� �"/�� 1 +��� �������� � "( ����� $ � $ & ����� � ��� - � 13+ �� � �� � "(����*� $ � $ & �

4���� � / $ &����� "! � - �� ����� � � ��$ & 1 +���� $ &�� ��� "! �0� $ / $ &�� ��& "/ � �& ������&�/������+

44

�Huyz\�Y��m�¤ HXh ikm8� $ / � $ ������ $ / � � ��&��� $ &5{�w�~`�V�|¼Q�%x�l��ku�tkm9� �ku Àkm|wy� {#x�²`m|��m|�]���5Ç�m9��tkm|w7¼

h ikm � $ / � $ �"���� $ /�� � ��& "� $ &�~`t�� ����� �"/ � � ��& �� $ &,{�w�~`�V��m9�Ê~`��m ���� � ��� � ��& �� $ &Ruyl¢�kwym|lUm|t�}V~�}�uyx\tY�#¶m9~`{�i±����x�²Tuy��uytkz ~ l1m|}�ikxk� � $ � � ����� # $ �/�� }�x x��k}�~`uyt±~ {�x�lU�Y�k}�m9� �kuvÀTm|w7¼�� h ikm � $ � � ����� # $ �/��lUm|}�ikxk�eu�����i�x�¾�t5´·x�� }�i�m � $ / � $ ������ $ / � � ��& �� $ &�{�w�~`�V�#¶�u�t �Muvz�����m&¤Y¼¹h ikm��kuvÀTm|wy�s{�x�²\m|��m|�5����}�ikml¢~\��Ç�~\��m,}��V~F²`m9����m|�����5~U�kx\�Y�kwvm � $ &9Á;wyxTx\�ʶ�~\t���m#ÀT}V��~\{�}�m|�]uyt�}�xU}�i�m���u Àkm#w � ¶�����u�tkz¢}�ikm � ��� # "( ���lUm|}�ikxk��x�´ }Vikm5{�w�~`�V� �� ����`¼»h i�uy�1l1m|}�ikxk�Æ����m|��}�ikm ���� � ��� � $ � ���½~`�V��xk{�u�~�}�m|�¸¾ uy}�i�}�i�m��� "���]}�xwyxTx\Ç��Y�]}Vikm���~`}�~Uuyt]}�i�m � �� ���� �� ��&¢x�´M}�ikm �� ����`¼9�Hu�t�~`wvwy�`¶k}Vikm��kuvÀTm|w�u�� ��{|~�wym|��~`{#{#x\�V�ku�tkz1}�x�}�ikml¢~\��ÇB¶�~`tY�5}Vikm���m9����wv}¹u���~`{|{#��l1�kwy~`}�m9�5u�t5}Vikm��kuvÀkm#w ����`¼

h ikm # �� � ��� # "( ��� � $ � ����{#wy~\���Hu��X~`t1uyl¢�kwym|lUm|t�}V~�}�uyx\t1x�´ ���� � ����� $ � ����¶\¾�i�m|��m¹l1�kwy}�u��kwvm��V~`l¢�kwym|�:;{�x\wvx��,{#x\l¢�@x\tkm9t\}V�#¶�´·x\��m�À�~\lU��wvm <R~\��m���~\{�Ç�m9�»u�t\}�x½~���u�tkz`wym¢uyt�}�m|z`m9�s²�~`wy�km\¶Em9~`{�iÄuyt�}�m|z`m9�s²�~`wy�km�@m#u�tkz�~`t m#wym|lUm|t�}Uuyt=~Äx\tkm#ÁN�ku�lUm|t���uyx\t�~`w!~\���V~F�¸��}�x���m9� u�t }Vikm ��"� ���� ��� ��&T¼±h ikm # �� � ��� # "( ���

� ßÊàFë���å�í���å �ãè9ê7áãå�í�å�é�ë�æ7îVê7å�æ���å � é9è9ê;ë�âXî��ãáãíFë�îaæ���å �%ïFáãí�îVê7áãå�í&å��Bê7àFë�é`å�áãí�ê7â���å ��ë�æ7ë�ì�ï#ðsê;à9ë!��îaâ;ç�"�äEàFá#�ãëXê;à9ë� ë�ì9á îaíså�é�ë�æ;îVê7å�æHâ7ë$�ãë%�ºê7âEê7àFë&� ë�ìFá îaíRå��kê;àFëQéFá '|ë$�ãâ(��å%��ë�æ7ë�ì&ï�ðRê7àFë���îaâ7ç`ô

O8O íQPSRUT�V

Page 13: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

¡�� �8!"�U���4.:� 1�� � ���<��!"� #���+���! �����M�F������! !�� ���Q���U!$�S��� ��'Q� � !��>��' ��0� ! !$�S��� ��! !$� �

� ��� � ��0���� ��� ��� "/����&� # �� � ��� # "( ��� ��(�� �"/� �# �� � ��� # "(����*' �/�� � ������ +� $�$ ����"/ � � �/ � ���� � ��� � + ��������/ � �� � � ��� � ������ � � � � ��� �/�� � �� � ��� � � � �� � ����� � � �� � ����� +��� ����&������ � �� "� � �� � ��� �� ��� �� �� � $ �� � ������������.-� �/�� � 1 '� ��"��� ) � +6� � �/ � ���� � ��� � ) � �� � � +

4� $ ��* �/ "�� ��� "! ������ � ��� � -�1 ' �/�� � "( ��� ) � ��"��� +� �� � ��� � ) - � "(����� ( �� � 1�� � � +� �� � ����� ) - � "(����� ( �� � 1���� +� �� � ����� ) - � "(����� ( �� 13+� � �/ � ���� � ��� �0) ��&���� +

4� ��� �� �� � $ �� � ������ - �/�� � 1 ' � -�� � � �/ � ���� � ��� � 1 �/� "�� ���� "! ����� � ��� � -�13+� �� � ��� � ��)*� + � �� � ����� ��)*� + � �� � ����� ��)*� +

4���� �� ��������& � ����� $ � � � $ &� �� � �������"/��� �/ � ����� # "(����* �/�����& � ����4

�Muvz�����m½�QH»h ikm ��� �/�� �&� # �� � ��� # "( ��� {�w�~`�V�#¼±��m9����m|��m|t�}�~`}�uyx\t=�km|�ku�{#~`}�m9� }�xÆ£�Áº�kuv}���u Àkm#w���¾ uy}�i}�iY��m|m��V~`l¢�kwym|�|¼

{#wy~\���Uu���~`t uyl¢�kwym|lUm|t�}V~�}�uyx\t x�´ # �( ���»}Vi�~�}¢u��¢uytY��}V~`t�}�u�~�}�m|�=����u�tkz¸}�ikm # �� � ��� # "( ��� � $ � ����~\�U~´µ~\{�}�x\���`¼B�@x\�M~RlUx\��m�m#³�{�uym|t�}H��m|�Y��m9��m9t\}V~�}�uvx�tʶ|}Vikm¹�����B{�w�~`�V� ����"/�� �&�� # �� � ��� # "(����,x�´ # �� � ��� # "( ���u��Mu�t���}V~`t�}�u�~�}�m|�1¾�ikm|tU}Vikm �ku Àkm|wY{�x�t���u���}��Hx�´B}�i���m#m�£�ÁN�kuy}X��~\l¢�kwvm9�#¼Hh ikm ����"/�� �&�� # �� � ��� # "(�����{#wy~\���u�� �Vikx�¾�t5u�t �Muvz�����m���¼

 ikuywym&}�ikm&��m|��~\��~`}�uyx\t�x`´E}�ikm�u�l¢~�z`m�����xk{�m|�V��uytkzU~�wyz`x���uy}�i�l u�t�}�x¢�ku���}�uyt�{#} {�w�~`�V��m9�%x �Bm9���¹l¢~`t��~\�k²�~`t�}�~`z`m9�#¶�uv}¹u�t�����{#m|� ~Uikm|~F²T���@m|��´·x\�Vl¢~`t�{#m,�@m|t�~`wv}º�\¼M�Q²`m9t5¾�ikm9t5wyu�l1uy}�m9�5}�x�~1�Vl¢~�wyw��kwy�Y����uyt�zl¢~\��ÇB¶�x����¢u�lU��wvm9l1m9t�}�~�}�uvx�t ¾ uywywR�Ym9��´·x���l ���¸²Tuy��}���~`w�{#~`wvw��¢}�x¸ÈYwy}�m9��~���u�tkz`wym½�kuvÀTm|w�� ­ i�~\t��TÁx��k}�u�lUuv°|m|��uyl¢�kwym|lUm|t�}V~�}�uyx\t�¶Ê¾�ikm|��mU~]�km|��uy{|~�}�m9�½ÈYwy}�m9�,uy������x`z���~\lUlUm9�euyt���m|�@m|t��km9t�}�wy�½´·x\�,m|~\{�iÇ�u�t��Æx`´�x\�@m|�V~�}�x���~\t�� ��~`}�~���m|�Y��m9��m9t\}V~�}�uvx�tʶ¾!x\��wy� �@m|��´·x\�Vl�tkx»²Tu���}V��~�w¹{#~`wvw��#¼ 7�t��km|m|�ʶQu�l¢~�z\m�Y��xk{�m9����u�tkz¸~\���kwyuy{|~�}�uvx�t���~`��m½��~\��m|wv� ��}��V��{�}V����m|� ¾ uv}Vi=~\��l��Y{�i z\m|tkm9��u�{�uy}º� ~`�¢¾!m½i�~F²`m½{�ikx���m9t´·x���x\���&~\���kwyuy{|~�}�uvx�tʼ � 7�tY��}�m|~`��¶Em�³�{#uvm9t�{��Äuy�&m9t�i�~\t�{�m9�¸~`}�}�ikm5�Y��u�{�m¢x�´¹z`m9tkm|��u�{�uy}º��~`t��¸m9~`��mUx`´l¢~`uyt�}�m9t�~`tY{�m`¼ ­ �&~`tÄ~�wy}�m9��t�~`}�uy²`m\¶�����x\z\�V~`l ���@m|{#uy~`wvuy°|~`}�uyx\tÄ{#~`tÄ�Ym�~\���kwyuvm9��}�x�x���������x`z\�V~`l }�xm9t�i�~\t�{�mR�@m|��´·x\�Vl¢~`t�{#m`¼HÂÄm,��}V~`��}Q���Uu��km9t\}�u ´·�Tu�tkz�}Vikms{|��uy}�u�{#~`w@�@x`u�t\}V��}Vi�~�}�x��¿m|�Qx����@x\��}���tkuy}�uym|�Q´·x\�x��k}�u�lUuv°9~�}�uvx�t]���5�V�Ym9{�u�~�wyuv°9~�}�uvx�tʼ��� å�æ¿ë '9î�� é�ãë "#áãí¹ê;àFë���î%��î���� C��)? "|á ê¿áãâBæµë%��å ��� ë�íFìFë�ì ê7å�êÕð|é�ë���îaâ7ê¿ê7å%ë�î��Nà�â7é`ë$��á � � ���� � ����� $ � ��� "�à�î$�9áãí��ìFë�ìFá#��îVê;ë�ì ��å#ìFë��yå�æ�ë�î��Nà�ç#áãíFìRå��@æµë�éFæµë�â7ë�í#ê;îVê;áãå�í\ô

?A@FOB?DC

Page 14: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

������������ ������������������������ ����!"�$#%���&����'(�*),+���-��/.0��213����4� ¡\¡

��� �������� ��� ��� � ��� ���� ��& � $ &�� $ / ��$ ������ $ / ��� ���� ��� �! � � ��� � ��� ���� ��& '� ����&�� $ / � $ ������ $ / � � ��&��� $ & $"� +� $ �� � ������ "���.-� �/��0��( � �/�� ��� � �/�� � % � �/�� ��� 13+

4��� �������� ��� � ����&�� $ / ��$ ������ $ / � � �"& �� $ & ��� ���� ��� "!�� � � $ / � $ ������ $ / � � ��&��� $ & '� �����"% ������ )�) �,+� ����� ���� � ��� )�) �,+� ����� ���"/�����& � ( )�) � +� ����� ���"/�����& � � )�) � +� ����� �� � ��$ & )�)�� �� +� ��� )�) ' � � � � � � � � � � � � � � � � � 4 +� � ��� # �� � ��� # "( ��� � $ � ��� � $ �����,+� $ ��*� $ � � ��� � # $ �/�� -�13+

4��� �������� ��� � � � ��� "� # "( ��� � $ � ��� ��� ���� ��� "!�� �# �� � ��� # "(���� � $ ����� '/������ ��&�� � ���� � ��� �*)�) �,+� "� ��# ��& ���� � ��� )�) � +

4

�Muyz\����m,?QHX�,m|{�w�~`�V~�}�uvx�t�x`´M�V�Ym9{�u�~�wyuv°9~�}�uvx�t�x\�Y�Yx���}V��tkuy}�uym|�|¼

��� � � - -0$'" 7� 8 2 7%2 /�� ��$'" ,.-0/�12 (43 2 6(�7 2 $98h i�m�uyl¢~`z`m¢ÈYwy}�m9��u�tkz»����x`z���~\l�uy����}V����{#}�����m|�Æ��x»~`��}�x�~`wvwyx�¾ ;Ym#Àkuy�kuywyuv}º�¸uytÆ�V�@m|{�uv´·�Tuyt�z»}�ikm�ÈYwv}�m|�}�x �@m�~`����wvuym|� }�x }�i�m»uyl¢~`z`m`¶ ~\t�� }�ikm¸{�x�t�{#��m#}�m»��m9����m9��m9t�}�~�}�uvx�t x`´�}�ikmÄ�ku Àkm|wy�5x�´&}�ikmÄuyl¢~`z`m`¼�sm#²\m|��}�ikm|wvm9���|¶`x�t�{�m ¾!mR�@m#z`u�t�~`�Y�kwv�Tu�tkz�~��Y~`��}�u�{#�kw�~`�MÈ@wv}�m|�Q}�x�~���~\��}�uy{|�kw�~`�Xu�l¢~�z`m\¶\�@x`}Vi¢}�ikmRÈYwv}�m|�~\t��¢}�i�ms�kuvÀkm#w¿��m9����m9��m9t�}�~�}�uvx�t¢��m9lU~`uyt¢u�t�²�~`��uy~\t\}|¼Hh iT���|¶�}�ikm ;Ym�Àku��kwvms����x\z\�V~`l���}V����{#}�����m�¾!mRi�~F²\m{�i�x\��m|t5�Y��m9��m9t\}V� ��uyz\t�u È@{|~`t�}¹x\���@x\��}��Ytkuv}�uvm9�!´·x\� �V�Ym9{�u�~�wyuv°9~�}�uvx�tʼ

h ikm ���� � ��� "��� ��& � � ������ "���]lUm#}�i�xT� :µx`´'�Huyz\�Y��m�� < {|~`t½�@mU�V�Ym9{�u�~�wyuv°|m|�e}�x]~��V�Ym9{�uvÈ@{&È@wv}�m|��uytkzx��Ym9��~`}�x��#¶¿x\��}�~�u�tku�tkze�Ym9i�~F²Tuvx����s�V�@m|{�uvÈ@{U}�xe}Vikuy��x��Ym9��~`}�x��#¼�h iku��&�V�Ym9{�u�~�wyuv°9~�}�uyx\t»uy�&{|~`�k}V����m9�����}Vikm ��� � ���� ���� ��& � $ &�� $ / � $ ������ $ /1�V�Ym9{�u�~�wyuv°9~�}�uyx\t�{�w�~`�V�Ex`´)�Muvz�����m>?�¶�¾�iku�{�i��V�@m|{�uvÈYm9�}Vi�~�}M~,���@m|{#u È@{��wy���V��uytkzUx\�@m|�V~�}�x\�¹�Vikx\�kw����Ym�����m|��¼

h ikm � $ / � $ �"���� $ /�� � ��& "� $ & � � $ � � ����� # $ �/���lUm#}Vikxk� :µx`´ �Muyz\����m ¤ <H{|~`t¢�Ym��V�@m|{�u�~�wyuy°#m|�U}�x�~`���kwy�~R���@m|{#u È@{!{�x�t�²`x`w��k}�uvx�t,Ç`m|�Vtkm#w\}�xs}�ikm%uyl¢~�z\m`¶Fx\��}�~�u�tku�tkzs~R�km|�ku�{#~`}�m9�&x\�@m|�V~�}�x\�|¼Eh ikm%�V�@m|{�u�~�wyuy°|~�}�uvx�t{#wy~\��� ������&�� $ / � $ ������ $ / � � ��& �� $ &�x�´��Muyz\����m ?½�V�Ym9{�uvÈYm|�U~½}�iY��m|m�Áº�\��ÁN}�i���m#m�Ç`m|�Vtkm#w%}�i�~`}�}�~\Ç�m|��}�ikm~F²\m|�V~�z\mXx�´@}Vikm¹tkuyt�m¹�V���V��x���t��ku�tkz,�ku Àkm|wy�|¼h ikm �kuvÀkm#w��MlU~\tku����kw�~�}�m9�����&}�i�uy�Mx��Ym9��~`}�x\�~`��m!�V�@m|{�uvÈYm9�}�x��Ym���m|����m|��m|t�}�m|�5����~U�V�@m|{�uvÈ@{&�V~`l¢�kwym&l1xk�km|w7¼

­ tÆx\�@m|�V~�}�x\��l¢~`t�uy����wy~`}�m|��uyl¢~`z`m5��~`}�~½}Vi���x\�kz�iÆl1m|}�ikxk����uyt � ����\¼Äh ikm9��m]l1m|}�ikxk���Ul¢~`Ç`m�Y��m&x`´X~�{#x\t�{|��m|}�m ���� � ����� $ ������{#wy~\��� }�x�l¢~`tku����kw�~�}�m�}�ikm1��~F¾d��~�}V~���}�x\��m|��uyte}Vikm ���� ��� �� �"&�x`´}Vikm �� ����\¼!h ikm&x\�@m|�V~�}�x\�¹{#~\t]�@m��V�Ym9{�u�~�wyuv°|m|�]}�x�~¢{�x�t�{#��m#}�m ���� � ����� $ � ����{#wy~\���|¶�~�wywyx�¾ uytkz¢��~`}�~¢u�t}Vikm ���� ���� �� ��&�}�xU�Ym��ku���m9{�}�wv��l¢~`tku����kw�~�}�m|�ʼXh ikm ���� � ����� $ � ����{#wy~\���%~�w���x���m|��²`m9��~\��~`t5~`����}��V~`{#}´µ~\{�}�x\���,}�x&����xk���Y{�m!}�ikm {�x�t�{#��m#}�m%u�l¢�kwym|lUm|t�}�~`}�uyx\t�x�´B��u Àkm#w��|¼M�T�@m|{#uy~`wvuy°#u�tkzs´·x\�X~,{�x\tY{#��m#}�m ���� � ��� �

O8O íQPSRUT�V

Page 15: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

¡Fn �8!"�U���4.:� 1�� � ���<��!"� #���+���! �����M�F������! !�� ���Q���U!$�S��� ��'Q� � !��>��' ��0� ! !$�S��� ��! !$� �

� $ � ����}Vi��Y��m�À��@x\��m|�U}�ikmÄ{�x\tY{#��m#}�m�}º�k�Ym½x`´,}Vikm»�kuvÀkm#w��#¶!m|t�~\�kwyuytkz¸´µ����}�i�m|��x��k}�u�lUuv°9~�}�uyx\tY�#¼ h ikm�V�@m|{�u�~�wyuy°|~�}�uvx�t�{#wy~\��� � � � ��� "� # "( ��� � $ � ���ex�´.�Muvz�����m ?e{#~\�k}�����m|��}Vikm�{�x�lUlUx�tÄ{|~`��m1x`´!~ # �� � �����# "( ����� $ � ���½¾ uv}Vi }Vi���m|m]£�ÁN�kuy}1�V~`l¢�kwym|�U����m|�Æ}�x¸��m|�Y��m9��m9t\}1~��kuvÀkm#w�:µu;¼ m\¼M��m|��¶Xz\��m#m|t�¶M~\t�� �kw��km <a¼h i�uy���V�@m|{�u�~�wyuy°|~�}�uvx�te{�w�~`�V� uyl¢�kwyuym|��}Vi�~�}R}�ikm # �� � ��� # "( ��� � $ � ���5~�wy¾!~F�k�¹¾ uywvwuyt���}�~\t�}�u�~�}�m���u Àkm#w���x`´}º�k�@m ����"/�� �&�� # �� � ��� # "(�����¼

¸m�tkm�Àk}��km9��{|��u��@m�i�x�¾g¾!m���m|~`wvuy°#m�}Vikm|��m&���@m|{#uy~`wvuy°|~`}�uyx\t]x\���@x\��}���t�uv}�uvm9�#¼

� �¢�Ä� �%�#��"���$!�#']0 * ��+s� -/�H��0��H���2�

hH�V~`�kuy}�uyx\t�~`wvwy�`¶F��~\��}�uy~`w`m#²�~`wy��~`}�uyx\t�~�z\z\��m|�V��uy²`m|wv�s����x���~�z�~�}�m|�¿u�t����k}H²�~�w��km|����@m|{#u ÈYm9�����s}Vikm%�Y��m9�#¶�~`�¾!m#wywE~\�R{�x�t���}�~`t�}V�¹m�À��kwyuy{#uv}�u�te}�i�m1����x`z���~\l]¶k}�x5�@m|��´·x\�Vl�{�x�t���}�~`t�}¹´·x\wy�ku�tkz@¼L7�te}Vikm1{|~`��m,x`´QÃ\~F²�~�¶}Vikm|��m�u��1~\���kuy}�uyx\t�~`w�u�tT´·x\�Vl¢~�}�uvx�t�uytÆ}Vikm]��x\�Y��{#m�����x\z\�V~`l }�i�~`}1l¢~F�¸�@m]�Y��m9�Æ~�}1�V�@m|{�u�~�wyuy°|~�}�uvx�t}�uylUm\¼ h iku���u�tT´·x\�Vl¢~�}�uyx\t u�t�{#wy����m|�]}�ikm»}º�k�@m�x`´�m|~`{�i=x��T��m|{#}]~`tY� x\�@m|�V~�}�uyx\tY��uyl¢�kwyu�{�uy}5}�x }�ikm²Tu���}V��~�w�l¢~\{�ikuyt�m`¼

� � � ,.-0/�12 (4352 6B2 8 & � (�7 (���8 1 (+- � 3 (�7%2 $987�tÄ~`t�x\�T��m9{�}�ÁNx\��uym|t�}�m9�½wy~\tkz\�Y~�z`m1����{�iÄ~`�,Ã\~F²�~Y¶B²�~`wy�km9��~`��m1���T��}�m9l¢~�}�u�{#~`wvwy�em|t�{|~`���V�kw�~�}�m|�ʼ ­ �,~{#x\t���m|�T�km9t�{�m\¶`~`{|{�m9����uyt�z�~�²�~`wy�kmRuy�Xu�l¢�kwym|lUm|t�}�m9�¢uyt¢}�m|�Vl¢�Xx�´�~&��m|�T�km|tY{�m x�´Ê�@x`u�t\}�m|�Q��m|��m�´·m|��m|tY{�m|�¾�i�x\��mR{�x���}���m|�@m|t����%x\t¢}VikmRm9l��@m|����uytkz1�km|�k}Vi�x�´�}VikmRx��T��m|{#}���}��V��{�}V����m\¼X�k�Ym9{�u�~�wyuv°9~�}�uyx\t���m|��wy~\{�m|���m�´·m9��m9t�{�m9�E}�x,~RÈYm|wy�U{�x�t\}V~�u�tku�tkzs~,��}V~�}�uy{%²�~�w��km!����}Vikm!²F~`wy��m!uy}���m#wv´�¼Mh ikuy�Hx��k}�u�lUuv°9~�}�uyx\t�m#wyuylUu�t�~�}�m|�lUm9l1x����=��m#´·m|��m|t�{#m|��~\t��±{#~\t ��uyz\tkuvÈ@{|~`t�}�wy� u�l¢����x�²`m½�Ym9��´·x���l¢~\t�{�m\¼dh ikm¸��}V~�}�uy{e²�~�w��km�{|~`tʶ x`´{#x\���V��m`¶k~�w���x¢}V��uyz`z\m|�%´µ����}�ikm9�¹x\�k}�uylUuy°|~�}�uvx�tʼ

��� ª ���� Íh i�m� $ � � ����� # $ �/�� l1m|}�ikxk� x`´,}Vikm � $ / � $ ����� $ / � � ��& �� $ &={�w�~`�V�#¶¹�Vikx�¾�t=uyt �Muyz\����me¤Y¶ �Ym9tkm�È@}��´µ��x\l �V�Ym9{�u�~�wyuv°9~�}�uyx\tUx`´E��~�}V~&m|t�{|~`���V�kw�~�}�uvx�tʼh ikm,���@m|{#uy~`wvuy°|~`}�uyx\t¢{�w�~`�V� � ����&�� $ / � $ �"���� $ /�� � ��& "� $ &��uy�V�kw�~F�`m|��uyt �Muvz�����m,?Y¶�u�t��ku�{#~`}�m9�¹}�i�~`} � $ � � ��� � # $ �/��¢��i�x\�kw��]�@m&���@m|{#uy~`wvuy°#m9��¾ uy}�i���m9���@m|{#}¹}�x¢}�ikm��uylUm|tY��uyx\t�� ~\t��]¾%m|uvz�i\}V�¹x�´H}�ikm�l¢~`�VÇB¼

ɹm|{|~`����m�}VikmU��uylUm|tY��uyx\t��sx�´�l¢~\��Ç�{�x�t\}V��x\wE}Vikm1�kx����kwym � $ &9Á;wyxTx\�½x`´�� $ � � ��� � # $ �/���¶Euv}�{#~\t»�Ym�Yt���x\wvwym|�&�Y����u�tkz,���@m|{#uy~`wvuy°|~`}�uyx\tʼEh i�m!��m|�V�kwy}�u�tkzR{�xk�km!{�x�t���u���}���x`´Ytku�tkm : � �����"% ������ � � ��� ���� � ��� <��wvxk{�ÇT�5x`´1{�xk�km\¶Rm9~`{�i x`´�¾�iku�{�ig{|~`t �@mÆ���@m|{#uy~`wvuy°#m9� ~`{|{�x\�V�ku�tkz }�x }Vikm�{#���V��m9t�}5wyx�x�� u�t��ku�{�m9�#¼h i�m|��m�ÇTtkx�¾�teuytY�kuy{#m|�,~�wywvx�¾d}�i�mU�V�Ym9{�u�~�wyuv°|m|� }�x5m|²F~`wy�Y~�}�m�}�ikmU��m#´·m|��m|t�{#m|��}�x�}�i�m�m#wym|lUm9t\}V�Rx`´Q}�ikml¢~\��ÇB¶�}�iT���¹��m9�kw�~`{�u�tkz�}Vikm|��m�~`�V��~F�U��m#´·m|��m|t�{#m|������{#x\t���}�~\t\}V�#¼Mh ikm���m9����wv}%x�´�}�i�uy�¹�V�Ym9{�u�~�wyuv°9~�}�uyx\t�uy�uywywy����}��V~�}�m|�]uyt �Muyz\����m��T¼

� � � ,.-0/�12 (4352 6B2 8 & ���� /�1 7�����-0/��7�t�~\t�x\�k��m|{�}�Á;x���uym|t�}�m|�Uwy~\tkz\�Y~�z`m �V��{�i�~`�%Ã\~F²�~Y¶\{�x�t�}���x`w�;Yx�¾±�km9�Ym9t����%x\t�����x`z���~\l/²�~�w��km|�%~`��¾%m|wvw~\�Ex��T��m|{#}E}º�k�@m|�|¼h ikm¹{�ikx`u�{�m%x�´�¾�iku�{�i�lUm#}Vikxk��u��Huyt�²`x�Ç�m9�&�\�&~sÃ\~F²�~�lUm#}Vikxk��{|~�wyw��km9�Ym9t����Hx\t�}�ikm}º�k�@m%x`´�}�ikm¹��m|{�m|uv²\m|�Ex\�T��m9{�}#¼Â ikm|t1}�i�m!�km#È@tkuy}�uyx\t�x�´�}�i�m%u�t�²`x\Ç`m|�&lUm#}Vikxk�1{|~`t�t�x`}�@m¹�km#}�m|�Vl1u�tkm9�

?A@FOB?DC

Page 16: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

������������ ������������������������ ����!"�$#%���&����'(�*),+���-��/.0��213����4� ¡9�

� ��� � �� # "( ��� � $ � � ��� � # $ �/�� - �/��0( � �/�� � � �� ���� �/ �� ���� 1' �/�� �� ����� ������� �"/�� +# "( ��� ���� ) ���� �"� "( ��� � � ) ���"� "( ���,+���� � & � � ����-�13+' �/ � ���� ��� ��� # "(�����- ( - � � 1 � � - � � 1 � � 13+� � ��� ������� �"/�� ) � +� � � ������.- � ����� ������� ��/�� 13+���� � ��� - � 13+

4������ � ���� � / �/��0�� �� � � � % "��� �� �� ��& ��/����& � ��� �"/�� � � $ � ��� # "( ���

�������� � / $ &�� �� "! �.- � �� 13+& ������&�/ �����+

4

�Muvz�����m���HQh ikm � $ � � ��� � # $ �/���l1m|}�ikxk�e�V�Ym9{�u�~�wyuv°|m|�5´·x\� ��~`}�~U²�~�w��km|�|¼

~`}R{�x�l¢�kuvwym�}�uylUm`¶B}�i�m1lUm#}Vikxk�»{#~`wvw�u��,��~`uy��}�x]�YmK-D� �U��� ��!Y~\t��eu���}º�k�ku�{#~�wywy�]u�l¢�kwvm9lUm|t�}�m9�½����u�tkz5~}V~`�kwym�~`tY�1~&�@x`u�t�}�m|�X��m|��m�´·m|��m|tY{�m`¼Mh iT���|¶`lUm#}�i�xT�Uu�t�²`xk{#~`}�uyx\t1uyt�{#wy�Y�km|�Q~\t�u�l¢�kwyuy{#uv}Q}º�k�@m�{�ikm|{�ÇB¼F7N´}Vikm�}º�k�@m%x`´�}�ikm¹��m|{�m|uv²\m|�Êx��T��m|{#}{|~`t��@m!��m#}�m9��lUu�tkm|����~`��m|�&x�t&m�Àk}V��~ u�tT´·x���l¢~�}�uvx�t�~F²�~�uywy~\�kwymQ������uytkz�V�@m|{�u�~�wyuy°|~�}�uvx�tʶB}�ikm9t��V�Ym9{�u�~�wyuv°9~�}�uyx\t���m9�kwy~\{�m9�s~5²�u���}���~`wHlUm#}Vikxk��{|~�wywH���»~`t»x\�V�kuytY~`��������xk{�m9������m{|~�wyw7¼��T�Y{�i�~¢����xk{�m9������m,{|~�wywE{#~\t]�@m&uyt�wvu�tkm|��¶�wvm9~`�ku�tkz¢}�xU´µ����}�i�m|� x��k}�u�lUuv°9~�}�uyx\tY�#¼

��� ª ���� Í­ �%~1��u�l¢�kwymRm�À�~\lU��wvmsx�´E�V�Ym9{�u�~�wyuv°9~�}�uyx\t¢¾ uy}�i]��m9���@m|{#}�}�x�}º�k�Ym9�#¶k{#x\t���uy��m|�Q}Vikm � ������ "���&lUm|}�ikxk��x`´}Vikm ���� � ��� "��� ��&�{�w�~`�V�#¶k�Vikx�¾�t�u�t��Muyz\����m&��¼Mɹm|{|~`����m,lUm|}�ikxk���¹x`´}�i�m&x\�T��m9{�} $�� ~`��msm#Àk}�m|tY��uy²`m|wv�u�t�²`x�Ç�m|��¶ � ����� ����¸u��5~`t=u��km|~`ws{|~`t��ku���~`}�me´·x\�]���@m|{#uy~`wvuy°|~`}�uyx\t=¾ uy}�i±��m|�V�Ym9{�}�}�x }�ikm�}º�T�@m»x`´ $"� ¼h i�m ��� � ��� ���� ��& � $ &�� $ / ��$ ������ $ / �V�Ym9{�u�~�wyuv°9~�}�uyx\tÆ{#wy~\����x�´ �Muvz�����m ?��V�Ym9{�uvÈYm|��}�i�~`} $"� i�~\��}º�k�Ym� ����&�� $ / � $ �"���� $ /�� � ��& "� $ &T¶T¾�ikuy{�i�uy�~����@m|{#uy~`wvuy°#m9�&²�~`��uy~\t�}Êx�´.� $ / � $ ����� $ / � � ��& �� $ &T¼!�k�Ym9{�u�~�wyuv°|uytkz��� � � � ���� �"&1}�xU}�ikm,}º�k�Ym,x�´ $�� ��m9�kwy~\{�m9�Q}�i�m,²Tu���}V��~�w¿{#~`wvw¿}�x $"� � � $ � � ��� � # $ �/�������~1�ku���m|{�}¹{#~`wvwB}�x� ����&�� $ / � $ �"���� $ /�� � ��& "� $ &5{#wy~\���|¼

­ lUx\��m1~`��²F~\t�{�m9�½m�À�~\lU��wvmU{#~`tÄ�Ym1´·x\�Yt��»u�t»}Vikm � $ � � ��� � # $ �/���l1m|}�ikxk�ʶʾ�i�m|��m�}�i�mU��m|����m�Á��m|t�}V~�}�uyx\t»x�´��kuvÀkm#w��s~\t��»}VikmU~\{#{#m|�V��}�x�}�i�m �� ����¢~`��m1{�x�t�}���x`wywvm9�½�\�e}Vikm ���� � ����� $ � ����¼ �Rx`}sx\tkwy�{|~`t½}Vikm5� $ � � ��� � # $ �/���l1m|}�ikxk�Ä�Ym¢���@m|{#uy~`wvuy°#m9�½¾ uy}�i���m|�V�@m|{�}s}�x]}�ikmU²�~�w��km|�sx�´�{#m|��}�~�u�teÈYm|wy�Y�#¶Ê~`��Vikx�¾�t5uyt]}�ikm��Y��m|²�uyx\�Y�!��m|{#}�uyx\tʶk����} uv} {#~\t]~`wy��x¢�Ym&�V�Ym9{�u�~�wyuv°|m|�]¾ uv}Vi]��m|�V�Ym9{�}¹}�x¢}Vikm�}º�T�@m&x�´H}�ikm� $ � ����ÈYm|wy�¢}Vi�~�}%ikx`w����X}Vikm ���� � ����� $ � ����¶k~`�Q�Vikx�¾�tUuyt¢}Vikm��V�Ym9{�u�~�wyuv°9~�}�uyx\t¢{#wy~\��� � ����&�� $ / � $ ������ $ / �� � ��& "� $ &�x`´ �Muyz\����m ?Y¼ �T�@m|{#u ´·�Tu�tkz�}�ikm½m#À�~`{�}¢��m|����m|��m|t�}�~`}�uyx\tÆx`´R}�i�m»��~�}V~�¶�~\�1u����kx�tkmeuyt }�ikm�V�@m|{�u�~�wyuy°|~�}�uvx�t�{�w�~`�V� � � � ��� "� # "( ��� � $ � ����¶%m9t�~`�kwym|��´µ����}�ikm9��}V��~\t���´·x���l¢~`}�uyx\t������¸}�ikm����@m|{#uy~`wvuy°#m9�#¶��u�t�{�m&~`t]x\��}�u�l1uy°#m9�e��m9����m9��m9t�}�~�}�uvx�t�x`´H�kuvÀkm#w���{#~\t]�@m�����m|�]uyt�}�i�uy��{|~`��m`¼

O8O íQPSRUT�V

Page 17: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

¡|¤ �8!"�U���4.:� 1�� � ���<��!"� #���+���! �����M�F������! !�� ���Q���U!$�S��� ��'Q� � !��>��' ��0� ! !$�S��� ��! !$� �

� ��� � �� # "( ��� � $ � � ��� � # $ �/�� - �/��0( � �/�� � � �� ���� �/ �� ���� 1'# "( ��� ���� ) ���� �"� "( ��� � � ) ���"� "( ���,+-�- ����"/�� �&�� # �� � ��� # "(���� 1������1 ��� ������ ) +-�- ����"/�� �&�� # �� � ��� # "(���� 1������1 � � � "/ � ���� � ��� � ) � �� � � +'-�- �"� "/�� "&� # �� � ��� # �( ��� 1 � 1 ��� ��"��� ) �/ �� ���� � � �� � �/�� � �� ���- (�� � 1� .- ��� � 1 � �/�� �� ���� � % �������,+

�� � � � ������.- � 1' �/�� � "(���� ) -�- ��� "/����&� # �� � ��� # "( ��� 1 � 1 ��� ������ +-�- ��� "/� �&� # �� � ��� # "( ��� 1 � 1 � � �� � � � � ) - � �( ���� ( �� � 1�� � � +-�- ��� "/� �&� # �� � ��� # "( ��� 1 � 1 � � �� � � ��� ) - � �( ���� ( �� 1�� �,+-�- ��� "/� �&� # �� � ��� # "( ��� 1 � 1 � � �� � � ��� ) - � �( ���� ( ��� 13+-�- ��� "/� �&� # �� � ��� # "( ��� 1 � 1 � � � �/ � ���� � � � � ) ��&���� +

4-�- �"� "/�� "&� # �� � ��� # �( ��� 1 � 1 � � �� � ��� � ��) � +-�- �"� "/�� "&� # �� � ��� # �( ��� 1 � 1 � � �� � ����� ��) � +-�- �"� "/�� "&� # �� � ��� # �( ��� 1 � 1 � � �� � ����� ��) � +

������ ����� ��� ���� ���� "! ��� � $ ��� � $ &*���� � ���� - � 13+

4������ � ���� � / �/��0�� �� � � � % "��� �� �� ��& ��/����&�& � �/��� ���� �

������ ��� � ��� ���� ��� "!���� � $ � � � $ &*���� � / $ &�� �� "!��.- � � 13+& ������&�/ �����+

4

�Muvz�����m&£ HMh i�m6� $ � � ����� # $ �/���lUm#}Vikxk�e���@m|{#uy~`wvuy°#m9��´·x��¹}º�T�@m|�|¼

�,�@m|�V~�}�uvx�t��Xx\t¢}VikmR}�uvwymR~\��m��km#È@tkm9�����1²Tu���}V��~�wY{|~�wywy��}�x�}Vikm ���� � ����� $ � ���&��m�È@tku�tkz1}�ikm�w�~F�`x��k}#¼É¹���V�Ym9{�u�~�wyuv°|uytkz1¾ uv}Vi5��m|�V�Ym9{�}!}�x1}�ikm�~`{#}���~`wB�kuvÀkm#wÊ��m|����m|��m|t�}�~`}�uyx\tʶ\}�ikm9��m,x\�@m|�V~�}�uvx�t���{|~`t]tkx�¾ �Ymm#À�����m9����m|�e�ku���m|{�}�wv�½~\��x\�@m|�V~�}�uvx�t�� x�t½}�ikmU~`�V��~F�k�¹}Vi�~�},ikx`w��½}�i�m1~`{#}���~`w��~`}�~Y¼Rh ikm�}V��~\t���´·x\�Vl1m9�lUm|}�ikxk�ʶ%¾�ikuy{�i {#~\t �@m]²Tuym#¾!m|� ~\�¢~ÄlUx\��m]�V�@m|{�u�~�wyuy°#m|� ²`m9����uvx�tÆx�´ �Huyz\�Y��m½�T¶�u��Uuvwyw�����}V��~`}�m9� u�t�Muyz\����m&£�¼

� � � ,.-0/�12 (4352 6B2 8 & 7 � /�� 2 " 7� (+3�� (41.� 2 8 /Ã�~F²�~���m|�T�ku���m9�¢��x�l1m½�V��tTÁN}�u�lUme{�i�m|{�Ç�uyt�z�}�xÆ�@m»�Ym9��´·x���lUm9� ��� }�i�m½²�u���}���~`w¹l¢~\{�ikuyt�m�}�x�m|t��V����m��x\lUm,��~�´·m#}º������x\�@m|��}�uym|�|¼87�t���~\��}�uy{|�kwy~\�#¶T{#~\��}V�%~\t��5~\���V~F�¢��m#´·m|��m|t�{#m|�!~`��ms���T��}�m9l¢~�}�u�{#~`wvwy��{�ikm|{�Ç`m|�ʼ­ tÆx\�k��m|{�}1lU~F�Äx\tkwy���Ym�{#~`��}�}�x�~½}º�k�Ym5}�i�~`}�u���~»�V���@m|��}º�T�@m�x`´�}�ikm5~\{�}V��~�w%x\�T��m9{�}�}º�k�@m`¼ ­ t~\���V~F����m#´·m|��m|t�{#m]l��Y��}�~`{|{�m9���U~`t m#wym|lUm|t�}U¾ uv}Viku�t }Vikm½~`�V��~F���Yx���t����|¼ 7�t z`m9tkm|�V~�w;¶X}�i�m|��m�}�m|��}��l1����}1�@m�{|~`�V��uym|��x��k}1~`}1�V��t }�uylUm`¼¸Â ikm9t }�i�m��V�Ym9{�u�~�wyuv°|m|�1{#~`t �km#}�m|�Vl1u�tkm�m#uy}�ikm9��}Vikm5}º�k�@m]x`´

?A@FOB?DC

Page 18: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

������������ ������������������������ ����!"�$#%���&����'(�*),+���-��/.0��213����4� ¡F�

Sparc Pentium Sparc Pentium Sparc Pentium0

5

10

15

seco

nds

Unspecialized

3.05x2.21x

Convolution, 3x3 kernel

4.00x3.77x

Convolution, 7x7 kernel

1.68x

1.55x

Median

Specialized

�Muvz�����m&� H ­ �k}�x�l¢~�}�u�{#~`wvwy�5�V�Ym9{�u�~�wyuv°|m|������x`z\�V~`l¢�¹�V��t�tku�tkz���t��km9�09s~\��u����V~�¼

}Vikm�x��T��m|{#}#¶@x\��}Vikm1��uy°#m�x`´M}Vikm1~\���V~F�5~\t��e}�ikm1uytY�km�À½x�´X}Vikm1~\{#{�m9����m|��m|wvm9l1m9t�}#¶B}�ikm1}�m|��}��,{#~\t½�Ymm|wvu�lUuytY~�}�m9��������uytkz»�V�@m|{�u�~�wyuy°|~�}�uvx�tʼ��stk´·x\��}���t�~`}�m|wv�\¶H����}Vikm��km#È@tkuy}�uyx\t�x�´ Ã�~F²F~e���T}�m9{�xk�km`¶}�ikm9��mx��k}�u�lUuv°9~�}�uvx�t��s{|~`t�t�x`}��YmUm�À�����m|�V��m9�»~�},}�i�mU���T}�m9{�xk�kmUwvm|²`m#w;¼�9Rx�¾!m#²\m|�|¶@x����s~\������x\~\{�i½�kxTm|��tkx`}�V� �¿m|��´µ��x�l�}�iku��¢����x\�kwym|l�¶Quv´R¾!m��ku���m|{�}�wv��m#ÀTm9{#�k}�m]}Vikme���@m|{#uy~`wvuy°#m9�=� {#xT��m�����u�tkz�}Vikm 9s~`��u����V~m9t�²�u���x\t�lUm|t�}|¼M�%x\tY{#��m#}�m|wv�\¶`}VikmR�V�Ym9{�u�~�wyuv°|m|�¢����x`z\�V~`l�uy�Q~\�Xm�³�{#uvm9t\}%~`�Q~\t1m9�T�kuv²�~`wvm9t\}%� ����x`z���~\l�¶�Y�k} ¾ uv}Vi�}�ikm��V~�´·m|}º��x�´H}�ikm&x���uyz`u�t�~�wÊÃ�~F²�~U�Y��x\z\�V~`l�¶�~`} }�ikm&����u�{�m&x�´M�Yx���}V~`�kuywyuv}º�\¼

��� ª ���� Í­ ´·}�m9��i�~F²Tu�tkz½���@m|{#uy~`wvuy°#m9�Ä}Vikm�� $ � � ��� � # $ �/���lUm#}Vikxk��¾ uv}ViÆ��m9���@m|{#}&}�x»�@x`}Vi�²F~`wy��m|��~\t��¸}º�k�Ym9�#¶~5t��Yl��@m|�sx�´Q}º�k�Ym¢{#~\��}V�R��m|l¢~�u�t�´·x\�s}�i�m1�kuvÀkm#w�� ����U~`t�� � ¼���u�t�{�m1}�ikmU}º�k�Ym9�Rx`´��Yx\}�i»��u Àkm#w��,~`��m��}�~`}�u�{�¶k}Vikm|��m&}º�k�Ym�{|~`��}��¹{#~\t��@m�{�ikm9{�Ç�m|�]~`t��]m#wyu�l1u�t�~`}�m|�e���Y��u�tkz����@m|{#uy~`wvuy°|~`}�uyx\tʼ

� � � � /�� 3 7 $ � ,�-0/�12 (+352 6(�7%2 $98­ ¾!m#wyw Áº��}V���Y{�}��Y��m9��x\�T��m9{�}�ÁNx\��uym|t�}�m9�Æ����x\z\�V~`l uy�1}º�k�kuy{|~�wywv�Æ{#x\l¢�Yx���m9�Æx�´R~Ä��m|}1x`´�z`m9tkm|��uy{]{�x�l�Á�@x\t�m|t�}��|¼e�T�@m|{#uy~`wvuy°#u�tkz��V��{�i�~½����x`z���~\l ~`��~\�k}���m9~`{�i¸z`m9tkm|��u�{�{�x\l¢�@x\tkm9t�}&}�x»~½z\uv²\m|t¸{�x\t�}�m�Àk}#¼�B����}�ikm9��lUx\��m`¶T�V�Ym9{�u�~�wyuv°9~�}�uyx\t5����xk���Y{�m|�!~Ul1x�tkx`wyuy}�iku�{s�Y��x\z\�V~`l�¾�i�m|��msu�t��km9�Ym9t��km|t�} {�x�l¢�Yx�tkm|t�}��iY~F²`m��Ym|m|telUm|��z`m|��¼

��� ª ���� Íh i�m�x\��uvz\uytY~�w�u�l¢~�z`m�È@wv}�m|��uytkz]����x\z\�V~`l®u���m9����m|t�}�uy~`wvwy��{#x\t���}��V��{#}�m|�]´µ��x\l ~�{�x\wvwym|{#}�uyx\tex`´Mz\m|tkm9��u�{�¶u�t�}�m9��~\{�}�u�tkz�x��T��m|{#}��|¼M����x\z\�V~`l����@m|{#uy~`wvuy°|~`}�uyx\t�~`��}�x\l¢~`}�u�{#~�wywy�¢~\��~`��}��Qm9~`{�i�x��T��m|{#}�}�x�uy}��!{�x\t�}�m�Àk}#¶x��k}�~`uyt�uytkz�~\t�uyl¢�kwym|lUm|t�}V~�}�uyx\t�²\m|���]��uylUuywy~\�¹}�x5~�i�~\t��TÁNx\�k}�uylUuy°#m9�]²\m|�V��uyx\t�¼ 7�t½���V~`{�}�uy{#m`¶Y�V�@m|{�u�~�Áwyuy°|~�}�uvx�t]�Y��xk����{#m|� ~\t5x��k}�u�lUuv°|m|��uyl¢�kwym|lUm9t\}V~�}�uvx�t]~\��~`�k}�m|�]}�x�~¢�V�Ym9{�uvÈ@{,ÈYwy}�m|��u�tkz���}V��~`}�m#z\�`¼

O8O íQPSRUT�V

Page 19: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

¡%? �8!"�U���4.:� 1�� � ���<��!"� #���+���! �����M�F������! !�� ���Q���U!$�S��� ��'Q� � !��>��' ��0� ! !$�S��� ��! !$� �

Sparc Pentium Sparc Pentium Sparc Pentium0

10

20

30

seco

nds

Unspecialized

3.71x 2.66x

Convolution, 3x3 kernel

4.30x

5.13x

Convolution, 7x7 kernel

1.44x1.55x

Median

Specialized

�Muvz�����m1¡��QHM����x\�V�Ym9{�}�uy²`m&�@m|t�{�iYlU~\��ÇT�|¼M��~`tT��~`w���~`{�Ç\ÁN}��V~`t���wy~`}�uyx\t¢´µ��x\l �±}�x¢Ã�~F²�~�¼

h ikm1�Ym9��´·x���l¢~`tY{�m&x�´M}�i�m����@m|{#uy~`wvuy°#m9�½{�xk�km&u��R��uvz�tkuvÈ@{#~\t\}�wv�]�Ym|}�}�m9��}Vi�~`te}Vi�~�}�x`´X}�ikm�z\m|tkm9��u�{�¶�Yt����@m|{#uy~`wvuy°#m9� {�xk�km\¼Ä¸mei�~F²`m�}�m|��}�m9� }�i�m]~`��}�x\l¢~`}�u�{#~�wywy���V�@m|{�u�~�wyuy°#m|� {�xk�km]�Y��u�tkz�}Vikm 9s~`��u����V~m9t�²�u���x\t�lUm|t�}|¼��XÀ��Ym9��u�lUm|t�}��M¾!m|��m%{#x\t��Y��{�}�m|���@x`}Vi�x�t�~&�T��t1¾%x���ÇT��}�~�}�uvx�t :7� � ��� 9R° �swv}V��~T�T��~\��{�<~\t��½x�t½~��,m#wyw�!� :;n�� ��� 9s°��Mm|t�}�u���l ����x <�¼sh ikmU��m9���kwy}��|¶Buyt�{#wy�Y�kuyt�z]�@x`}�i�}�ikm1m�Àkm|{|�k}�uyx\te}�uylUm~\t��]}�ikm��V�Ym|m|���Y�]x`´H}Vikm��V�Ym9{�u�~�wyuv°|m|��{�xk�km`¶�~\��m&�Vikx�¾�t�u�t �Muvz�����m&�Y¼

¸m�{�x�t�����{#}Xm�À��Ym9��u�lUm|t�}��Mx�t¢~s}Vi���m#m�Áº����Á;}Vi���m|m!��wy���V��uytkz&{#x\t�²`x\wy�k}�uvx�t&ÈYwy}�m9�#¶\~&��m|²`m|tkÁN����ÁN��m#²\m|t��wy���V��uytkz�{#x\t�²`x\wy��}�uyx\t]ÈYwy}�m|�|¶¿~`t��½~�lUm9�kuy~\t�ÈYwy}�m|�|¼�h ikm��V�@m#m|�Y�����,~`��m��Ym|}º¾%m|m|t ����� }�uylUm|�s~`t��e¤}�uylUm9�#¶M}�i�m5ikuyz\ikm9��}��V�@m#m|�Y��� �@m#u�tkz»x\��}�~�u�tkm9�¸´·x\�&}Vikm5w�~`��z`m�{�x�t�²`x`w��k}�uvx�t�È@wv}�m|�|¼eh i�m5��m|wy~`}�uy²`m|wv�lUu�tkx\�¹�V�Ym|m|���Y��´·x��%}Vikm�l1m9�ku�~`t5ÈYwv}�m|�!u�� �km|��uv²\m|���Y��u�l¢~`��uvwy�¢´µ��x�l®��}V���Y{�}��Y��~`wB��uyl¢�kwyuvÈ@{#~`}�uyx\t��|¶k}�ikm�V��t�t�uytkz¢}�uylUm��@m#u�tkz��kx\lUu�t�~�}�m|�e����}�i�m�lUm|�ku�~`t�{�x�lU�Y�k}�~`}�uyx\tʼ4�@x\� }Vikm�{�x�t\²\x`w��k}�uyx\t�ÈYwy}�m|�V�|¶�}�ikm{#xk�km�uy����u�lU��wvuvÈYm|��}�x¢�V��{�i�~¢�km#z���m|m,}Vi�~�}�lUm9l1x�����~\{#{#m|�V� �Ym9{�x\lUm9�¹}�ikm�l¢~���x��¹�Yx\}�}�wym|t�m|{�ÇB¼

��� � Í ©�� Í� ¨|§ Ð �·¨�±§ � Í «��µª � ��� Í Ò��ʪ���ªÆ§ Ñ �©�« Í « Ñ Ò Íhx�m|��}�u�lU~`}�m¢}�i�m�z\~�u�t��,}�iY~�}&{#~\t��@m�m�À��Ym9{�}�m|��´µ��x�l ~]�Y��x\z\�V~`l ���@m|{#uy~`wvuy°#m9�,}�i�~`},x��k}��Y�k}��&Ã�~F²�~���T}�m9{�xk�kme����x`z\�V~`l¢�|¶Q¾!m�i�~F²\m�l¢~\t��Y~�wywv� }V��~\t���wy~`}�m|� }�ikm½�V�Ym9{�u�~�wyuv°|m|�±�®{#xT��m�u�t�}�xÆÃ�~F²F~Y¼ h ikm�@m|t�m�ÈY}V�1����m]}�x�²Tuy��}��Y~�w%l¢~\{�ikuyt�m]�V�Ym9{�uvÈ@{�x��k}�u�lUuv°9~�}�uyx\tY�1i�~F²\m5�@m#m|t ��m|}�~�u�tkm9�ƾ�ikm|��m5�@x\�V��u��kwym`¶lUu�lUuy{�Ç�u�tkz�~`t]x\�k}�uylUuy°#m|�]}��V~`tY��w�~�}�uvx�t5����xk{�m|�V�¹��~`}�ikm9�¹}�i�~\t]~¢�ku���m|{�}|¶�t�~�uy²`m�x�tkm`¼Xh ikm&}�m|��}��¹¾!m|��mm#Àkm|{#��}�m|�½�Y��u�tkz5Ã\��� ¡\¼ n`�k¤�x\te}Vikm��V~`lUm�l¢~`{�iku�tkm9��~`�R¾%m9��m�����m|�eu�t½}Vikm�����m#²Tuyx\��� m#À��Ym9��u�lUm|t�}#¼�Muyz\����m¢¡ �U��i�x�¾��¹}�ikm���m|�V�kwy}!x`´x����¹m�À��@m|��uylUm|t�}V�#¼

h ikme�V�Ym|m|�����Y�1~\��m5�@m#}º¾!m#m9t ��� ��� }�u�l1m9�1~\t�� ������� }�u�lUm|�|¶���m9��m9l��kwyu�tkz»}�i�m]�V�Ym|m|�����Y��x`´R}�ikm~\�k}�x�l¢~�}�u�{#~`wvwy�Æ���@m|{#uy~`wvuy°#m9� ����x`z���~\l¢�#¼�h ikm½���@m#m9�������¢����m]}�x¸�V�Ym9{�u�~�wyuv°9~�}�uvx�t ~`��m]~¸�kuy}�ikuvz�ikm|�}Vi�~`t�}Vikx\��m&}�i�~`} ¾%m9��m�x�����m9��²\m|������uytkz�9,~`��uy�V�V~�¼���u�t�{�m�}Vikm�Ã�7�hgm#ÀTm9{#�k}�m|���Y��x\z\�V~`l¢�¹��wyx�¾%m9�!}�i�~\t}Vikm/9,~`��uy�V�V~1m9t�²�u���x\t�lUm|t�}|¶@lUm|lUx\���e~`{#{#m|�V� u��Rtkx\}R~`�s�kx\lUu�t�~�}�uytkz]~¢´µ~`{#}�x\�R~`��¾ uy}�i»}�ikm49s~`��u����V~}�m|��}��|¶�lU~\Ç�uytkzs�Ym9tkm�ÈY}V�Hx�´�}�i�m%{�xk�km!��u�l¢�kwyu È@{|~�}�uvx�t��E�@m|��´·x\�VlUm|�&����}�ikm!���@m|{#uy~`wvuy°#m9�ElUx\��m�~`�Y��~`��m|t�}#¼

?A@FOB?DC

Page 20: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

������������ ������������������������ ����!"�$#%���&����'(�*),+���-��/.0��213����4� ¡��

Specializationparameters

S.scMain.java

X-enclosing.javaX-specializable.java

X.java

javac+Harissa

Application

Tempo

X-specialized.c

gcc

javac+Harissa

C files

C files

X-generic.java

JSCC

�Muvz�����m¢¡\¡3H���}��V��{#}�����m&x�´H}�ikm�����x`}�x`}º�k�@m`¶��V�Ym9{�u�~�wyuv°9~�}�uyx\t5x�´X{�w�~`�V���

� � � �E�!�H�����H����'(��) ���5��-/�H������������

�s~�}�i�m|�!}�i�~\t�¾���uv}�uyt�zU~U����x`z\�V~`l �V�Ym9{�u�~�wyuv°|m|��´µ��x�l®��{|��~`}�{�iʶ�¾%m�i�~F²\ms{�ikx���m9t�}�x�{�x�t���}��V��{�}!~1����x�Á}�x`}º�k�@m%´µ��x\l�m�Àkuy��}�u�tkz�}�xTx\wy�|¶`lUuyt�uylUuy°#u�tkz&}�ikm ~\l1x���t�}Mx�´¿¾%x���Ç&tkm|m|�km9��}�x&�Ym9��´·x���l���m|~`wvu���}�u�{%u�tkuy}�u�~�wm#À��Ym9��u�lUm|t�}��|¼1h ikm�����x`}�x`}º�k�@m1u���uyl¢�kwym|lUm9t\}�m|�¸~`��~e��}V~�z\m|���Y��xk{�m9���|¼ �Mu�����}#¶�}Vikm�Ã�~F²F~]����x`z\�V~`l~\t���}�i�m5���@m|{#uy~`wvuy°|~`}�uyx\t�{�w�~`�V��m|��~\��m�����xk{�m9����m|�Ä}�x��Y��m9��~`��m¢´·x\���V�@m|{�u�~�wyuy°|~�}�uvx�t�~`t��Æ����xk����{#m�}�ikm{#x\�V��m9���@x\tY�kuyt�z����YtTÁ;}�uylUm�m|t�²Tu���x�t�lUm|t�}#¼Mh ikm|t�¶k}�ikm&Ã�~F²F~1{�xk�km�u��%}V��~\t���wy~`}�m|�5uyt�}�x��s¼ �Mu�t�~�wywv�\¶k}�ikm� {�xk�km&u�� ���@m|{#uy~`wvuy°#m9�]�Y��u�tkz�}�i�m�hEm9lU�@x����@m|{#uy~`wvuy°#m9�#¼

¸m�i�~F²`m¢��m|m|t�}�i�~`},}V~`Ç�u�tkz]}Vikm�~`���Y��x�~`{�iex�´!}��V~`t���w�~�}�u�tkz�Ã\~F²�~�����x\z\�V~`l¢��u�t�}�x»�/~`wvwyx�¾��s~\��Á�@m|{#}��&x`´ }�ikm���m|l¢~`t�}�uy{|�&x�´ Ã\~F²�~�}�x»�@m5l¢~`��m�m�À��kwyuy{#uv}�}�x½m�À��@x\��m����@m|{#uy~`wvuy°|~`}�uyx\tÄx\���@x\��}���t�uv}�uvm9�#¼�QÀk~\l¢�kwvm9��u�t�{�w����km1²Tuy��}���~`wH{|~�wywy�|¶@{|~`��}��|¶B~\t��»~\���V~F�5��m�´·m|��m|tY{�m|� :7��m#m¢�Tm|{�}�uvx�t½¤ <�¼Rh iT���|¶Y´·x\wvwyx�¾ uyt�zx����¹~`���Y��x�~`{�iʶT}�i�m�Ç�u�t����¹x`´H�V�Ym9{�u�~�wyuv°9~�}�uyx\t]}�iY~�} {#~\t]�@m�m�À�����m|�V��m9�5����uyt�zU}Viku���~`���Y��x�~`{�i�~\��m�tkx`}wyu�l1uy}�m9�e�\�5}�ikm����kt\}V~�À]~\t�����m9lU~\t�}�u�{#�¹x�´XÃ�~F²F~Y¶k���k}�����}�i�m&m�À�����m|�V��uy²`m9tkm|�V��x`´Q�s¼

O8O íQPSRUT�V

Page 21: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

¡9£ �8!"�U���4.:� 1�� � ���<��!"� #���+���! �����M�F������! !�� ���Q���U!$�S��� ��'Q� � !��>��' ��0� ! !$�S��� ��! !$� �

��� � ,�7 " 1 7� ")/ $ � 73� / ! "%$47 $47 �.-0/h i�m&x�²`m|�V~�wywÊ��}V���Y{�}��Y��m&x`´H}Vikm�����x`}�x\}º�k�Ym&u�������m|��m|t�}�m9�5u�t �Muvz�����mU¡\¡`¼�h i�m&uyt��Y�k}�}�x�}Vikm��V�Ym9{�u�~�wyu Á°9~�}�uvx�t�����xk{#m|�V�Qu��%~1Ã\~F²�~&����x`z���~\l ~`tY��~���m#}%x�´E�V�Ym9{�u�~�wyuv°9~�}�uyx\t�{#wy~\����m|�|¼Mh ikmsÃ�~F²�~1�T�@m|{�u�~�wyuy°|~�}�uvx�t�%w�~`�V���%x�l¢�kuvwym|��������� = n���@�����m|�Y~`��m|��}VikmÄ�Y��x\z\�V~`l ´·x��]�V�@m|{�u�~�wyuy°|~�}�uvx�tʼ �@x\�]m|~`{�i±{#wy~\���]}�x=�Ym�V�@m|{�u�~�wyuy°#m|��¶�uv}�z\m|tkm9��~`}�m|��~��ku�����~`}�{�ikm9�,}�x½��m|wvm9{�}�}�i�m¢~\������x\����u�~�}�m :7�V�@m|{�u�~�wyuy°#m|�Äx\�,z\m|tkm9��u�{ <�uyl1Á��wvm9l1m9t�}�~�}�uvx�t }�xÄu�t�²`x\Ç`m5¾ uy}�i=��m9���@m|{#}1}�xÄ}Vikmem�Àkm|{|�k}�uyx\t {�x�t\}�m�Àk} �!}�i�uy�¢u��¢{#~�wywym|� ~\t m9t�{�wyx\��uyt�zx��T��m|{#}:���ÁNm|t�{#wvx���u�tkzY¼ ��~F²�~ <�¼ ­ ���kuy}�uyx\t�~`wvwy�`¶ÊÃk��� � ����xk����{#m|�,��}V����lUm#}Vikxk���,}�x :7t�~`}�uy²`m <��V�Ym9{�u�~�wyu Á°|m|�½u�l¢�kwym|lUm|t�}�~`}�uyx\t��,x`´Q}�iku��,x\�T��m9{�} :���Áº�V�Ym9{�u�~�wyuv°9~`�kwym`¼ ��~F²�~ <!}Vi�~�},¾ uvwywX�YmUz`m9tkm|�V~�}�m|�»���½hm|l¢�Yxu�te~Uwy~`}�m|� �Yi�~`��m`¼

�sm�Àk}#¶k}Vikm&Ã\~F²�~��Y��x\z\�V~`l�uy�¹{�x�l¢�kuvwym|�5uyt�}�xU���T}�m9{�xk�km�����u�tkz��� � ���~\t���}V��~\t���w�~�}�m|��u�t�}�x��=²Tuy~}Vikm,9s~\��u��V��~U{�x�lU��uvwym|�|¼

hm|l¢�@x�}�~`Ç`m|�¹}Vikm���Á;}V��~\t���w�~�}�m|������x`z\�V~`l }�x`z`m|}�ikm9�¹¾ uv}Vi�}�ikm��V�Ym9{�u�~�wyuv°9~�}�uvx�t5��~\��~\l1m|}�m9���¹~`tY�z\m|tkm9��~`}�m9�¹}�ikmU���@m|{#uy~`wvuy°#m9�e²`m|�V��uvx�t��#¼¹h ikmU��ÁN}��V~`tY��w�~�}�m|�e����x`z\�V~`l ~`t��e}Vikm��V�Ym9{�u�~�wyuv°|m|�½{#xT��m�{#~\tm|uv}Vikm|�]�YmÄ}��V~`t���w�~�}�m9� ��~`{�Ç uyt�}�x Ã\~F²�~Y¶¹~`}�}�i�m�m�À��@m|t���m�x`´&wvx���u�tkz ��x\lUm»x\��}�u�l1uy°|~`}�uyx\t��|¶ x\�]�Ym�V��t=�ku���m9{�}�wy� ����u�tkz�}�ikm 9s~\��u��V��~Äm|t�²Tuy��x\tYl1m9t�}#¼ h ikmewy~`}�}�m9�¢x\�k}�uvx�t u��¢}�i�m�x�tkwy� x\tkm½{|������m|t�}�wv�u�l¢�kwym|lUm|t�}�m9�ʼ �Rx\}�m�}�iY~�}�Ã�~F²�~½����x\z\�V~`l¢��{#~\tÆ�Ym5�V�@m|{�u�~�wyuy°#m|��~`}��Yx\}�iÆ{#x\l¢�kuywvm�}�uylUm]~\t������Yt}�uylUm\¼

�T�@m|{#uy~`wvuy°|~`}�uyx\t»{#wy~\����m|�s~`��m&´µ��t��Y~`lUm|t�}�~`w}�x5x����R~\������x\~`{�i H :7uD<�}�ikm|�½~�wywvx�¾ }�i�m1����x`z���~\lUlUm9�}�x {�x�t�{�m9t\}V��~`}�mex\t �km#È@tku�tkzÆu�t\}�m|��m|��}�u�tkz�x\�k}�uylUuy°|~`}�uyx\t ��{#m|t�~\��uyx\��0:µuyuA<U}�ikm|� ~\����}V��~\{�}¢x�²`m9�¢}�ikmx��k}�u�lUuv°9~�}�uvx�tÄ����xk{�m9���|¶Êm�À�����m|�V��u�tkz�¾�i�~�}�}�x�x��k}�u�lUuv°|m�~`��x\�Y�Yx���m9�»}�x»i�x�¾�}�xex\��}�u�l1uy°#m�uy}#¼�h ikm´·x���lUm9� ~`�k²�~`t�}V~�z`m&~`wvwyx�¾��!}�ikm��Y��m9�¹}�x�¾!x\�VÇ�~�} }Vikm�wym#²`m|wÊx�´X}�i�m&x\��uvz\uyt�~`w���x����V{�m&����x`z\�V~`l�¶T¾�ikuywvm}Vikm&w�~�}�}�m|� ��m|�V�kwy}��¹u�t�l¢~\��Ç�u�tkz1}Vikm�tT��lUm|��x\��� �Y~`�V~`lUm#}�m|�V��x`´H}Vikm����@m|{#uy~`wvuy°|~`}�uyx\t]m|tkz\uyt�m`¼

��� � � (+")2 � � (9,~`��uy�V�V~�uy��~\t»x��BÁNwvu�tkm¢{�x\l¢�kuyw�~�}�uyx\t����k��}�m|l }Vi�~�}s´µ�kwywv�»�V�����@x\��}����k�kt�~\lUuy{�wvx�~`�ku�tkz5x`´%���T}�m|{#xk�km`¼7º}s{�x\l¢�kuywym|�RÃ�~F²�~�����}�m|{#xT��m�uyt�}�x�� {�xk�km�}Vi�~�},{#~`t½�@m�´µ�Y��}Vikm|�s{�x\l¢�kuywym|�½������}�~\t���~\���»� {�x�lU��u Áwym|�V�|¼ 9s~\��u��V��~�u�t�{#wy����m|�,~�z`z���m9����uy²`m�x\�k}�uylUuy°|~`}�uyx\t��|¶B�V��{�i»~\�slUm|}�ikxk�½u�tkwyuytku�tkz@¶�����uy²`m9t½���e~e�%wy~\���9suvm9��~\��{�i�� ­ tY~�wy�T��u��,~\t��¸~`tÄuyt�}��V~�Áº����xk{�m|�Y����~`w��}�~`}�u�{U{#wy~\����~\t�~�wy�k��u�� = ¡\¡U@;¼¢h ikm9��m¢x\��}�u�l1uy°|~`}�uyx\t��~\��m,{�x�lU��wvm9l1m9t�}�m|�5�\��}Vikm�� {�x�lU��uvwym|�|¼89,~`��uy�V�V~ � ���V��tTÁN}�u�l1m����T��}�m9l uyt�}�m|z\�V~�}�m|�!~�Ã�~F²F~��\�T}�m|{�xk�kmu�t�}�m9������m#}�m|�!}�x�m#Àkm|{#��}�m&�k�kt�~`lUu�{#~`wvwy��wyx\~`��m|���\�T}�m|{�xk�km\¼

9,~`��uy�V��~Uu��R�km9��uyz\t�m|��}�x5{#x\l¢�kuywvm�~�Ã�~F²�~�����x`z\�V~`l u�t�}�x��g{�xk�km�¾�ikuvwym�����m|��m|��²Tuyt�z¢~\��l��Y{�i]x`´}Vikm�x\��uyz`u�t�~�wM��}V���Y{�}��Y��m�~`�&�@x\�V��uy�kwym`¼¢����m|��m|��²Tuyt�z5}�i�m���}V����{#}�����m¢x�´!}�ikm�����x`z���~\l lU~\Ç�m9��9s~`��u����V~�V�kuy}�~\�kwvm�´·x�� z`m9tkm|�V~�}�uyt�z¢�Y��x\z\�V~`l¢�¹}�i�~`}�~`��m&}�x��@m�����xk{�m|�V��m|�e���]~���~\{�Ç`ÁNm|tY�]}V��~\t���wy~`}�x\�¹�V��{�i½~`�hm|l¢�@xY¼��B����}Vikm|�VlUx\��m`¶F9s~\��u����V~½i�~\���@m#m|t m�Àk}�m9t��km|� }�x»z\m|tkm9��~`}�m]� {�xk�km5}�i�~`}�{�x�t\}V~�u�t���m#Àk}��V~u�tT´·x���l¢~�}�uvx�t]�Y��m#´µ�kw�}�x�hm|l¢�@xY¼

��� � � /�* -0$hm|l¢�@x�u��%~\t¢x��BÁ;wyu�tkms����x`z���~\l �V�Ym9{�u�~�wyuv°|m|�Q´·x\�Q}Vikm�� w�~`t�z\��~`z`m = £�@N¶�}Vi�~�}!���Y���Yx���}V���@x`}Vi5{�x�l¢�kuvwym�Á}�uylUmU~`t��»�V��tTÁN}�u�lUm1�V�Ym9{�u�~�wyuv°9~�}�uvx�tʼR¸m1l¢~`��m1~�´·m|¾/m�Àk}�m9t���uvx�t��R}�x]hm|l¢�@x5}�x�lUx\��m�m��¿m|{#}�uy²`m#wy�}V��m9~�} Ã�~F²F~U����x`z���~\lU�|¼

?A@FOB?DC

Page 22: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

������������ ������������������������ ����!"�$#%���&����'(�*),+���-��/.0��213����4� ¡9�

h ikmÆ� {�xk�km»z\m|tkm9��~`}�m|� ´µ��x\l ~ Ã�~F²F~Æ�Y��x\z\�V~`l u���²\m|��� �ku��Bm9��m9t�}�´µ��x�l iT��l¢~\tTÁ;¾���uy}�}�m9tg��Y��x\z\�V~`l¢�#¼ 7�t ��~\��}�uy{|�kw�~`�|¶��Ym9{#~\����m�x\�k��m|{�}V��~`��m���m|�Y��m9��m9t\}�m|� ~`���®��}��V��{�}V����m|�|¶%��}��V��{�}V����m9�¢~`��m�Y��m9��lUx\��m1ikm9~F²Tuvwy�euyt 9s~`��u����V~�z`m9tkm|�V~�}�m|�»{#xk�km1}Vi�~`t�uyt�x\�V�ku�t�~`����� ����x`z\�V~`l¢�|¼ ­ wy��xY¶�lUm|lUx����l¢~\t�~�z\m|lUm|t�}&u��1�ku��¿m|��m|t�}�u�t � ~`t���u�t Ã�~F²�~�¶M~�wyw�x\�k��m|{�}V�1�@m#u�tkz����TtY~`lUuy{|~�wywv��~�wywyxT{|~�}�m|��u�tÆ}�ikmw�~�}�}�m9�#¼ ɹm9{#~`�Y��mex�´&}Vikuy�5��uy}���~`}�uyx\tʶ¹¾!m½m�Àk}�m9t��km9�=hm|l¢�@x ¾ uy}�i ~ÆlUx\��m»����m9{�u���me}V��m9~�}�lUm9t\}�x`´��}��V��{#}�����m|�|¼�,�\¾¹~`�V�e}º�k�YmU{#~\��}V�R~`��m�u�l¢�kwvu�{�uy}Ru�t»Ã�~F²�~�¶@~\t��½}º�k�@m1{#~\��}V�R�@m#}º¾!m#m9tex\�T��m9{�}��,~`��m�{�x�l¢l1x�t½u�t

Ã�~F²�~�¼,7�t¸{�x�t\}V��~\��}|¶Ê}�ikm|�»��~\��m|wv�exk{#{|���,uytÆ�/~\t���~\��mUx�´·}�m|t¸{�x�t���u��km9��m9��~`��~���~`�Ä����x`z\�V~`l¢lUu�tkz��}º�Twvm\¼!hx5~\������m|�V�¹}�iku��st�m#m|��¶@hm|l¢�Yx]i�~`���@m#m9t½m�Àk}�m|t��km9�e}�x5iY~`t��kwym�}º�k�@m�{#~\��}V���Ym|}º¾%m|m|t½��}��V��{�Á}V����m|�|¼Uh iku��&{#~\��~`��uvwyuv}º�½u���z`m9~`��m|��}�x�¾¹~`�V���R}Vikm�����x`z���~\lU�sz`m9tkm|�V~�}�m|�Ä�\� 9,~`��uy�V�V~�¶Êu�tľ�i�uy{�iÄ}�ikmw�~F�`x��k}!x�´X��}V����{#}�����m|�!u�� z\�Y~`�V~`t�}�m|m|��}�x��Ym�{#x\l¢��~�}�uy��wvm\¼

� � � "#���� �� ��� �

hx�x����ÇTtkx�¾ wym|��z`m`¶9}�i�m|��m%i�~F²\mQ�Ym|m|t�x�tkwy�,����m#wyu�l1u�t�~\���,uyt�²\m|��}�uyz\~�}�uvx�t���x`´Y���@m|{#uy~`wvuy°|~`}�uyx\t�x`´�x\�T��m9{�}�Áx���uym|t�}�m|� ����x`z���~\l¢�#¼ h ikm�m�Àku���}�uyt�z���m#w�~�}�m|�ƾ!x\�VǸuytY{�w����km|��~¸����x`z���~\lÅ�V�@m|{�u�~�wyuy°#m|��´·x\�¢~¸��l¢~`wvww�~`t�z\��~`z`m%�Y~`��m|�1x\tU��lUm|�V~�w��ʶ`~\t��1~s´·x���l¢~�wk}V��m9~�}Vl1m9t�}Hx`´@}Vikm����@m|{#uy~`wvuy°|~`}�uyx\t1x�´B²�u���}���~`w�{#~�wyw��#¼HÂÄm~\���kwy�1}Vikms~\������x\~\{�i1x`´Ê}��V~`t���wy~`}�uyx\tU}�xU~`t¢u�t�}�m|�VlUm|�ku�~�}�m�w�~`tkz���~�z\m¹´·x\�Q¾�i�uy{�i�~����@m|{#uy~`wvuy°#m9�Xm�Àku���}V� �}Viku��Q~`���Y��x�~`{�i�iY~`�Q�@m#m9t1u�t�²`m9��}�uvz�~�}�m9��m9~`��wvuym|�M}�x&uyl¢�kwym|lUm9t\}Q�Y��x\z\�V~`l/�V�Ym9{�u�~�wyuv°9~�}�uyx\t1´·x��X~&��u�l¢�kwvmu�l¢�Ym9��~`}�uy²`m¢w�~`tkz���~�z\m`¼ ­ wy��xY¶x\�k}�uylUuy°#u�tkz½{�x�lU��uvwym|�V�&i�~F²`m¢~`�Y����m9����m|�Ä�Yx\}�i���~`}�~e��m9����m|��m|t�}�~`}�uyx\t~\t���{�x\t�}V��x\w�;@x�¾ �V�Ym9{�u�~�wyuv°9~�}�uyx\t�¼

� � Í «��7ª ��� �`ªk¨�� Ñ � Ñ�� Ñ ¦�� Í «�¨ ÏVÑ ©�� Í� ¨ Í Ò �µª � �ª @Í §�Ä~`�V���Y~`�V�s~\t�����}�m|m|t���z\~\~`�V���km#²\m#wyx\�@m|�&~ ��~\��}�uy~`w`m#²�~`wy��~`}�x��¿´·x\��~R��l¢~�wyw`x��T��m|{#}�ÁNx\��uvm9t�}�m|�,w�~`tkz���~�z\m�Y~`��m|�Æx�t ��lUm|�V~�w�� = n���@N¼ h ikm|�Ä´·xk{|���¢����u�l¢~`��uvwy��x\tÆu�l¢�kwym|lUm|t�}�~`}�uyx\t uy�V����m|�U����{�i ~`�1m|t��V����uyt�z}�m|�VlUuyt�~`}�uyx\t=~`t��=}Vikm���m|����m|��m|t�}�~`}�uyx\t x�´&��t�ÇTtkx�¾�t=²�~�w��km|���Y����u�tkz�}�i�m����@m|{#uy~`wvuy°|~`}�uyx\t=����xT{#m|�V�#¼7�t�{�x\t�}V��~\��}|¶Y¾!m1i�~F²\m�uyt�²\m|��}�uyz\~�}�m|�e}Vikm1~\���kwyuy{|~`�kuywvuy}º�ex�´�����x`z���~\l��V�Ym9{�u�~�wyuv°9~�}�uvx�te}�x5}VikmUx\�T��m9{�}�Áx���uym|t�}�m|�5�Y~`�V~`�kuyz\l�¼

��ikxTx5~\t��Ä�T�Yt���~`��m|�Vi½����m|��m|t�}R��~\��}�uy~`wEm|²F~`wy�Y~�}�uyx\t½~\�s~5l1m9~`t���´·x\�sm#wyuylUu�t�~�}�uyt�z�²Tuy��}���~`wH{|~�wywy�u�t���u�l¢�kwvm&x��T��m|{#}�ÁNx\��uvm9t�}�m|�5wy~\tkz\�Y~�z`mE= ¡F�%@N¼Qh ikm#u��¹¾%x���ÇU´·xk{|����m9�¹x\t5´·x\�Vl¢~�wyuv°|uytkzU}�i�m�~`t�~`wv�k��uy�¹~`tY�}V��~\t���´·x\�VlU~`}�uyx\t�����m|~`wvuy°#m9� �\� �@m|��´·x\�Vl1u�tkz �Y��x\z\�V~`l �V�Ym9{�u�~�wyuv°9~�}�uvx�t x�t±����x`z\�V~`l¢�¢¾ uy}�i±²Tu���}V��~�w{|~�wywy�|¼

� � Í «��7ª ��� �`ªk¨�� Ñ � � �µªÄ¨#©�ª � §�7ªk¨ � Ñ ���x\���V~�i�~\�%~`wy��x�u�t�²`m9��}�uvz�~�}�m9��}�i�m,~\������x\~`{�i¢x`´����uyt�z1}V��~\t���w�~�}�uvx�t¢}�xUm�Àk}�m9t���}Vikm&~`����wvu�{#~\�kuvwyuy}º�Ux`´~\t�m#ÀTu���}�u�tkzs����x`z���~\l �V�@m|{�u�~�wyuy°#m|�H}�x,tkm|¾ ����x`z���~\l {#x\t���}��V��{�}V�L= nk¡S@;¼Q�Tikm¹�km|��uyz\tkm9��~`t1~`���Y��x�~`{�i�}�x�V�@m|{�u�~�wyuy°#u�tkz&uyl¢�@m|�V~�}�uv²\mR����x`z\�V~`l¢�M���1}V��~\t���wy~`}�uyx\tUuyt�}�x�~�´µ��t�{#}�uyx\t�~`w@�V������m#}Qx`´�T{�ikm|lUm\¶`´·x\wvwyx�¾%m9����5�V�@m|{�u�~�wyuy°|~�}�uvx�t]�Y��u�tkz�~`t]m�Àku���}�uytkz��V�Ym9{�u�~�wyuv°|m|�!´·x��R�T{�ikm|lUm\¶�t�~`lUm|�»�T{�i�uy�Vl =ã�%@N¼

O8O íQPSRUT�V

Page 23: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

n � �8!"�U���4.:� 1�� � ���<��!"� #���+���! �����M�F������! !�� ���Q���U!$�S��� ��'Q� � !��>��' ��0� ! !$�S��� ��! !$� �

� �¨�� ���\ªk¨ � Ñ �ÆÑ � ÒHªk¨|ª¸© Í �© Í § Í� ¨9ªk¨ � Ñ ��,�k��m|{�}&u�tkwyuyt�uytkz½u���~e}�m|{�i�t�uy�T�km¢´·x�����}�x\��uyt�z�}�m|l¢�@x\�V~`���»x\�T��m9{�}V�&x\t¸}�i�m5��}V~`{�Ç =v¡9n�@;¼ ­ t�x\�k��m|{�}}Vi�~�}Xu��Q����m|�Ux�tkwv�1wvxk{|~�wywv��u�t�~�lUm#}�i�xT��{|~`t¢�@m���}V~`{�Ç\ÁN~`wvwyxk{#~`}�m|�1��~`}�ikm9�M}�i�~\t¢ikm|~\�TÁN~`wvwyxk{#~`}�m|��¶�}�iT���u�l¢����x�²�u�tkzU}�ikm��@m|��´·x\�Vl¢~`t�{#msx`´H}Vikm�����x`z���~\l]¼

h ikms{�x\t�}V��x\w�;@x�¾=��uyl¢�kwyuvÈ@{#~`}�uyx\t¢�Ym9��´·x���lUm9�U���U���@m|{#uy~`wvuy°|~`}�uyx\t1m|t�~\�kwvm9�M´µ����}�ikm9�Xx\��}�u�l1uy°|~`}�uyx\t��x�t±��~�}V~ ��}��V��{�}V����m9�#¶�~\��u��]�ku��V{#���V��m9� uytd��m|{#}�uyx\tg�T¼��,�k��m|{�}5uytkwyu�tkuyt�z u��]~\t uyt���}�~\t�{�m�x�´����Y{�ix��k}�u�lUuv°9~�}�uvx�t��¹}�i�~`} ¾%m�¾ uywvw{�x\tY��u��km|�!u�t�}�ikm�´µ�k}V����m`¼

� �¨�� ���\ªk¨ � Ñ �ÆÑ � « Ñ � ¨#© Ñ ��� ÑTÐh i�m,JXx\��}�m�Àe{�x�lU��uvwym|�,=v¡ ��@uyl¢�kwym|lUm|t�}V��x\��}�u�l1uy°|~`}�uyx\t�� ��u�l1uyw�~`� }�x�}�ikx���m��@m|��´·x\�VlUm|���\������x`z\�V~`l�V�@m|{�u�~�wyuy°|~�}�uvx�tʼ,JXx\��}�m#À»uy�&�Y~`��m|�»x�t���}�~`}�u�{�¶Êz`wyx\�Y~�wX~`t�~`wv�k��m|�|¶Ê{�x\l¢�kwym|lUm9t\}�m|�Ä�\�»~\tÄ~\�k}�x�l¢~�}�m9��Y��x`ÈYwvu�tkz����k��}�m9l]¼H����x�ÈYwyu�tkzsu�tT´·x���l¢~�}�uvx�t�z��kuy��m|�X~�z\z\��m|�V��uy²`m�x\�k}�uylUuy°|~�}�uvx�t��|¼h ikm9��m¹x\��}�u�l1uy°|~`}�uyx\t��m|wvu�lUuytY~�}�m�²Tuy��}��Y~�w¹{#~�wyw��1~\t�� �V�Ym9{�u�~�wyuv°|m]lUm#}Vikxk���¢~`{|{�x\�V�ku�tkz»}�xÄ}Vikm]}º�k�@m|�Ux�´s}�ikm|uy�U~`��z\��lUm9t\}V�#¼7�t ´µ~`{#}#¶¹}�i�m�x��k}�u�lUuv°9~�}�uvx�t��¢x��¿m|��m|�=��� JXx\��}�m#À �km|�@m|tY� x�t=}�ikm½~`{|{#���V~`{#�Æx�´�uv}V��~`t�~`wv�k��m|�¢~`tY��Y��x`ÈYwvu�tkz����k��}�m|l�¼ ­ �,~���m|�V�kwv}|¶Ê}�ikm¢wym#²\m#wHx�´�x��k}�u�lUuv°9~�}�uyx\t�uy���kuv³�{#�kwy}�}�xe����m|�ku�{�}|¼&É!�»{#x\t�}��V~`��}#¶�V�@m|{�u�~�wyuy°|~�}�uvx�t5u�� ��~\��~\l1m|}�m9��uy°#m9�]����u�tT´·x\�Vl¢~�}�uvx�t]����x�²Tuy��m|���\�]}�ikm��Y��x\z\�V~`l¢lUm|� :µx\� {#x\l¢�@x\tkm9t\}�Y��m9��<�¼

�B����}Vikm|�VlUx\��m`¶:JXx���}�m�À�� �5x��k}�u�lUuv°9~�}�uyx\tY��x\t�wv� ����x\�Y~�z\~`}�m»~\t��±m�À��kwyx`uy}�}º�T�@m�u�tT´·x���l¢~�}�uvx�t±}�x��m|lUx�²\mR²Tuy��}��Y~�wÊ{#~`wvw��#¼��T�@m|{#uy~`wvuy°|~`}�uyx\t5z`xTm|�¹�@m#�`x�t��]}º�T�@m|�¹~`wy��xU�Y��x���~�z�~�}�u�tkz1²F~`wy��m|�|¼ ­ � ~1��m|�V�kwy}#¶lUx���mXx��k}�u�lUuv°9~�}�uyx\tY��{#~\t,�@m��@m|��´·x\�VlUm|�,¾ uv}Vi�}�ikm9��m�²F~`wy��m|�4:��DM 1 M���wyxTx\����t���x`wywyuytkz�~\t��&~`�V�V~F���Yx���t����{�i�m|{�Ç�uyt�z <a¼

�R~`}�ikm9��}Vi�~`t {�x�t���u��km9��u�tkz�{#x\l¢�kuywy~`}�uyx\tʶXm#ÀTm9{#�k}�uvx�tʶ�~\t�� ����x�ÈYwyu�tkzÄ~\�1��m|��~\��~`}�m5�Yi�~`��m|�|¶X}�ikmm#Àkm|{#��}�uyx\t�m9t\²Tu���x�t�lUm|t�}�{|~`t�u�t�{�w����km,~�wyw@}Vikm|��mR}V~`�VÇT�#¶T~`t��5�Ym9��´·x���l {�x�l¢�kuvw�~�}�uvx�t�~`�%~�{#x\t�}�u�tT�kx\����Y��xk{�m9���|¼�h iku��E~\������x\~`{�i,~�wywyx�¾��Ê~�z`z���m9����uy²`mEx��k}�u�lUuv°9~�}�uvx�t�����uylUuywy~\�Ê}�x�}Vikx\��mXm|l¢�kwyx��`m9���\�,����x`z\�V~`l�V�@m|{�u�~�wyuy°|~�}�uvx�tʶT��u�t�{�msuytk´·x\�VlU~`}�uyx\t¢u�t�}Vikm�´·x���l x�´E�Y��~`z`mR��~`}�}�m|�Vt���u��!~F²F~`uvw�~`��wvmR~`}%�V��t�}�uylUm`¼Qh i�uy�}�m|{�i�t�uy�T�km�u�� uytY{�x\�V�@x\�V~�}�m9��u�t�}�ikm,´·x\��}�iY{�x\lUu�tkz 9Rx\}a�T�@x`}�Ã�~F²�~1{#x\l¢�kuywvm9�#¼

� �]���H�]�� � �����

¸m1iY~F²`m�����x�²Tuy�km9�½~`tex��k}�wyuyt�m�x�´Qikx�¾/����x`z���~\l��V�Ym9{�u�~�wyuv°9~�}�uvx�tex�´Q~`t½x��T��m|{#}�ÁNx\��uvm9t�}�m|��w�~`tkz���~�z\m�V��{�i�~\��Ã�~F²�~�{#~\t��Ym�~`{�i�uvm|²`m|��¼����x`z���~\l �V�Ym9{�u�~�wyuv°9~�}�uvx�t�x�´EÃ�~F²�~�~`�!����m|��m|t�}�m9�¢uyt5}�iku��¹��~`�@m|�!i�~`�l¢~\t\�e~`�Y�kwvu�{#~`}�uyx\t��s~`t��½�V~�u���m|�Rl¢~\t\��u����V�km|�|¼Rh iku��,��m9{�}�uyx\tex��k}�wyu�tkm|�,�Yx�����u��kwvm�m�Àk}�m9t���uyx\tY��}�x]x\���¾!x\�VÇB¼

�Mu�����}#¶�¾!m¢x\�k}�wvu�tkm�~�lU~���x\��~`�Y�kwvu�{#~`}�uyx\tÄ�kx\l¢~�u�t H���x`´·}º¾!~\��mU{�x�lU�@x\t�m|t�}��|¼Uh i�m|tʶ�¾!m¢�kuy�V{#�Y���u��V���km9���V�Ym9{�uvÈ@{�}�x5����xT�Y��{�u�tkz5���Y��m�Ã�~F²�~¢����x\z\�V~`l¢� �V~�}�i�m|��}Vi�~`t 9,~`��uy�V�V~�Áº���@m|{#u È@{�����x`z���~\l¢�#¼��Mu ÁtY~�wywv�\¶B¾!mUuyt�²`m9��}�uvz�~�}�m1ikx�¾/}Vikm¢}��V~`t���´·x\�Vl¢~�}�uyx\tY�R�@m|��´·x\�Vl1m9�»���»����x`z\�V~`l �V�Ym9{�u�~�wyuv°9~�}�uyx\t�{#~`tÄ�Ymz\m|tkm9��~`wvuy°#m9��}�x¢~`wy��x¢uytY{�w����km���~`}�~¢��m9����m|��m|t�}�~`}�uyx\tʼ

?A@FOB?DC

Page 24: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

������������ ������������������������ ����!"�$#%���&����'(�*),+���-��/.0��213����4� n�¡

� Ñ � ¨ Ð ª�© Í « Ñ � Ñ �HÍ� ¨|§­ }V��m9t���u�t���x�´·}º¾¹~`��m�m9tkz`u�tkm|m|��uytkz�u��s}Vikm��km#²\m#wyx\��lUm9t\},x�´¹���k��}�m9lU�s´µ��x\l ��x�´·}º¾¹~`��m1{#x\l¢�@x\tkm9t\}V�#¼h i�uy�Um|lUm9��z\uytkz¸��x`´·}º¾!~\��m]~`�V{�ikuv}�m|{#}�����m5u��Uuvwywy�Y��}V��~`}�m|� ����Ã�~F²�~»É¹m|~\t��U~`t�� uv}V����~\�kuy��wv��z\��x�¾ u�tkz��m#wym|{#}�uyx\t�x`´ {#x\l¢�@x\tkm9t\}V�#¼½h iku��1}���m|t��Æ��}���m|�V��m9�&}�i�m5tkm#m9��´·x\��z`m9tkm|��uy{#uv}º�Ä}�x�~\������m|�V��~»{#wy~\���&x`´��x`w��k}�uvx�t������¢~����@m|{#u ÈB{R��x�´·}º¾¹~`��m�{�x\l¢�@x\tkm9t�}#¼XhEx�x�²`m|�V{�x�lUm!}VikmRm#À��Ym9{�}�m9���@m|��´·x\�VlU~\t�{�ms�Ym9t�~�wy}º�`¶�V�@m|{�u�~�wyuy°|~�}�uvx�t�¾ uywvwEwvu�Ç�m|wv�5�@m|{#x\lUm�~¢{#��uv}�uy{|~�wÊ}�x�x\w7¼

7�t]}�iku�� {�x�t�}�m�Àk}|¶�x����!tkm�Àk} ��}�m|�]~�u�lU�¹~`}¹��m#²`m|wvx��ku�tkz1~UlUm#}�i�xT��x`wyx`z`�U´·x��!i�uvz�ikwv��ÁNz`m9tkm|��uy{s{�x�l�Á�@x\t�m|t�}��|¶T}�i�~`}!x�t�{�msuyt�}�m#z\�V~�}�m|���V�@m|{�u�~�wyuy°#m,uyt�~�����m|��uy{#}�~`��wvm,¾!~F�¢u�t�}�xUm�³�{�uym|t�}!uyl¢�kwym|lUm|t�}V~�}�uyx\tY�#¼

�ʪ���ª�ª�§¢¨|ªk© BÍ ¨ �7ª � �Hª BÍ�@x\�¹�@x\��}�~`��uvwyuv}º���Y�����@x\��m|�|¶Tuv} {|~`t5�@m&�Ym9tkm�ÈB{�u�~�wÊ}�x¢����xk����{�m��V�Ym9{�u�~�wyuv°|m|��{�xk�km,uyt�Ã\~F²�~Y¼HhxU��x¢��xY¶x�tkm�x��k}�uyx\teu���}�x�}��V~`t���w�~�}�m&}Vikm1�V�@m|{�u�~�wyuy°#m|��� ����x`z���~\lË��~\{�Ç5u�t�}�x5Ã�~F²�~�¼ �Rm|²`m|��}�i�m#wym|�V�#¶Y�V��{�i½~\t~\������x\~\{�i5¾!x\�kw��em#wyu�l1u�t�~`}�m���x\lUm�x��k}�u�lUuv°9~�}�uyx\tY�#¶BlU~`uyt�wv��}�ikx���m1��m|wy~`}�m|�e}�x�}�i�m�²Tuy��}��Y~�wEl¢~`{�i�uytkm:;��m|m���m|{#}�uyx\t�¤Y¼ � <�¼­ }��V~`t���wy~`}�uyx\t¢��~\{�Ç�u�t�}�x�Ã�~F²�~�uy�!�Yx�����u��kwvmRu ´�}Vikm�� �V�Ym9{�u�~�wyuv°|m|��{#xT��mRi�~`��m|tkx��kz\i¢u�tT´·x���l¢~�}�uvx�t

~\t�����}V����{#}�����m,}�x���m9{�x�²\m|�!Ã\~F²�~U{�x\tY��}V����{#}�uyx\t��|¼�psuv²\m|t]x\���¹�V�Ym9{�u�~�wyuv°9~�}�uvx�t5����xk{�m|�V�|¶�}Viku�����m|wvuym|�!x�t}Vikm¹}��V~`t���w�~�}�uyx\tY�H�@m|��´·x\�VlUm|�U����}�ikm 9,~`��uy�V�V~R{�x�l¢�kuvwym|�X~\t��1}�ikm }V��~\t���´·x���l¢~`}�uyx\t��H�kx\t�m¹����hm|l¢�@xY¼��x`}�uy²�~�}�m|������}�i�m�m|t�{#x\���V~�z\uyt�z��@m|t�{�iYlU~\��ÇÄ��m9����wv}V�&uyt �Tm|{�}�uvx�t¸¤Y¼ ¤Y¶�´µ��}�����m�¾!x\�VǽuytY{�w����km|��}�ikm��m#²`m|wvx���lUm|t�}¹x�´M����{�i�~���~\{�Ç¢}��V~`t���wy~`}�x��#¼

� ªk¨9ªÄ© Í �H© Í § Í� ¨|ªk¨�� Ñ � ¨|©�ª � § �NÑ © =ªk¨ � Ñ � §h i�uy����~`�@m|�]{�x�t�{�m9t\}V��~`}�m9��x\t±}Vikm�x��k}�u�lUuv°9~�}�uvx�t x�´�}�i�m¸{#x\t�}���x`w ;@x�¾ }Vi�~�}��km|�@m|tY����x\t±��}�~�}�uy{�Y~�}�~Y¼��T�@m|{#uy~`wvuy°|~`}�uyx\t�~�w���xem#Àk�@x\��m|��x����@x\��}���tkuy}�uym|��}�x½x\��}�u�l1uy°#m�}Vikm5��~`}�~ ;Yx�¾&¼e�T�Ym9{�uvÈ@{#~`wvwy�`¶Hu�t}VikmR�V�Ym9{�u�~�wyuv°|m|�¢u�l¢~�z`m¹È@wv}�m|��uytkz�m�À�~`l¢�kwym`¶\}�ikmR~\{#{#m|�V��m9�X}�i���x\��z\iUuytY�kuy��m|{#}�uyx\t��Q}�x�x��T��m|{#}XÈYm#w����%~`��m~�Ç�m#�¢��x\���V{�m ´·x��X´µ����}�i�m|�%x\�k}�uylUuy°|~�}�uvx�tʼM�R~�}Vikm|��}�i�~\t�l¢~`tku����kw�~�}�uyt�z1��~`}�~&}Vi���x��kz\i¢x��T��m|{#}QÈYm|wy�Y�#¶uy} u���lUx\��m,m#³�{�uym|t�} }�x���}�x���m&��~`}�~¢u�t]wyxk{#~`wʲF~\��u�~`��wvm9�#¼Qh ikm9��m�~\��m&{�ikm9~`�@m|�¹}�x�~`{#{#m|�V�#¶�~\t���}���uvz\z`m9�x��k}�u�lUuv°9~�}�uvx�t�� ���5~�� {#x\l¢�kuywvm9�#¼

� � ��']�%"#�]�E�#��'

�%x�l¢�Yx�tkm|t�}�Áº��~\��m9�1��x�´·}º¾¹~`��m%}�m|{�i�t�x`wyx`z`�&u��Q~�z���x�¾ u�tkz,}���m|t��Uu�t���x`´·}º¾!~\��m¹�km#²\m#wyx\��lUm9t\}|¼87º}Ql¢~\Ç�m|�z\m|tkm9��u�{�uy}º�]~5{�m|t�}V��~`w�uy�V�V�km`¼07�t½}Vikuy�s��~`�@m|�|¶B¾%m�i�~F²\m��km|lUx�t���}V��~`}�m9�e}�i�~`}R���@m|{#uy~`wvuy°|~`}�uyx\teu��R~�Ç`m#�}�xTx`wÊ}�x�x�²\m|�V{�x�l1ms}�ikm��@m|��´·x\�Vl¢~`t�{#m,�@m|tY~�wy}º�5u�t�{#���V��m|�5���]z`m|t�m|��uy{#uv}º�\¼

�T�@m|{#uy~`wvuy°|~`}�uyx\t m�À��kwyx`uy}��Uz`wyx\��~`w%u�tT´·x���l¢~�}�uvx�t ~F²�~�uywy~\�kwym5¾�ikm9t ��x�´·}º¾¹~`��m5{�x�lU�@x\t�m|t�}��¢~`��m5u�tTÁ}�m#z���~`}�m|�Äu�t\}�x»~`t¸~`����wvu�{#~`}�uyx\tʼ��Mm9��´·x���lUu�tkze}��V~`t���´·x\�Vl¢~�}�uyx\tY�,�V��{�i�~`��²Tu���}V��~�wQ{|~�wywQm#wyu�l1u�t�~`}�uyx\tʶ{#x\t���}�~\t�}�����x\��~`z\~�}�uvx�t�~`t�� {#x\t���}�~\t�}&´·x`w��ku�tkz�}V����tY�1~Äl1xk����wy~\��{�x�l¢�Yx�tkm|t�}�Áº��~\��m9�Æ~`���kwyu�{#~�}�uvx�tu�t�}�x�~¢lUx\tkx\wvuy}�iku�{�x\��}�u�l1uy°#m9�]�Y��x\z\�V~`l�¼

¸m5i�~F²\m¢��m#²`m|wvx��Ym9�Ä~½�V�@m|{�u�~�wyuy°#m|�,´·x���Ã�~F²F~���~\��m9�Äx�t¸m�Àkuy��}�u�tkze}�xTx\wy�|¶t�~\lUm#wy�`¶M~�Ã�~F²�~�ÁN}�x`Á��{#x\l¢�kuywvm9� :�9,~`��uy�V��~ <s~`t���~�� ���@m|{#uy~`wvuy°#m9� :7hm|l¢�@x <a¼]ÂÄm]i�~F²`m�����m|�¸uy}&}�x»�V�Ym9{�u�~�wyuv°|m�~`t¸uyl¢~`z`m�ÁÈ@wv}�m|��uytkz�~`����wvu�{#~`}�uyx\tʼ�h iku��s~\���kwyuy{|~�}�uyx\t»uy�,��}V���Y{�}��Y��m9�½uytÄ~5lUxk���kw�~`�s¾!~F��}�xe�V�����@x\��}s~�²�~\��uym#}º�

O8O íQPSRUT�V

Page 25: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

n\n �8!"�U���4.:� 1�� � ���<��!"� #���+���! �����M�F������! !�� ���Q���U!$�S��� ��'Q� � !��>��' ��0� ! !$�S��� ��! !$� �

x`´���~�}V~5��m|����m|��m|t�}V~�}�uyx\tY�R~`tY�½uyl¢~`z`m�}V��m9~�}Vl1m9t�}��|¼��k�Ym9{�u�~�wyuv°9~�}�uyx\t�i�~`�,�Ym|m|tÄ��ikx�¾�te}�x]m|wvu�lUuytY~�}�m}VikmUx�²`m|�Vikm9~`�eu�t�{#���V��m|�»���½}�i�uy����}��V��{�}V����u�tkze��}V��~`}�m|z`�`¼�7�tÄ����~\{�}�uy{#m`¶¿}�ikm¢�V�Ym9{�u�~�wyuv°|m|���Y��x\z\�V~`l uy��Y�]}�xU´·x\���¹}�uylUm|�R~`�!´µ~`��}�~`�!}Vikm&x\��uvz\uytY~�w¿x\tkm\¼

��m|²`m9��~`wBwym|�V��x\t�� {|~`t��Ym����V~F¾�t5´µ��x�l®}�iku�� ¾!x\�VÇB¼

I �T�@m|{�u�~�wyuy°|~�}�uvx�tÆx�´,l1xk����wy~\�1Ã�~F²�~»����x`z\�V~`l¢��{|~`t �Y��~\��}�uy{|~�wywv��u�lU�Y��x�²\m5�Ym9��´·x���l¢~\t�{�m\¼Äɹm�Á��u��km9�R}Vikm1���V��~`wx��k}�u�lUuv°9~�}�uyx\tY��u�t�{�w����km9�»u�t½uyl¢�@m|�V~�}�uv²\m����@m|{#uy~`wvuy°#m9���|¶B¾%mUi�~F²`m�´·x���t��»}Vi�~�}x\�T��m9{�}�Á;x���uym|t�}�m9������x`z���~\l¢��x��¿m|�Hx\}�ikm9�Mx\���@x\��}���t�uv}�uvm9�E´·x��Muyl¢����x�²`m9lUm|t�}#¶Fx\�Y�Yx���}V��tkuy}�uym|�M}��V~�Á�kuy}�uyx\t�~`wvwy�]��}�����uvm9�]~\� ~`�k²�~`tY{�m|�]x\��}�u�l1uy°#u�tkz�{#x\l¢�kuywy~`}�uyx\t]}�m|{�iYtkuy�T�km9�#¼

I ��m�Áº����uyt�z�m�Àkuy��}�u�tkz�}�xTx`w�� }�x��km|²`m|wvx��]x�����Ã�~F²�~����@m|{#uy~`wvuy°#m9��i�~`�R����x�²\m|�����Y{#{�m9����´µ�kw�u�te}�m9��l¢�x�´E�km|²`m|wvx���lUm|t�}Q}�u�lUm`¼Xh iku��%��m|�V�kwy}%i�~\���@m#m9t�x\�k}V~�u�tkm|�¢w�~`��z`m|wv�1¾ uv}Vikx\��}%{�x�l¢����x�lUuy��uyt�z�}�ikm�T��~�wyuv}º�5x�´M}�ikm��V�Ym9{�u�~�wyuv°|m|������x`z\�V~`l�¼

I ɹm|{#~\����mRx\�Y��~`�Y����x�~`{�i¢u�t�²`x`wy²`m9�Q�V�Ym9{�u�~�wyuv°|uytkz�� ����x`z���~\lU�|¶�uy}%m9t�~`��wvm9�%~1{�w�~`�V�Qx�´x\�k}�uylUuy°|~�Á}�uyx\t���}�i�~`} uy�¹x��k} x�´M��m9~`{�i�x`´Hx�����uyt�~\����Ã�~F²�~1��x\�Y��{#ms}�x��\�T}�m|{�xk�km&{#x\l¢�kuywvm9���|¼

¸m1�@m#wyuvm|²`m1}�i�~`}s~��V�Ym9{�u�~�wyuv°|m|�Ruy�,~�Ç�m|�]}�xTx`w´·x\��x��T��m|{#}�ÁNx\��uvm9t�}�m|�e��x�´·}º¾¹~`��m��km#²\m#wyx\��lUm9t\}Rm|tTÁ²Tu���x�t�lUm|t�}��|¼N7�t]�Y~`��}�u�{#�kw�~`�|¶kuyt]}�i�m�{�x\t�}�m�Àk} x�´MÃ\~F²�~1É!m9~`t��|¶�~¢���@m|{#uy~`wvuy°#m9� ��i�x\�kw��]~`wvwyx�¾ lUxk���kw�~`�~\���kwyuy{|~�}�uvx�t��!}�x��@m�lU~\���@m|��uyt�}�xUm#³�{�uym|t�} uyl¢�kwym|lUm9t\}V~�}�uvx�t��#¼

� � )�� �H��'5�!� �

= ¡ @ � ¼ã�1¼ ­ t��km9����m|tʼ .0��21����� �' ��! >��U� �(��' ������� ����!"�$#%��������' )S��� �D� � � . ��13����4�E� ' 1 �F��'��13� � 1 �#¼=�%ik� }�i�m|��uy�|¶¹�%x�lU�Y�k}�m9���k{�uym|t�{#m��,m|�Y~`��}�lUm|t�}#¶ �st�uv²\m|�V��uy}º��x�´&�%x��Ym9t�i�~`z`m|t�¶���~F�¡9�`�`¤Y¼H��7 � ��hm|{�i�t�uy{|~�wÊ��m9�Yx���} ��¤��T¡9��¼

= n�@&Ã@¼ ­ ����w�~`t��km9�#¶�� ¼���ikuywvu��Yx���m\¶��s¼`�!i�~`l1�Ym9���|¶\�B¼ ÃY¼F�Qz\z`m9���|¶�~`t���É�¼ �1¼9ɹm9���Vi�~`��¼ �B~`��}#¶�m �Bm9{�}�uy²`m���TtY~`lUuy{&{#x\l¢�kuywy~`}�uyx\tʼN7�t�� � ��7 � �3? = n`�%@N¶Y��~`z`m|�,¡|¤\���¿¡9�`��¼

= ��@���¼!É ~`uvm9�#¶ ��¼�psw���{�ÇB¶s~`tY� ��¼��\{�ikwyu�tkzY¼��X~\��}�uy~`wRm#²�~`wy��~`}�uyx\t±x`´�tT��lUm|��uy{|~�ws�Y��x\z\�V~`l¢��u�t�@x\��}��V~`tʼC7�t ��� ��� � .'�F � ��E���5���5� ��� ��' .:���U�&����!��0-���!"� ���&����' ��' � �S����'��&���S���������S��. ��13���� � ��'�� ����!$���&����'Y¶���~�z\m|�%¡`¡|���B¡9�\nk¶��,��w�~`tY�kxY¶�� � ¶ ��� ­ ¶�Ã���tkm,¡|�`�`¤Y¼FhEm9{�i�tku�{#~`w\��m9�Yx���}�`¤�����¶ �stkuy²`m9����uy}º��x�´H�»m#w��Yx����Vtkm`¶ ­ ����}��V~�wyuy~Y¼

= ¤3@ ­ ¼ ­ ¼TÉ!m9��wyu�tʼ¿�M~\��}�uy~`wYm|²F~`wy�Y~�}�uyx\t�~\���kwyuvm9��}�x1t��Yl1m9��u�{#~`w@{#x\l¢���k}V~�}�uyx\t�¼ 7�tK ��� � ��'D)S� �� ' �����' � � ��� ��' �� ��' � �&����' ��!�.0��21��2���E�4� '<1�¶Y�Y~�z`m9�,¡|�`���B¡F����¶ �Ru�{�m\¶ �@�V~`t�{#m`¶Ê¡9�`� �Y¼ ­ �%�Å�%��m9���|¼

= ��@�É�¼ ��¼Qɹm9���Vi�~`��¶�h�¼ �R¼ ­ t��km9����x\t�¶���¼ �1¼ � ~�°|x�¾���ÇF~Y¶Q~`t�� 9�¼ � ¼ � m|²T�`¼ � uvz�i�}º¾%m|uvz�i\}¢��m|lUx`}�m�Y��xk{�m9������m&{#~�wyw;¼ ��� �Q���' �S���S������' �4��' � ��� � ���B� ��� >��U���S�4��¶Y£%:�¡�<�H �����k�\�k¶ �@m|���V��~\���»¡9�`� ��¼

= ?�@�Â/¼ 9�¼`�!ikm9��tkz,~`t�� � xTx\tkz ­ ¼\�QÀk��wvx���u�tkz�u����V�km9�Ex`´�x\�@m|�V~�}�u�tkz����k��}�m|l¢���}��V��{#}�����uyt�z H¿´µ��x\l lUu Á{|��x�Ç�m9��tkm|w�}�x1m�Àk}�m9t���uy�kwymR���k��}�m|l¢�#¼8 �����F�Q�S�2����� ' 14� >��U���S�4�����S-%���S�N��¶kn��):µ¤ <UH ¤��B¡%?�¶��,{#}�x\�@m|�¡9�`���k¼

?A@FOB?DC

Page 26: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

������������ ������������������������ ����!"�$#%���&����'(�*),+���-��/.0��213����4� n`�

= ��@��s¼E�%x�t���m|w7¼ ­ }�x����Rx`´¹�T{�iku��VlKHs~]��~\��}�uy~`wm|²�~�w���~�}�uvx�t»���k��}�m9l�´·x���ikuvz�ikm|��ÁNx\�V�km|��~\���kwyuy{|~�}�uv²\mw�~`t�z\��~`z`m|�|¼ 7�t . ���U������! � -���!"� ��������' ��' � �S����'��&���S��������� �2 .0��213���� � ��'�� ����!$���&����'Y¶Q��~`z`m|�?�?��Y�`�T¶Y�%x��Ym9t�i�~�z\m|tʶT�,m|t�l¢~\��ÇB¶�Ã���tkm�¡|�\�`�Y¼ ­ �%�Å����m|�V�#¼

= £�@��s¼�%x�t���m#w;¶ � ¼ 9Rx���t�x�´�¶�¹¼��Rx � w;¶EÃY¼��sx��Tr`¶�~`tY�»��¼ ��¼ JXx\wy~\t��V{�iku7¼ ­ �Ytku ´·x���l ~`������x\~\{�i�´·x\�{#x\l¢�kuywvm#Á;}�uylUm�~\t��Ä�V��tTÁN}�u�lUm����@m|{#uy~`wvuy°|~`}�uyx\tʼE7�t �1¼Ê�,~\t\²T�\¶���¼Hpsw���{�ÇB¶~\t����M¼Eh i�uvm9lU~\t�tʶm9�kuy}�x\�V�|¶�.:���U������! �0-���!"� ���&����'%� �S' ���S�U' ��������' ��!L� � �4� ' �������E� 1������ �<!�� ���U��!$��¶%t��Yl��@m|�]¡`¡`¡��½u�t� m|{#}�����m �Rx\}�m|�¹u�t»�%x\l¢���k}�m|�R�T{#uvm9t�{�m\¶���~�z\m|����¤����`nk¶ �Ym9�����Y~`���½¡|�`��?�¼

= ��@��s¼ �%x\t���m#w�~\t�� �¹¼ �Rx � w;¼ ­ z`m9tkm|�V~�w�~\������x\~\{�iÆ´·x\�5����tkÁ;}�uylUm»�V�Ym9{�u�~�wyuv°9~�}�uyx\t=~`tY� uy}��]~`�TÁ��wvu�{#~`}�uyx\t }�x �s¼ 7�t � ��'D)S� �� ' ��� ���2����� � ) �D� ��� ���� �' ' � ��! ��� ��� � .'�F � �B��� �� � �� >�� �Q���U� ��� ��' . �U� ' � � ��!$�S� � ) .0��21�����4�E� ' 1 �F��' 13� � 1 �S�a¶H��~�z\m|�¢¡|¤����¿¡9�3?�¶���}#¼��Mm|}�m|�V�V������zɹm9~`{�iʶ � � ¶ ��� ­ ¶YÃ\~\tT��~`���½¡|�\�3?�¼ ­ �%������m|�V�#¼

=v¡ ��@�Ã@¼��,m|~\tʶBp1¼k�,m �Yx���¾&¶��1¼¿p,��x�²\m`¶<J�¼ � uv}�²Tuytkx�²¿¶�~\t��»�s¼@�!i�~`l1�Ym9���|¼NJXx\��}�m�À HQ~\t5x��k}�u�lUuv°|uytkz{#x\l¢�kuywvm9�M´·x\��x\�T��m9{�}�Á;x���uym|t�}�m9��w�~`t�z\��~`z`m|�|¼ 7�t � � .>� �8 � ����� ��'D)S� �� ' ����¶k��~`z`m9�X�`���¿¡ � ��¶\�T~\tÃ\x\��m :N� ­ <a¶B�,{#}�x\�@m|��¡9�`��?�¼

=v¡`¡ @�Ã@¼��,m|~\tʶk�1¼¿p,��x�²\m`¶k~`t��½�s¼B�!i�~\l��@m|�V�#¼��,�k}�uylUuy°|~`}�uyx\t]x�´x��T��m|{#}�ÁNx\��uvm9t�}�m|�]����x`z\�V~`l¢�!����uytkz��}�~`}�u�{�{#wy~\���ikuvm9��~\��{�i��,~`t�~`wv�k��uy�|¼37�t/. ��D�������� '<1�� � ) � � � � .� ����¶ ­ ~`�Vi��Y�#¶F�,m|t�l¢~`�VÇB¶ ­ �kz�����}¡9�`���k¼Y�T����uyt�z`m|��ÁBJXm|��wy~`zY¼

=v¡9n�@�Ã@¼��,x`w����Ä~`tY� ­ ¼ ­ ¼H�!ikuym|tʼ ­ t�m#²�~`wy��~`}�uyx\tÄx�´ ~`�k}�x\l¢~�}�uy{¢x��T��m|{#}&uyt�wvu�tkm�~�wywyxT{|~�}�uvx�t�}�m|{�iTÁt�uy�T�km9�#¼ 7�tK.0��%�2������ '<1�� � � .0� �8 � ��� � ��'D)S� �� ' ��� ��' ����� �2� � ���>�U��� ' �����.0��21�����4�E� ' 1 � >������� �/��� �F��' 13� � 1 �S� �0��' E >����!"������������' ��¶ ­ �%�¯� 7�ps� �H­ � �sx`}�u�{�m9�#¼ ­ �%� ¶�¡|�\�`£�¼

=v¡|��@,�U¼ ��¼Q��tkz\wvm9�¢~`t�� � ¼ �!¼ ��~`~`�VikxTm|ÇB¼Æ�,�'�0H'�@~\��}|¶ ;Ym#Àkuy�kwym½lUm|�V��~`z`m]��m|l���wv}�uy�kwym�Àku�tkzÆ����uytkz���TtY~`lUuy{ {#xk�km z`m9tkm|�V~�}�uvx�tʼ�7�tK��� � � �9� � � >��������U� ��� ��'#� ���E�E��' ������������' �> ��� ��� �B��� �&���2�U���' E.0����B�%����! ��¶Y��~`z`m9�¹n3?��k� ��¶Y��}V~`tT´·x���� �st�uv²\m|�V��uy}º�`¶@� ­ ¶ ­ �kz�����}&¡9�`��?�¼ ­ �%������m9���|¼

=v¡#¤3@,É�¼Ep,�km9t\}�m|�|¶Bh�¼ É�¼ ��tkx\�kwyxk{�ÇB¶@~`tY�½��¼¿�R�T´�¼��T�@m|{#uy~`wvuy°#u�tkz]�Vi�~\�km|�V�#¼ 7�t � �����������S� �0����%�<���S�. ��D�������� '<1���¶ ­ t�tT��~�w�%x�tT´·m|��m|tY{�m���m|��uym|�|¶���~�z\m|�¹��¤����T�����Y¼ ­ �%�Å����m|�V�#¶Ê¡9�`�\��¼

=v¡9��@��¿¼H�s¼ ��ikxTxe~`t��¸��¼�B¼M�T��t���~\��m9��i�¼��%x�l¢�kuvwyu�tkzeuyt�i�m|��uv}V~`t�{#m¢�Y��u�tkz½��~`��}�u�~�wXm|²�~�w���~�}�uvx�tʼ 7�t. ��D�������� '<1�� �*) �A�Q� � >����Q���U� ��� ��' .:���U������!��0-���!"� ���&����' ��' � �S����'��&���S���������S�� .0��21��2���� ��' � ����! ��������'Y¶¿��~`z`m|� n�¡`¡���n`n\nk¶���~`wvm �,tkuy²`m|�V��uv}º�\¶Ê¡F� �¿¡|�1Ã\��t�mU¡9�`�Y¡`¼

=v¡D?�@,�M¼��&wvm|uyt��V����~`}��V{�ikm|�|¶ ­ ¼ ����uvm|z\�Vi�~`�@m|�|¶R��¼ � \{�ikwyuyt�zY¶�~`t�� ��¼,psw���{�ÇB¼ �Yx\��}��V~`t ����x`z\�V~`l�V�@m|{�u�~�wyuy°|~�}�uvx�tʼ 7�t ��¼R�»m#�\m|�½~`tY�/p1¼��Ttkm#wy}�u�tkz@¶�m|�kuy}�x����|¶ �E���5���5�Q�U� � �S����'��&���D1��S�U����� # �B� �' ��! >�� ��� �0' ��� ������!"��'<1 ��' #�:� ' � �U���S�U��'<1 -���' .0��213����E� � 'Y¶��Y~�z`m9�R¤T������¤Y¼@Ã\����}��Y��Á � uym|�kuyz�Á�,tkuy²`m|�V��uv}��}#¶@psuym|�V��m|tʶBpsm9��l¢~\t\�\¶¿¡|�`�`¤Y¼H��m|�@x\��} �Rx@¼Y��¤ �\nk¼

=v¡F��@,�M¼ � m#m�~`t��5� ¼ � m|x\tkm\¼M�,�k}�uylUuy°#u�tkz1� � ¾ uy}�i����YtTÁ;}�uylUm�{�xk�km,z`m9tkm|�V~�}�uvx�tʼ 7�t]� � ��7 � ��?K= n`��@;¶�Y~�z`m9��¡|�T� �B¡|¤\£Y¼

O8O íQPSRUT�V

Page 27: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

n�¤ �8!"�U���4.:� 1�� � ���<��!"� #���+���! �����M�F������! !�� ���Q���U!$�S��� ��'Q� � !��>��' ��0� ! !$�S��� ��! !$� �

=v¡|£�@,É�¼ ��¼ � xk{#~\t�}�iku;¼��@~\��}���uv}V�kwv} : <�¾ uv}Vi ~`�Vl : <�~`t��Æ{|���ʼ 7�t �0���2���Q�2��' � ��� � >������ �/�;� � � ��0������ � ��'D)S� �� ' ��� .0�2�D�������� ' 1���¶Ê��~�z\m|�sn�¤\���kn`�`��¶ ­ h��&h ɹm|wvw � ~\�Yx���~`}�x\��uym|�|¶������V��~F�K9Ruywvw;¶�Tm|�k}�m|l��@m|��¡|�`£T�T¼T� � ��p1¼

=v¡|��@,��¼|��~\��wym#}|¶��¿¼|h iku���~`��wv}|¶F~\t����s¼F�%x�t���m|w7¼��Ä~`���ku�tkzR��x�´·}º¾¹~`��mX~`�V{�ikuy}�m|{#}�����m|�¿}�x�m�³�{#uvm9t\}Euyl¢�kwym�ÁlUm9t\}V~�}�uvx�t���²Tu�~���~`��}�u�~�w�m|²�~�w���~�}�uvx�tʼ�7�t � ��'%)S�S�2�S' �2����' ��������������� � � )��������� �0'<1�� ' �2� �U� ' 1`¶�Y~�z`m9��¡|£\���B¡9�\n�¶ � ~\Ç�m�h~\ikxTm`¶ �sm#²�~`�Y~�¶ �Rx�²\m|l1�Ym9�s¡9�`�T�T¼<7º�Q�Q� �%x�lU�Y�k}�m9�R��xk{�uym#}º�`¼

= n���@,� ¼Y��~\���T��~\���e~`tY�]É�¼Ê��}�m|m|t���z\~\~`�V�ʼ��X~`��}�u�~�wEm#²�~�w���~�}�uvx�t�x�´Q~`t�x\�k��m|{�}�Á;x���uym|t�}�m|��uyl¢�@m|�V~�}�uv²\mw�~`t�z\��~`z`m`¼���~\��}�m|�� �H}�i�m|��uy�|¶ �stkuy²`m9����uy}º�&x�´¿�%x��Ym9t�i�~�z\m|tʶ��,m|�Y~`��}�lUm|t�}Hx�´Ê�%x�l¢���k}�m9�Q�T{�uym|t�{#m`¶�,tkuy²`m|�V��uv}�m#}��V��~\��Ç`m|t»¡\¶Ynk¡�� ���%x\�@m|t�i�~`z`m9te�1¼y¶k�sm9t�l¢~`�VÇB¶ ­ ����uvw�¡|�`��nk¼

= nk¡ @,É�¼��»x����V~�¼ � �U�� 13� ' 14�D� � �:�U����� �&����� ' � ��' �S������' ��! ��' �S� �Q� ������ -��.�F��'<1�� �D1��S��¼���ik� }Vikm|��u��#¶�,tkuy²`m|�V��uv}º��x`´��m9t�tkm9� 7�¶ ­ �Y��uywX¡|�\���T¼

= n`n�@�p1¼@���kwywvm9�#¶Y��¼Y��~\��wym#}|¶���¼ ��¼�JXx`w�~`t��V{�iku;¶@�s¼¿�%x\tY��m|w7¶@�s¼@���ʶ@~\t�� ­ ¼Êpsx�m|w7¼9�@~`��}#¶@x\�k}�uylUuy°#m9��k��te���!� ����uyt�z5~`�k}�x\l¢~�}�uy{�����x`z���~\lË�V�Ym9{�u�~�wyuv°9~�}�uyx\t�¼ 7�t .0��%���2���� ' 1��4� ) �A�Q�����3�D� �S' ���S�U' ���������' ��!+� ��'%)S�S�� ' ���4��'�� � �U���U���S������ � ��� � ���&� '<1E� >��U���S�4��¶��Y~�z`m9�%n�¤ ����n�¤���¶ ­ l¢��}�m9����~\l�¶�h ikm�sm#}Vikm|��wy~\t����|¶���~F�½¡9�`�`£Y¼<7º�Q�Q� �%x\l¢����}�m|�R�TxT{#uvm|}º�5����m|�V�|¼

= n���@�p1¼@���kwywvm9�#¶YÉ,¼@�»x\�Y��~Y¶ �!¼@ɹm#wywy~\���ʶ@~`t��»�s¼B�%x�t���m|w7¼L9s~\��u����V~QH ­ ;@m�Àkuy��wvm�~\t���m�³�{�uym|t�}�Ã�~F²�~m9t�²�u���x\t�lUm|t�}!l1uvÀkuyt�z1���T}�m|{#xk�kmR~`tY��{�x�lU��uvwym|��{#xk�km`¼ 7�t .0��%���2���� ' 1���� )��A�Q���3� � ��'D)S� �� ' �����' ��� � ��� � ���0�U��� ' ���2C���2���<' ��!$�213���U� ��' � >��U�B� �4�a¶Q�Y~�z`m9�5¡ �kn ��¶M�Mx\��}�w�~`t�� :º�,��m|z`x�t <a¶ ��� ­ ¶Ã���tkm�¡9�`�T�T¼ �s��m|tkuvÀʼ

= n�¤3@�p1¼@���kwywvm9��~`tY� �1¼ �M¼Ê�T{�iT�kwv}�°`¼ 9,~`��uy�V�V~QHX�X³�{�uym|t�}RÃ�~F²�~Um�Àkm|{|�k}�uyx\t����5z`wyx\�Y~�w�����x`z���~\l x\�k}�u ÁlUuy°|~`}�uyx\t��|¼ � � � � � �*)��&�������¶¡|�\�`��¼HhEx�~\���@m|~`�|¼

= n`��@,. ��D�������� '<1��E�*)/�A�Q�, ��� ��� � .'�8 ��� � ��'D)S� �� ' ���G��' .0��213����E�4� '<1 �8��' 13� � 1 � �4�S�U� 1�'��' �U����!$� ���S'��B���&����'Y¶���i�uvw�~`�km|wy�Yikuy~Y¶�� ­ ¶��Ä~F�»¡|�\�3?�¼ ­ �%� � 7�ps� �H­ � �sx`}�u�{�m9�#¶��Y¡ :N� <a¼

= n�?�@��s¼|���ʶ�h�¼ ­ �k}���m#�\¶ ­ ¼#ɹw�~`{�ÇB¶F�s¼��%x\t���m#w;¶��s¼F�%x�¾¹~`tʶ9ÃY¼S7�t�x\�k�\m`¶ � ¼ �&m|}�i�~\t�~�¶9ÃY¼|¸~`wy�@x`wym`¶F~`tY���¼ �¿iY~`tkz@¼H�,�k}�u�lUuy��}�u�{,uytY{#��m|lUm|t�}�~`wB�V�@m|{�u�~�wyuy°|~�}�uvx�t HQ��}���m|~\l1wyu�tkuyt�zU~1{�x\l¢lUm|�V{�u�~�wBx\�@m|�V~�}�uyt�z���k��}�m|l�¼ 7�t .0��%�����2�� ' 1��,�*)��D� ���������4 ��� � >��������U� ��� ��' �F�Q�S�2����� ' 1E� >������ �/� .0�U� ' � � ��!$�S��¶�Y~�z`m9�R�Y¡#¤��k�\n�¤Y¶Y�%x\���@m|�R�»x\�Yt\}V~�u�te��m|��x\��}#¶Ê� �1¶ �&� ­ ¶¿�,m|{�m9l��@m|��¡|�`���k¼ ­ �%� �,�@m|�V~�}�uyt�z�T�T��}�m9l¢� ��m#²Tuym#¾��|¶Yn��):;� <�¶ ­ �%� �%��m9���|¼

= n\��@��s¼¹����¶ 9�¼¹��~\���V~�wyu�tʶR~`tY� ÃY¼07ºx�~`t�tku��ku��#¼ h ikm ���kt\}Vikm|��u��]Ç`m|�Vtkm#w;¼ � ����������� ' 1 � >��U�B� �/��¶¡ :�¡ <�Hy¡`¡��k�\n�¶\±u�t�}�m|��¡|�`£\£�¼

= n�£�@�Ã@¼B�s¼k�R�Y���|¼4� �Q� �U��� 1 ��. ��D���S����� '<14��' ����D� ��¼¹�%���±����m|�V�#¶�7�t�{`¼v¶@��m9{�x\tY�5m9�kuv}�uvx�tʶ�¡9�`�\��¼= n���@,�R¼ �1¼LJXx\wy~\t���{�i�u7¶��s¼!�%x\tY��m|w7¶Rp1¼��Ä�kwvwym|�|¶ ~`t�� �s¼!�%x�¾¹~`t�¼ �sm9{�w�~`�V~�}�uv²\me�V�@m|{�u�~�wyuy°|~�}�uvx�t x`´

x��T��m|{#}�ÁNx\��uvm9t�}�m|�]����x`z\�V~`l¢�|¼ 7�t � � .>� �F � ����� ��'D)S� �� ' ����.0��%�2������ '<1���¶Y�Y~�z`m9� n�£3?��T� � ��¶ ­ }�Áw�~`t�}V~�¶ ��� ­ ¶¿�,{#}�x��Ym9�s¡9�`�T�T¼ ­ �%������m9���|¼

?A@FOB?DC

Page 28: Towards Automatic Specialization of Java Programs · Towards Automatic Specialization of Java Programs Ulrik Pagh Schultz, Julia Lawall, Charles Consel, Gilles Muller To cite this

Unit e de recherche INRIA Lorraine, Technopole de Nancy-Brabois, Campus scientifique,615 rue du Jardin Botanique, BP 101, 54600 VILLERS LES NANCY

Unit e de recherche INRIA Rennes, Irisa, Campus universitaire de Beaulieu, 35042 RENNES CedexUnit e de recherche INRIA Rhone-Alpes, 655, avenue de l’Europe, 38330 MONTBONNOT ST MARTIN

Unit e de recherche INRIA Rocquencourt, Domaine de Voluceau, Rocquencourt, BP 105, 78153 LE CHESNAY CedexUnit e de recherche INRIA Sophia-Antipolis, 2004 route des Lucioles, BP 93, 06902 SOPHIA-ANTIPOLIS Cedex

EditeurINRIA, Domaine de Voluceau, Rocquencourt, BP 105, 78153 LE CHESNAY Cedex (France)��������� ���� ���������� ��� ���

ISSN 0249-6399