Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

¡¾×ª¡¿Ê¹ÓÃFlex Bison ºÍLLVM±àд×Ô¼ºµÄ±àÒëÆ÷v

Ô­Îijö´¦£ºhttp://gnuu.org/2009/09/18/writing-your-own-toy-compiler
1¡¢½éÉÜ
ÎÒ×ÜÊǶԱàÒëÆ÷ºÍÓïÑԷdz£¸ÐÐËȤ£¬µ«ÊÇÐËȤ²¢²»»áÈÃÄã×ߵĸüÔ¶¡£´óÁ¿µÄ±àÒëÆ÷µÄÉè¼Æ¸ÅÄî¿ÉÒÔ¸ãµÄÈκÎÒ»¸ö³ÌÐòÔ±ÃÔʧÔÚÕâЩ¸ÅÄîÖ®ÖС£²»ÓÃ˵£¬ÎÒÒ²Ôø
½ñ³¢ÊÔ¹ý£¬µ«ÊDz¢Ã»ÓÐÈ¡µÃÌ«´óµÄ³É¹¦£¬ÎÒÒÔǰµÄ³¢ÊÔ¶¼Í£ÁôÔÚÓïÒå·ÖÎö½×¶Î¡£±¾ÎĵÄÁé¸ÐÖ÷ÒªÀ´Ô´ÓÚÎÒ×î½üÒ»´ÎµÄ³¢ÊÔ£¬²¢ÇÒÔÚÕâÒ»´ÎÖÐÎÒÈ¡µÃÒ»µã³É¾Í¡£
ÐÒÔ˵ÄÊÇ£¬×î½üµÄ¼¸Ä꣬ÎҲμÓÁËһЩÏîÄ¿£¬ÕâЩÏîÄ¿¸øÁËÎÒÔÚ½¨Á¢±àÒëÆ÷ÉϺܶàÓÐÓõľ­ÑéºÍ¹Ûµã¡£ÁíÍâÒ»¼þÊÂÊÇ£¬Îҷdz£ÐÒÔ˵õ½LLVM
µÄ°ïÖú¡£¶ÔÓÚÕâ¸ö¹¤¾ß£¬ÎÒ²»ÖªµÀ¸ÄÔõôȥÐÎÈÝËü£¬µ«ÊÇËû¸øÎÒµÄÕâ¸ö±àÒëÆ÷µÄÈ·´øÀ´·Ç³£´óµÄ°ïÖú¡£
1.1¡¢ÄãΪʲôҪÔĶÁ±¾ÎÄ
ÄãÒ²ÐíÏë¿´¿´ÎÒÕýÔÚ×öµÄÊÂÇ飬µ«ÊǸüÓпÉÄܵÄÊÇ£¬ÄãÒ²ÊǺÍÎÒÒ»Ñù¶Ô±àÒëÆ÷ºÍÓïÑԷdz£¸ÐÐËȤ£¬²¢ÇÒÒ²¿ÉÄÜÓöµ½ÁËһЩÔÚ̽Ë÷µÄ¹ý³ÌÖÐÓöµ½ÁËһЩÄÑÌ⣬Äã
¿ÉÄÜÕý´òËã½â¾öÕâЩÄÑÌ⣬µ«ÊÇȴûÓз¢ÏֺõÄ×ÊÔ´¡£±¾ÎĵÄÄ¿±ê¾ÍÊÇÌṩÕâЩ×ÊÔ´£¬²¢ÒÔÒ»ÖÖÊÖ°ÑÊֵķ½Ê½½ÌÄã´ÓÍ·µ½Î²µÄÈ¥´´½¨Ò»¸ö¾ßÓлù±¾¹¦ÄܵÄÓïÑÔ±àÒë
Æ÷¡£
ÔÚ±¾ÎÄ£¬ÎÒ²»»áÈ¥½âÊÍһЩ±àÒëÆ÷»ù±¾ÀíÂÛ£¬ËùÒÔÄãÒªÔÚ¿ªÊ¼±¾ÎÄǰȥÁ˽âʲôÊÇBNFÓï·¨
£¬Ê²Ã´ÊdzéÏóÓï·¨Ê÷Êý¾Ý½á¹¹ AST data structure
£¬Ê²Ã´ÊÇ»ù´¡±àÒëÆ÷Á÷Ë®Ïß complier pipline
¡£¾ÍÊÇ˵£¬ÎÒ»á°Ñ±¾ÎÄÃèÊöµÄ¾¡Á¿¼òµ¥¡£±¾ÎĵÄÄ¿µÄ¾ÍÊÇÒÔÒ»ÖÖ¼òµ¥Ò×¶®µÄ·½Ê½À´½éÉÜÏà¹Ø±àÒëÆ÷×ÊÔ´µÄ·½Ê½À´°ïÖúÄÇЩ´ÓÀ´Ã»ÓбàÒëÆ÷¾­ÑéµÄÈË¡£
1.2¡¢´ïµ½µÄ³É¹û
Èç¹ûÄã¸ù¾ÝÎÄÕÂÄÚÈÝÒ»²½²½À´£¬Ä㽫»áµÃµ½Ò»¸öÄܶ¨Ò庯Êý£¬µ÷Óú¯Êý£¬¶¨Òå±äÁ¿£¬¸ø±äÁ¿¸³ÖµÖ´Ðлù±¾Êýѧ²Ù×÷µÄÓïÑÔ¡£ÕâÃÅÓïÑÔÖ§³ÖÁ½ÖÖ»ù±¾Àà
ÐÍ£¬doubleºÍintegerÀàÐÍ¡£»¹ÓÐһЩ¹¦ÄÜ»¹Î´ÊµÏÖ£¬Òò´Ë£¬Äã¿ÉÒÔͨ¹ý×Ô¼ºÈ¥ÊµÏÖÕâЩ¹¦Äܵõ½ÄãÂúÒâµÄ¹¦Äܲ¢ÇÒÄÜΪÄãÀí½â±àдһ¸ö±àÒëÆ÷Ìṩ²»
ÉٵİïÖú¡£
1.3 ÎÊÌâ½â´ð
1.3.1 ÎÒÐèÒªÁ˽âʲôÑùµÄÓïÑÔ
ÎÒÃÇʹÓõŤ¾ßÊÇ»ùÓÚC/C++µÄ¡£LLVMÊÇ»ùÓÚC++µÄ£¬ÎÒÃǵÄÕâ¸öÓïÑÔÒ²»ùÓÚC++£¬ÒòΪC++¾ßÓкܶàÃæÏò¶ÔÏóµÄÓŵãºÍ¿ÉÒÔ±»ÖØÓõÄ
STL¡£´ËÍâ¶ÔÓÚC£¬LexºÍBison¶¼¾ßÓÐÄÇЩ³õ¿´ÆðÀ´ÁîÈËÃÔ»óµÄÓï·¨£¬µ«ÊÇÎÒ½«¾¡¿ÉÄܵÄÈ¥½âÊÍËû¡£ÎÒÃÇÐèÒª´¦ÀíµÄÓï·¨·Ç³£Ð¡£¬×î¶à¾Í100ÐУ¬Òò´Ë
ËüÊDZȽÏÈÝÒ×Àí½âµÄ¡£
1.3.2 ºÜ¸´ÔÓÂð£¿
ÊÇ»ò·ñ£¬ÕâÀïÃæÓкܶàµÄ¶«Î÷ÄãÐèÒªÁ˽⣬ÉõÖÁ¶àµÄÈÃÈ˸оõµ½º¦Å£¬µ«ÊÇÀÏʵ˵£¬ÆäʵÕâЩ¶¼·Ç³£¼òµ¥£¬ÎÒÃÇͬÑù»áʹÓúܶ๤¾ß·Ö½âÕâЩ²ã´ÎµÄ¸´ÔÓÐÔ£¬²¢Ê¹µÃÕâЩÄÚÈݿɹÜÀí¡£
1.3.3 Íê³ÉËüÐèÒª¶à³¤Ê±


