יום ראשון, 2 באוקטובר 2011

מקומפל עליכם ?

 "הרשו לי לפנות את הבמה בפוסט הזה לטובת בלוגר אורח חנן קביץ, אשר עובד יחד עמי בחברת סיסטמטיקס. חנן מתמחה בכלי MathWorks למחשוב טכני, עם דגש על ניתוח נתונים, חישוב מקבילי, הנדסה פיננסית וקימפול אפליקציות MATLAB. על התחום האחרון חנן ירחיב בשורות הבאות"

כלי הקומפילציה של MathWorks הפכו בשנים האחרונות לכלים מרכזיים בארגז הכלים של כל מפתח אפליקציות ב-MATLAB. הכלים מאפשרים למפתח לקחת את אפליקצית ה-MATLAB שלו ולקמפל אותה לסביבה אחרת, לדוגמה: לבנות אפליקציה Stand alone לתוכנת Windows אשר יכולה לרוץ אצל משתמשים נוספים שאין להם בכלל רשיון MATLAB. היכולת הזאת מרחיבה באופן ניכר את התפקיד והחשיבות של מפתח MATLAB בתוך כל אירגון, והאפליקציות שנוצרות ב-MATLAB הופכות לעיתים קרובות לאבן מרכזית בתהליך הפיתוח.


כאמור, הרעיון המרכזי בכלי הקומפילציה הוא היכולת לפרוס את האפליקציות/אלגוריתמים שפותחו ב-MATLAB למשתמשים חיצוניים רבים ככל שנרצה, ללא צורך ברישיון MATLAB אצל משתמשי הקצה. יכולת זו מתאפשרת באמצעות מספר כלים:


- MATLAB Complier זהו שער הכניסה לתהליך הקומפילציה. כלי זה מאפשר לקחת קוד MATLAB ולקמפל אותו לאפליקצית Stand alone או לקמפל אותו ל-DLL של C או C++. במקרה של אפליקצית stand alone – ניתן יהיה להפעיל אותה מחוץ לסביבת MATLAB (לדוגמה, ניתן לקמפל ממשק משתמש גרפי שנבנה באמצעות MATLAB כך שיופעל מתוך תוכנת Windows). DLL של C או C++ ניתן יהיה לקרוא מתוך קוד של C או C++ בהתאם.
 MATLAB Builder Ex - מאפשר לקמפל את קוד ה-MATLAB ל- add-ins הניתנים לשילוב בתוך סביבת EXCEL. ניתן יהיה להשתמש בפונקציות אלו בדיוק כמו בכל פונקצית EXCEL אחרת.

Builder NE  MATLAB- מאפשר לקמפל אלגוריתמי MATLAB לקומפוננטות של .NET ושל COM כך שניתן יהיה לגשת אליהם מתוך סביבת .NET הכלי מסייע להמיר את הפונקציות שלנו למתודות של classes בסביבת .NET
 MATLAB Builder JA-  הכלי מקמפל קוד MATLAB לסביבת JAVA ויוצר קובץ JAR אשר ניתן להפעלה מתוך סביבת JAVA כמו כל קובץ JAR אחר. הכלי ממיר את פונקציות ה-MATLAB למתודות של classes בתוך קובץ JAR.
 חשוב לציין ששני הכלים האחרונים מאפשרים גם לשלב אלגוריתמי MATLAB בתוך שרתים שמריצים אפליקציות על גבי רשת האינטרנט, דבר שמאפשר לגשת לאפליקצית ה-MATLAB מתוך רשת האינטרנט.

מספר הערות פרקטיות:
·         על מנת להפעיל את כלל הרכיבים המקומפלים במחשבים שאין בהם MATLAB יש להתקין על המחשבים הללו את ה-MCR (MATLAB Compiler Runtime), אשר הינו המנוע שמריץ מאחורי הקלעים את כל האפליקציות המקומפלות ומגיע כחלק מה-MATLAB Compiler.
·         מהירות הריצה של האפליקציות המקומפלות היא פחות או יותר כמו מהירות הריצה שלהן בסביבת MATLAB.
·         שאלה שנשאלת לעיתים קרובות היא מה מתקמפל ומה לא? התשובה היא די פשוטה - כמעט כל שפת MATLAB, על כליה המשלימים, מתקמפלת, למעט מעט מאוד דברים שלא. הדברים העיקריים שאינם מתקמפלים הם הממשקים למשתמש שמגיעים עם MATLAB והכלים המשלימים שלה.
·         כחלק מה-MATLAB Compiler קיים ממשק משתמש (deploytool, בתמונה) אשר מפשט מאוד את תהליך הקומפילציה לכל הסביבות ואת תהליך הפצת הרכיבים המקומפלים למשתמשים פשוטה ומהירה.

האם אתם משתמשים בכלי הקומפילציה של MathWorks? לאיזו סביבה אתם מקמפלים?

2 comments:

  1. חבל ש- MATLAB גרסאת ה- 64 ביט איבדה את היכולת לתקשר עם Photoshop ישירות מין הקופסא בגלל חוסר בקומפיילר פנימי בגרסאת ה- 64 ביט.

    השבמחק
  2. הנקודה שהעלית היא אמנם בנושא קומפיילר, אך לא בנושא כלי הקומפילציה הנידונים בפוסט... באשר לשאלתך - ניתן להשתמש בכל קומפיילר חינמי אחר במקום ה-LCC. אתה מוזמן ליצור קשר בעניין זה עם מוקד התמיכה של סיסטמטיקס: 03-7660101
    רועי פן

    השבמחק