על מושאים ועצמים (ארוך)

צאובר

New member
על מושאים ועצמים (ארוך)

אני כותבת עבודה בפילוסופיה על תכנות מונחה עצמים כמודל לשפה טבעית ונתקלת בקשיי תרגום. אודה לכם אם תוכלו להאיר את עיני, או להפנות אותי למקורות מתאימים. בעיה ראשונה: עצם ומושא. Object oriented programming מתורגם כ"תכנות מונחה עצמים". אבל בפילוסופיה התרגום המקובל ל"אובייקט" איננו עצם, כי אם מושא. במסורת הפילוסופית העצם (substance) הוא אותו הדבר העלום העומד בבסיס המושא ומקנה לו את אחדותו. לדוגמא: המושא "תפוח", מורכב מתכונות שונות: עגול, אדום, ירוק וגו´. העצם הוא מה שמקשר את התכונות הללו למושא אחד, למרות מקריותן. כלומר, תפוח יכול להיות ירוק ולא אדום, חמוץ ולא מתוק ועדיין יהיה תפוח. רעיון האובייקט ב- Object oriented programming, אינו מתיימר לשום אחדות שכזו ולכן נראה לי שהתרגום הנכון צריך להיות מושא ולא עצם. נקודה נוספת: המונח עצם מתייחס רק לדברים מוחשיים, כמו כלב או בית או אופניים. תכונות, כמו צבע, או צורה הן אופנים (modes) וכאלה הם גם דברים מופשטים כמו יופי או מחול. למיטב ידיעתי, מקובל ליצור בתכנות גם אובייקטים שמייצגים תכונות ודברים מופשטים. זו סיבה נוספת לחשוב, שהתרגום הנכון הוא "תכנות מונחה מושאים" ולא "תכנות מונחה עצמים". אז מדוע תירגמו אובייקט לעצם? האם זהו תרגום רשמי של האקדמיה או סתם מינוח שהשתרש בתחום? איפה אפשר לברר דברים כאלה? בעיה שניה: כל שאר המונחים. אני פשוט לא יודעת אם המונחים שאני מכירה הם מונחים רשמיים או המצאות פרטיות של מחברי ספרי הלימוד שקראתי. חלק מהם נראים לי סבירים – למשל תרגום multiple inheritance ל"תורשה מרובה", אבל אחרים ממש לא מדויקים – למשל, המונח ריכוזיות כתרגום ל-Encapsulation , או שהם מדויקים אבל מאוד מסורבלים – למשל, המונח רב-צורתיות כתרגום ל-Polymorphism. סליחה שיצא כל כך ארוך ותודה מראש בעבור כל עזרה, הגר
 

flychuckle

New member
על אובייקטים ועל עצמים

http://www.sivan.co.il/milon/index.asp?searchad1=object
 
בתור אחת שקצת תכנתה ב- C++

וגם למדה את התחום באקדמיה, אז יש הבדל מסויים בין מה שהאקדמיה קובעת למה שמקובל להשתמש בו גם כשכותבים תזה בתחום המחשבים. לעניין המונח עצמים - זו אכן הנחייה של האקדמיה, וזה גם הגיוני כפי שאסביר בהמשך. בעקרון משתמשבים במונח תכנות מונחה עצמים, כאשר באקדמיה נקבע שהביטוי הוא תכנות מונחה-עצם. כך גם נקבע שימוש במילה פולימורפיות ולא רב-צורתיות כפי שמקובל. וממה שאני יודעת כותבים "הורשה מרובה" ולא תורשה מרובה. כל המונחים שמשתמשים בהם הם פועל יוצא מעצם צורת השימוש בהם. תכנות מונחה עצמים הוא בגדול היכולת להשתמש בקטעי קוד לא כמושאים אלא ממש כעצמים בעלי תכונות כאלה ואחרות, שיכולים להעביר מתכונותיהם לעצמים אחרים וכן הלאה. אותם עצמים יש להם תכונות שונות כמו ריכוזיות ורב-צורתיות. אי הדיוק בתרגום נובע מהנסיון לדייק במשמעות הקונקרטית הביצועית של המונחים. כדי להבין מה כוונת כותב השפות האלה, אני ממליצה לך לפנות לספרו של מי שהמציא את שפת C++ - סטרוסטרופ ולקרוא את המבוא: The C++ Programming Language, 3rd ed., Addison Wesley, 1997, Bjarne Stroustrup אם את זקוקה להסבר נקודתי לעניין המשמעות הפרקטית של מונח כזה או אחר את מוזמנת לפנות אלי גם במסרים בהצלחה!
 

