ערן יהב
ערן יהב | |
ענף מדעי | מדעי המחשב- הנדסת תוכנה |
---|---|
מקום מגורים | ישראל |
תרומות עיקריות | |
תכנות באמצעות מיליוני דוגמאות, אנליזה סטטית של תוכנה |
ערן יהב (נולד ב-1 באוקטובר 1973) הוא מדען מחשב ישראלי המתמחה בהנדסת תוכנה. יהב הוא פרופסור חבר בפקולטה למדעי המחשב בטכניון, ויועץ בכיר בחברת הסטארטאפ הישראלית Codota[1].
ביוגרפיה
יהב נולד ב-1973. בשנת 1996 סיים את לימודי התואר הראשון בפקולטה למדעי המחשב בטכניון. עם סיום התואר התגייס כמהנדס תוכנה לצה"ל, שם שירת עד שנת 2001. בשנה זו גם התחיל את לימודי הדוקטורט שלו במדעי המחשב באוניברסיטת תל אביב, אותם סיים בשנת 2004.
בין השנים 2004–2011 עבד במעבדות המחקר של IBM.
בשנת 2011 הצטרף כמרצה בכיר לסגל ההוראה של הפקולטה למדעי המחשב בטכניון, ומשנת 2013 מכהן כפרופסור חבר בסגל הפקולטה[2].
השכלה
תואר ראשון (Bsc) במדעי המחשב מהטכניון.
תואר שלישי (PhD) במדעי המחשב מאוניברסיטת תל אביב עליו זכה בשני פרסים:
- Maus Excellence Award
- Levy Eshkol Doctoral Excellence Scholarship
מחקר אקדמי
תחומי המחקר בהם יהב עוסק הם: ניתוח תוכניות, אינטרפרטציה אבסטרקטית, אימות תוכנה, סינתזה של תוכנה, מערכות מקביליות ומבוזרות, שפות תכנות והנדסת תוכנה.
במהלך השנים הוא השתתף בכתיבה של מעל 100 מאמרים, שצוטטו למעלה מ-1900 פעמים במאמרים שונים. מדד h-index שלו הוא 25, ומדד ה-i10-index[3] שלו הוא 42[4].
תכנות באמצעות מיליוני דוגמאות
כחלק ממחקריו בתחום התוכנה, עוסק יהב בשימוש בדוגמאות קיימות של קוד בתהליך של כתיבת תוכנה. השימוש בדוגמאות קיימות מיועד להכוונת המתכנת בכתיבת הקוד ולהקלה עליו בהתמודדות עם ממשקים (APIs) מורכבים, על ידי כך שבתהליך כתיבת הקוד המתכנת ישלים את התוכנית אותה הוא כותב בעזרת חיפוש במאגרי קוד קיימים.
על מנת לאפשר את החיפוש, מתבצעת הצגה סמנטית של קוד (למשל באמצעות אוטומטים[5]) עבור הקוד אותו המתכנת רוצה להשלים, וכן עבור הקוד הקיים במאגר הנתונים בו מתבצע החיפוש. במהלך החיפוש במאגר מתבצעת התאמת הקשר (context matching) בין הקוד החלקי שהוכנס כשאילתה לחיפוש לבין דוגמאות הקוד הקיימות במאגר[6], ובסופו מוחזרות למתכנת התוצאות המתאימות ביותר. תוצאות החיפוש הן דוגמאות של קוד המהוות השלמות אפשריות לשאילתה.
פרויקט "SAFE"
במסגרת עבודתו בחברת IBM פיתח יהב את הפרויקט "SAFE"[7][8], תוכנה לבדיקת נכונות של תוכניות שנכתבו ב-Java. בהינתן תוכנית, "SAFE" בודקת אם היא עומדת במפרט דרישות מסוים באמצעות אנליזה סטטית של קוד המקור שלה וללא צורך בהרצתה. במהלך האנליזה מתבצעת בדיקה דקדקנית של מצב האובייקטים שבה[9], אפילו כאשר בתוכנית נעשה שימוש ב-aliasing[10][11] . המטרה בביצוע הבדיקה של מצב האובייקטים בתוכנית נתונה היא לזהות באופן סטטי (ללא הרצה של התוכנית) אם הרצתה עשויה לגרום לביצוע פעולה אסורה על אובייקט כתלות במצבו[12]. SAFE מאפשר רמות שונות של דיוק בבדיקת הנכונות. רמות אלו תלויות בעיקר באופן בו נעשית ההתמודדות עם aliasing.
פרסים והוקרה (רשימה חלקית)
- Allon Fellowship for Outstanding Young Researchers- מהמועצה הישראלית להשכלה גבוהה, אוקטובר 2010
- Andre Deloro Career Advancement Chair in Engineering- מהטכיון, אוקטובר 2009
- Maus Excellence Award- מאוניברסיטת תל אביב, אפריל 2004
- Levy Eshkol Doctoral Excellence Scholarship- ממשרד המדע, אוקטובר 2002
- IBM Pat Goldberg Memorial Best Paper Award- ממעבדות המחקר של IBM, אוקטובר 2007
- ACM SIGSOFT Distinguished Paper Award- מ-ACM SIGSOFT, דצמבר 2006[13][14].
- ACM SIGSOFT Distinguished Paper Award- מ-ACM SIGSOFT, דצמבר 2007[15].
קישורים חיצוניים
- ערן יהב, באתר dblp
- דף הבית של פרופסור ערן יהב, באתר הפקולטה למדעי המחשב
- מאמרים של פרופסור ערן יהב, ב-scholar.google.
- העמוד של פרופסור ערן יהב, באתר Researchgate.
- Programming with Millions of Examples - תכנות באמצעות מיליוני דוגמאות- הרצאה מצולמת של פרופסור ערן יהב באתר Youtube.
- פרויקט "SAFE", בעמוד הבית של פרופסור ערן יהב באתר הפקולטה למדעי המחשב.
- פרויקט מתקפת סייבר על מערכת “Waze” שביצעו סטודנטיות מהטכניון בשנת 2014 בהנחייתו של ערן יהב[16][17][18][19][20][21][22].
הערות שוליים
- ^ אתר codota
- ^ נתונים מ העמוד של פרופסור ערן יהב באתר linkedin.
- ^ ערך מדד ה-i10-index עבור חוקר הוא מספר הפרסומים שלו שצוטטו למעלה מ-10 פעמים במאמרים שונים. i10-index בוויקיפדיה האנגלית
- ^ נתונים אלו חושבו לפי google-scholar
- ^ Symbolic Automata for Static Specification Mining
- ^ Typestate-Based Semantic Code Search over Partial Programs
- ^ קיצור עבור Scalable And Flexible Error detection and verification
- ^ Continuous Code-Quality Assurance with SAFE
- ^ אובייקט מטיפוס מסוים בתוכנית יכול להיות באחד ממספר מצבים מסוימים בכל רגע במהלך הריצה של התוכנית. קבוצת הפעולות (כמו קריאה למתודות) שמותר להפעיל עליו ברגע נתון תלויה במצב בו הוא נמצא באותו הרגע, והפעלתן עליו עשויה לשנות את מצבו.
- ^ aliasing הוא מצב בו ניתן לגשת לנתון מסוים בזיכרון דרך שמות מזהים שונים בתוכנית. במצב זה, שינוי של הנתון דרך מזהה מסוים יגרום לשינוי הערכים המקושרים לשאר המזהים של הנתון באופן שעשוי להיות בלתי צפוי למתכנת או למתבונן בקוד, דבר המקשה על הבנה וניתוח של תוכניות. aliasing בוויקיפדיה האנגלית
- ^ Effective Typestate Verification in the Presence of Aliasing
- ^ פעולות אסורות כתלות במצב האובייקט יכולות להיות שימוש באובייקט שלא אותחל, שימוש במשאב שנסגר ועוד.
- ^ בכנס ISSTA-2006 על מאמרו: "Static Specification Mining Using Automata-Based Abstractions"
- ^ אתר ISSTA- International Symposium on Software Testing and Analysis
- ^ בכנס ISSTA-2007 על מאמרו: "Effective Typestate Verification in the Presence of Aliasing”.
- ^ פרויקט מתקפת הסייבר על "Waze" באתר הטכניון.
- ^ פרויקט מתקפת הסייבר על "Waze" באתר "Geek time".
- ^ פרויקט מתקפת הסייבר על "Waze" באתר "ערוץ 7".
- ^ פרויקט מתקפת הסייבר על "Waze" באתר "מעריב השבוע".
- ^ פרויקט מתקפת הסייבר על "Waze" באתר "הידען".
- ^ פרויקט מתקפת הסייבר על "Waze" באתר "The Hacker News".
- ^ פרויקט מתקפת הסייבר על "Waze" באתר "Popular Science".
32882628ערן יהב