Ïà¹ØÎĵµ£º

flexʱÐòͼʾÀý

<?xml version="1.0" encoding="utf-8"?>
<!-- Simple example to demonstrate the DateTimeAxis class. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>

import mx.collections.ArrayCollection;
......

flex 3 ´ÓÒ³ÃæurlÖÐÈ¡²ÎÊýȡֵµÄÍêÃÀ½â¾ö·½°¸

1:µ±ÓÃhttp://xxxxx/xxx.mxml?name=hermit·½Ê½·ÃÎÊ ¿ÉÒÔÓÃthis.parameters.nameÕâÖÖ·½Ê½ÔÚflexÀïÃæÈ¡url²ÎÊý
2:µ±ÓÃhttp://xxxxx/xxx.swf?name=hermit·½Ê½·ÃÎÊ ¿ÉÒÔÓÃthis.parameters.nameÕâÖÖ·½Ê½ÔÚflexÀïÃæÈ¡url²ÎÊý
3:µ±ÓÃhttp://xxxxx/xxx.html?name=hermit·½Ê½·ÃÎÊ ¿ÉÒÔÓÃthis.parameters.nameÕâÖÖ·½Ê½ÔÚflexÀïÃæÈ ......

Flex ÖÐÀûÓñêǩʹһÕÅÍ¼ÈÆÈÎÒ»µãÐýתµÄÀý×Ó

´úÂëÈçÏ£º
Download: main.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
       &nb ......

FlexÓ¦ÓóÌÐòÉúÃüÖÜÆÚ

FlexÓ¦ÓõĸùÊÇSystemManger£¬ËüÊÇflash.display.MovieClipµÄ×ÓÀ࣬һ¸öFlash PlayerÏÔʾ¶ÔÏóÀàÐÍ¡£SystemManagerÓÐÁ½¸öÖ¡£¬µÚÒ»Ö¡ÊÇÓÃÀ´ÏÔʾӦÓÃÔØÈëµÄ½ø¶Èָʾ£¬Õâ¸öÖ¡ÊÇÇáÁ¿µÄ£¬ËùÒÔËü¼¸ºõÄÜÁ¢¼´ÏÂÔØºÍÔËÐС£µÚ¶þÖ¡±ãÊÇÓ¦Óñ¾Éí¡£µ±Ò»¸öFlexÓ¦ÓõÄSystemManagerʵÀý½øÈëµ½µÚ¶þÖ¡£¬Ëü´´½¨Ò»¸öÖ÷Ó¦ÓõÄʵÀý¡£SystemManager ......

ÀûÓÃSocketʵÏÖC++ÓëFlexͨÐÅ


ÀûÓÃSocketʵÏÖC++ÓëFlexͨÐÅ
Ò»¡¢C++·þÎñÆ÷¶Ë
£¨ÓõÄÊÇVisual Studio 2008£¨05£¬03µÄÓ¦¸ÃÒ²¿ÉÒÔ£¬VC++µÄ¿ÉÄÜÐèÒªÉÔ΢¸Ä¶¯£©£©
´úÂëÈçÏ£º
#include <winsock2.h>
#include <stdio.h>
#include <windows.h>
#include <iostream>
using namespace std;
#pragma comment(lib,"ws2_32.lib ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