DCSIMG
Free, Multi-language Parsing System - Pavel's Blog
Sign in | Join | Help

Pavel's Blog

Pavel is a software guy that is interested in almost everything
software related... way too much for too little time

Free, Multi-language Parsing System

 

כל מי שניסה לכתוב Parser (למשל לשפת תכנות פרטית או איזשהי מערכת SCRIPT  פנימית) יודע שהדבר אינו טריביאלי, בלשון המעטה. השיטה הקלאסית (אבל המיושנת) היא להשתמש בכלים LEX ו-YACC המיתולוגיים ליצירת tokenizer ו-parser או בגרסאת המחודשות שלהם FLEX ו-BISON (משחק מילים שכזה, יאק הוא בעל חיים...).

ניתן לכתוב PARSER בשתי מתודולוגיות עיקריות:  (recursive descent parser (top-down parsing ו-(LALR (Look-Ahead Left-to Right, bottom-up parsing. השיטה הראשונה מתאימה לכתיבת PARSER ידנית ללא עזרה חיצונית מכיוון שהשיטה אינטואיטיבית למדי. השיטה השניה מתאימה לעבודה עם כלים אוטומטיים (כגון YACC. (YACC מייצר קוד C טהור ולא ממש קריא.

כלי נחמד המאפשר לכתוב PARSING יחסית בקלות נקרא GOLD (עובד ב-LALR). הוא בנוי על עקרון של הגדרת שפת המקור ב-BNF וביצוע סוג של קומפילציה עליו לקבלת קובץ בפורמט בינארי שניתן לקריאה על ידי כל שפה. האתר מספק מימושים בכל השפות הנפוצות, החל מ-C, C++ ועד לשפות .NET ומי שממש רוצה גם ASSEMBLY של ה-x86.

והכל בחינם, שווה לבדוק!

 

Comments List

# re: Free, Multi-language Parsing System

Published at Sunday, March 02, 2008 11:25 AM by Eyal  

היי פאבל,

למיקרוסופט יש תשתית שלמה להרחבה יכולות של הVS עצמו שיתמוך בשפות חדשות עם סינטקס כזה או אחר. יש דוגמה מלאה לשפה שלמה כולל עורך קוד עם צביעה (השפה היא python).

פרטים נוספים:

msdn2.microsoft.com/.../bb165037.aspx

msdn2.microsoft.com/.../bb166570.aspx

msdn2.microsoft.com/.../bb165744.aspx

# re: Free, Multi-language Parsing System

Published at Sunday, March 02, 2008 11:52 AM by pavely  

צודק, אני מכיר את זה ולא ניסיתי לרמוז שאין משהו בעניין למייקרוסופט...

אבל רציתי להפנות למשהו שמתאים לבניית פרסר בכל שפה ולא רק דוט נט.

תודה על ההפנייות.

Leave a Comment

(required) 
(
required
)
 
(optional)
(required) 

Enter the numbers above: