Movatterモバイル変換


[0]ホーム

URL:


לדלג לתוכן
ויקיפדיההאנציקלופדיה החופשית
חיפוש

BCPL

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

פרוצדורלית,

אימפרטיבית ,מובנית
תאריך השקה1967עריכת הנתון בוויקינתונים
מתכנןמרטין ריצ'רדס
הושפעה על ידיCPL
השפיעה על

Go C

B
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית

Basic Combined Programming Language)BCPL) היא שפת תכנותפרוצדורלית,אימפרטיביתומובנית שפותחה בשלהישנות ה-60 של המאה ה-20 ומומשה לראשונה על ידי מרטין ריצ'רדס מאוניברסיטת קיימברידג' בשנת 1967. היא נועדה במקור לכתיבתמהדרים עבורשפות תכנות אחרות, וכיום היא כבר לא בשימוש נפוץ.

על אף שהשפה כבר אינה בשימוש יש לשפה השפעה על התכנות המודרני, היות ששפת התכנות B (שהיא בעצם גרסה משופרת ושונה תחבירית של BCPL) היוותה את הבסיס לשפת התכנות C הידועה.

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

עיצוב

[עריכת קוד מקור |עריכה]

BCPL נבדלת משפות אחרות בכך שהיא מכילה רק סוג אחד שלמבנה נתונים :word (מילה), שהכיל מספר קבוע שלסיביות, ולרוב תאם להגדרת הארכיטקטורה בה נמצא, וכן הכיל כמות סיביות מספקת על מנת לייצגכתובות חוקיות בזיכרון. בשביל מכונות רבות באותו הזמן, גודלו של מבנה הנתונים word היה 16 סיביות. בחירה זו (הגדרת סוגמבנה נתונים יחיד) התבררה לאחר מכן כבעיה משמעותית כאשר BCPL רצה על מכונות עם גודל שונה שהוקצה ל-word בזיכרון כגון 32 סיביות ו-64 סיביות שבהן הכתובות הקטנות ביותר בזיכרון לא היו word, אלא byte (שהוא 8 סיביות).

למרות שבשפה ישנו רק סוגמבנה נתונים אחד, הפירוש של כל ערך בזיכרון נקבע על ידיהאופרטורים שמבצעים עליו פעולות. לדוגמה,+מחבר שני ערכים יחדיו, ומתייחס אליהם כמספרים שלמים (integers),! מצביע על כתובת באמצעות הערך, ובכך הופך אותולמצביע (pointer). על מנת ששיטה זו תעבוד, השפה לא ביצעה בדיקות לסוג מבני הנתונים. מוסכמת כתיבה ששמה "Hungarian Notation" פותחה על מנת לסייע למתכנתים להימנע מטעויות רשלניות בסוג מבני הנתונים.

היסטוריה

[עריכת קוד מקור |עריכה]

BCPL מומשה לראשונה בשנת1967 באוניברסיטת קיימברידג' על ידי מרטין ריצ'רדס. היא פותחה משום שלשפה שקדמה לה, Cambridge Programming Language (שנקראה לאחר מכן Combined Programming Language ובקיצור CPL) שפותחה בתחילתשנות ה-60 של המאה ה-20 היו קשיים. חלק אינטגרלי מפועלו של ריצ'רדס לפיתוח השפה היה הסרתהפיצ'רים אשר הופכים אתתהליך הקומפילציה לקשה יותר. המימוש הראשון שלמהדר ב -BCPL נכתב באביב 1967, כאשר ריצ'רדס ביקר בפרויקט MAC (שלא להתבלבל עם מערכת ההפעלהMacOS שלחברת אפל) במכון הטכנולוגי של מסצ'וסטס.

BCPL היא השפה הראשונה שבה נכתבהתוכנית "hello world" וכן שבה נכתב הMUD הראשון -MUD1.

דוגמאות

[עריכת קוד מקור |עריכה]

אם תוכניות אלו רצות באמצעות הגרסה הנוכחית של Cintsys, (מהדר BCPL) (נכון לדצמבר 2018), יש לכתוב את LIBHDR, START, WRITEF באותיות קטנות על מנת להימנע משגיאות.

הדפסת תוצאות של פונקציותעצרת:

GET "LIBHDR"LET START() = VALOF $(FOR I = 1 TO 5 DO WRITEF("%N! = %I4*N", I, FACT(I))RESULTIS 0$)AND FACT(N) = N = 0 -> 1, N * FACT(N - 1)

ספירת הפתרונות לחידת n המלכות :

GET "LIBHDR"GLOBAL $(COUNT: 200ALL: 201$)LET TRY(LD, ROW, RD) BETEST ROW = ALL THEN COUNT := COUNT + 1ELSE $( LET POSS = ALL & ~(LD | ROW | RD) UNTIL POSS = 0 DO $( LET P = POSS & -POSS POSS := POSS - P TRY(LD + P << 1, ROW + P, RD + P >> 1) $)$)LET START() = VALOF $(ALL := 1FOR I = 1 TO 12 DO $( COUNT := 0 TRY(0, 0, 0) WRITEF("%I2-QUEENS PROBLEM HAS %I5 SOLUTIONS*N", I, COUNT) ALL := 2 * ALL + 1$)RESULTIS 0$)

ראו גם

[עריכת קוד מקור |עריכה]

קישורים חיצוניים

[עריכת קוד מקור |עריכה]
בקרת זהויותעריכת הנתון בוויקינתונים
אוחזר מתוך "https://he.wikipedia.org/w/index.php?title=BCPL&oldid=40429808"
קטגוריה:
קטגוריות מוסתרות:

[8]ページ先頭

©2009-2025 Movatter.jp