האם ניתן לומר שההבדל בין תכנות הכרח לתכנות הצהרתית הוא רק ברמת ההפשטה?


תשובה 1:

מעין אבל לא ממש. זה בערך כמה אתה צריך לקחת בחשבון את המכונה.

המשמעות של תוכנית חובה היא מה שהיא עושה למכונה. משמעותה של הצהרה היא כל מה שהיא מציינת. אלה נקראים סמנטיקה אופרטיבית וסמנטיקה 'דנוטיבית' בהתאמה. כדוגמה לתוכנית ברורה מבחינה תפעולית אך לא מציינת שום דבר בפרט, שקול את השבר הבא של BASIC: 10 GOTO 10. לעומת זאת, ברור מה המשמעות של הטקסט הבא, אך היא אינה גורמת למכונה לעשות זאת כל דבר מיוחד: {"x": 7} (זהו אובייקט שלרכוש ה- X שלו יש ערך 7).

אתה יכול וצריך לקחת בחשבון גם את המשמעות התפעולית והמשמעותית של התוכנית שלך. לדוגמה, ב ציווי C אתה יכול להבין מה זה x + 1 ולא מה הוא עושה. ובהסקל ההצהרתי, עליכם להבין את ההתנהגות המבצעית של foldl (+) [1..10000000] (מכיוון שסביר להניח שנגמר לו הזיכרון).

(ישנן דרכים רבות יותר להבין את המשמעות של תוכנית מחשב מאלה, אגב. זה תחום שנחקר באופן פעיל.)


תשובה 2:

זה לא דבר מועיל לומר. מה שמופשט הוא חלק חשוב מאוד בהגדרת ההצהרה.

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


תשובה 3:

זה לא דבר מועיל לומר. מה שמופשט הוא חלק חשוב מאוד בהגדרת ההצהרה.

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


תשובה 4:

זה לא דבר מועיל לומר. מה שמופשט הוא חלק חשוב מאוד בהגדרת ההצהרה.

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