שאלות נפוצות
ציר זמן
צ'אט
פרספקטיבה

BCPL

שפת תכנות מוויקיפדיה, האנציקלופדיה החופשית

Remove ads

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

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

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

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

Remove ads

עיצוב

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

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

Remove ads

היסטוריה

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

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

Remove ads

דוגמאות

אם תוכניות אלו רצות באמצעות הגרסה הנוכחית של 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: 200
	ALL: 201
$)

LET TRY(LD, ROW, RD) BE
	TEST ROW = ALL THEN
 COUNT := COUNT + 1
	ELSE $(
 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 := 1
	FOR 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
$)

ראו גם

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

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads