forked from CS234319/safot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbinding.tex
61 lines (51 loc) · 1.87 KB
/
binding.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
"אין זה איבר, גלגל, אף לא כפתור! וכי מה יש בו בשם?", את עשויה לתמוה. "וזה אשר
נקרא בשם זנב, האם לרגל יחשב, אם כך נקרא לו סתם פתאום?"
§ ישויות לעומת שמות
לכולנו ברור כי יש להבחין בין ישות ובין שמה.
יש דבר מה חמקמק בהבחנה שאני רוצה
⌘תחילת{ספרור}
• יש ישויות ללא שם - ישויות אנונימיות.
• יש שמות ללא ישויות - שמות שלא נקשרו לישויות.
• יתכן שלישות אחת יהיו מספר שמות.
• יתכן ששם אחד יתייחס למספר ישויות (למשל שם פונקציה ושם משתנה בשפת java, למשל overloading
• יש שמות שאינם חשובים: נקודות בתכנית שבהם יש חובה לתת שם, אבל השם עצמו חסר
חשיבות. למשל_בפרולוג או whatever ב-METAPOST.
⌘סוף{ספרור}
⌘תחילת{תכנית}
\bash
cat << EOF > echo.c
#include <stdio.h>
typedef char *stringsₜ[];
void printₛtrings(stringsₜ ss) {
for (; *ss; ss++)
printf("%s ", *ss);
printf("\n");
}
int main(int argc, char *argv[], char **envp) {
printₛtrings(argv);
printₛtrings(envp);
return 0;
}
EOF
\END
⌘setLTR
⌘lstinputlisting[language=C++,style=Numbered]{₀0/echo.c}
⌘כיתוב{מתן שם לטיפוס בשפת ⌘סי}
⌘תגית{תכנית:טיפוס:עם:שם:סי}
⌘סוף{תכנית}
⌘תחילת{תכנית}
\begin{CPPn}
struct {
const char *name;
const char *action;
} commands[]={
};
\end{CPPn}
⌘כיתוב{הגדרת טיפוס אנונימי בשפת ⌘סי}
⌘תגית{תכנית:טיפוס:אנונימי:סי}
⌘סוף{תכנית}
§ הגדרות
הגדרה
§ הכרזות
§ יצירת ישויות אנונימיות
§ מרחבי שמות