וודו מהדר הוא יישום של שפת תכנות וודו & nbsp;. שפת תכנות וודו היא שפת תכנות ברמה נמוכה, הפשטה על ההוראה של הפלטפורמה להגדיר וקוראים אמנות, אבל חוץ מזה שעזב את מתכנת החופשי לעשות שום דבר בכלל.
וודו Compiler כתוב ברובי ומייצר קוד לi386 תואם, AMD64, וMIPS מעבדים. תמיכה במעבדי יעד נוספים מתוכננת לעתיד.
שימוש
ישנן שתי דרכים עיקריות לשימוש מהדר וודו: על ידי הפעלת תכנית voodooc, או על ידי השימוש בAPI Ruby.
תכנית voodooc הידור קבצי מקור וודו. השימוש בו מתואר בmanpage voodooc.1, נכלל בחלוקה. הבא היא דוגמא לאופן שvoodooc יכול לשמש ליצירת שלום הפעלה מhello.voo קובץ מקור:
hello.voo voodooc $
$ Cc hello.o -o שלום
./hello $
שלום עולם!
ניתן למצוא יישום hello.voo בבדיקת הספרייה של ההפצה.
הדרך השנייה להשתמש במהדר וודו היא באמצעות אותו מתוכנית רובי. זה יכול לשמש, למשל, ליצירת קוד עבור פלטפורמת היעד מבלי ליצור קובץ .voo. להלן דוגמא שיוצרת קובץ אובייקט נקרא fact.o, המכיל הגדרה של עובדה פונקציה אשר מחשב factorials:
דורש "וודו"
גנרטור = ודו :: CodeGenerator.get_generator:> ארכיטקטורה =: i386,
& Nbsp;: פורמט =>: דון
generator.export: עובדה
generator.add_function_label: עובדה
generator.add_function [: n],
& Nbsp; [: ifle, [: n, 1],
& Nbsp; # לאחר מכן
& Nbsp; [[: שיבה, 1]],
& Nbsp; # אחר
& Nbsp; [[: בוא,: x, תת,: n, 1],
& Nbsp; [: סט,: x,: קורא,: למעשה,: x],
& Nbsp; [: שיבה,: מול,: n,: x]]]
File.open ('fact.o', 'w') {| outfile | outfile generator.write}
API מהדר וודו שהוא זמין לתוכניות רובי מתואר בתיעוד API
מה חדש בהודעה זו :.
- < li> תאימות עם רובי 1.9, בנוסף לרובי 1.8; לעשות מבחן עכשיו מדווח על מספר הבדיקות עברו ונכשלו.
- המבחן רב-VARs כבר התפצל לרב-args, רב-args-זנב, ורבים-מקומיים.
מה חדש בגרסת 1.0.1:
- גרסה זו מוסיפה מספר השיפורים למנתח , אשר כעת מדווח מיקומי קוד מקור לכל טעויות ויכולים לדווח על שגיאות מרובות בתוך בלוקים, פונקציות, ותניות. מספר בדיקות למנתח נוספו.
מה חדשה בגרסת 1.0.0:
- מחולל קוד ARM: המהדר יכול עכשיו ליצור הרכבה ו. קוד אובייקט ELF לארכיטקטורת ARM
- דיווח שגיאות משופרות:. יותר טעויות מזוהות, ושגיאות מדווחות בקל יותר להבין הודעות שגיאה
- Validator: מודול חדש זה יכול לשמש כדי לאמת את הקוד וודו שנוצר. הוא משמש על ידי המנתח כדי לאמת את הקוד מנותח.
- ממשק תכונה: ניתן שאילתא תכונות של היישום שני תיכנותי ומשורת הפקודה .
מודול
מה חדש בגרסה 0.7.0:
-
בלוקים: אלה מספקים טווחים שבי משתנים מקומיים רשאי להיות מוגדר עם בואו. משתנה כגון להתקיים מסוף משפט let עד סוף הבלוק. בלוקים יכולים להתרחש בכל מקום שבו פעולה יכולה להתרחש. הם התחילו עם בלוק והסתיימו בסוף הבלוק.
- תניות משורשרות: עכשיו זה אפשרי לכתוב & quot; אחר & quot ;, אם במקום לדרוש מקונן אם בסעיף אחר .
- Shift ולסובב: להעביר פעולות (ASR, בסר, שחל, SHR) ולסובב פעולות (רול, ROR) נוספו .
- חזור ללא ערך: שיבה יכולה כעת לשמש מבלי לציין ביטוי להערכה. זה גורם לערך מוגדר ליוחזר מהפונקציה.
מה חדש בגרסת 0.6.3:
- גרסה זו מציגה ב- ביטויים: על ידי קידומת תווית, משתנים מקומי, או שלם עם @, הוא טיפל הערך ככתובת, והוא החזיר את המילה מאוחסנת בכתובת זו.
- בנוסף, כמה באגים נחשפו במחרוזות הדרך היו מקודד בקוד הרכבה שנוצר.
- באגים אלה תוקנו, וגרסת 0.6.3 עכשיו מטפלת במחרוזות המכילות את כל 256 הערכים בייט האפשריים בצורה נכונה.
מה חדש בגרסה 0.6.2:
- גרסה זו מתקנת באגים ביישומים של set- מילה לi386 וAMD64 ומוסיף בדיקות למקרים שבעבר לא יעבדו כראוי.
תגובות לא נמצא