צאובר

New member
תודה על ההמלצה ועל הנכונות לעזור

אני מכירה די טוב את הרעיונות הבסיסיים של תכנות מונחה עצם(אימצתי את התיקון שלך), גם מתוך נסיון (מועט) בג´אווה וב-C++ וגם מתוך הספר של ברטרנד מאייר: Object oriented software construction, שאני קוראת עכשיו. לאור המלצתך, אקרא גם את המבוא של הספר של סטרוסטרופ, נראה לי שזו חובה למי שמתעניין בנושא. כששאלתי מה המונחים שטבעה האקדמיה, התכוונתי לאקדמיה ללשון העברית, אבל טוב גם לדעת מה מקובל בתחום. ושוב - תודה רבה על הנכונות לעזור.
 

nutmeg

New member
למען האמת

נשמע לי שהבעייה אינה רק בעיית תרגום. אם העבודה היא בפילוסופיה, ואת מחפשת מודל לשפה טבעית, אבל בוחרת מודל מצומצם של שפת תכנות שיסביר או יהיה אנלוגי לשפה טבעית - כבר יש בעיה. שפה טבעית היא מערכת על המורכבת מתת מערכות רבות שנועדה להעביר מסרים תקשורתיים במקסימום יעילות ובמינימום מאמץ. פועלים בתת המערכות הללו גם חוקים וכללים לשוניים (הדקדוק והלכסיקון) וגם חוקים וכללים חוץ לשוניים הקשורים למה שנקרא "הגורם האנושי" (the human factor). איך שפת תוכנה תהווה מודל לכל זה? קטונתי.
 

צאובר

New member
על קצה המזלג (ועדיין יותר מדי ארוך)

העבדה שלי איננה בדיוק על שפות תכנות מונחה עצם כמודל לשפה טבעית. זה רק חלק אחד שלה. המטרה שלי היא לנסות לבחון, בעזרת פילוסופיה של הלשון, את האופן שבו נבנו שפות תכנות מונחה עצמים, להשוות בינן לבין שפה טבעית ולראות מה אפשר ללמוד מן ההשוואה הזו על השפה הטבעית מחד ועל האופן בו כדאי לבנות שפות תכנות מאידך. על מנת להבין את המטרות של העבודה בהקשר הפילוסופי שלהן, צריך להיכר קצת היסטוריה של הפילוסופיה, במיוחד של הפילוסופיה של הלשון במאה ה-20. חלק גדול מההקסמות של המאה העשרים מהשפה מקורה בהתלהבות בפרויקט הלוגיציסטי של פרגה וראסל ומהעיבוד של ויטגנשטיין ללוגיקה שלהם. גילוי הלוגיקה המודרנית, הוליד תחושה של חשיפה של מבנים אובייקטיביים (אנליטיים אפריוריים) שעומדים בבסיס השפה ותחושה שבעזרת המבנים הללו יהיה אפשר לנסח שפה אוניברסלית, נקייה מהערפול שבשפות הטבעיות. המוטיבציה שלי נובעת ממקור דומה, אם כי היא איננה מניחה, כמובן, שהאופן בו בנויות שפות תכנות מונחה עצמים משקף מבני עומק כלשהם או חושף משהו בשפה הטבעית. שפות תכנות מונחה עצמים מתייחסות לשפה כאל משהו שעושים איתו דברים – מעין "ארגז כלים" (ולכן הן מתאימות יותר מהלוגיקה, על מנת לשמש מודל לשפה הטבעית, מפני שהלוגיקה היא רק תיאורית). לפיכך, אני חושבת שהשוואה ביניהן לבין השפה הטבעית תהיה מעניינת ומקווה, שהיא תאפשר להאיר באופן חדש היבטים מסוימים של השפה הטבעית. אני אשמח לתת הסברים נוספים למי ששרד את ההסבר הזה ורוצה עוד
. בעיית התרגום בעינה עומדת. אני הולכת ומשתכנעת, עם זאת, שמקורה של הבעייה הוא מטען ההיסטורי הכבד, ששוכן על כתפי המונח "עצם" בפילוסופיה.
 

nutmeg

New member
מעניין...

רק שאני חושבת שהעירפול נחוץ... אבל זה לא לדיון בפורום תרגום
חוצמזה ש-object, objective, objectives בהחלט מנגן על הפאן הלוגי (אובייקטיבי, כתבת?) בעוד "עצם" ממש לא.
 
למעלה