טורבו פסקל

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
סביבת הפיתוח טורבו פסקל 6

טורבו פסקל (Turbo Pascal) היא סביבת פיתוח של חברת בורלנד לשפת פסקל, שכוללת IDE ומהדר. סביבה זו הייתה פופולרית ואהודה אצל מפתחים בשפת פסקל בסביבת DOS, בשל חדשנותה, פשטותה, יכולותיה ומחירה הנמוך. חידושיה של חברת בורלנד בטורבו פסקל לא היו רק בסביבת פיתוח, אלא גם בהרחבות רבות לשפה, שאומצו לאחר מכן בידי קומפיילרים רבים, והעצימו יכולותיה של השפה והתאימו אותה לתפיסות תכנותיות חדשות. הגרסה האחרונה של הטורבו פסקל הייתה השביעית. בשנת 1995 חברת בורלנד הפסיקה לפתח אותה, ועברה לפתח את סביבת הפיתוח המהיר דלפי לחלונות וללינוקס. כיום ניתן להוריד גרסאות שונות של טורבו פסקל (1,3,5.5) ממוזיאון התוכנות של בורלנד.

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

הגרסה הראשונה של טורבו פסקל יצאה ב-20 בנובמבר 1983, והליבה שלה התבססה על מהדר בשם PolyPascal שנכתב על ידי מהנדס התוכנה הדני אנדרס הזלסברג. בורלנד הוסיפה לקומפיילר ממשק משתמש ועורך טקסט. אנדרס הצטרף לחברה כעובד, והיה הארכיטקט של כל גרסאות טורבו פסקל ושלוש הגרסאות הראשונות של דלפי. כאשר הגרסה הראשונה הופיעה בשוק האמריקאי הIDE שלה היה חדשני יחסית, והיא נמכרה במחיר של 49 דולר.

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

גרסה זו, שיצאה ב-17 בספטמבר 1986, הייתה הגרסה הראשונה שתמכה ביצירת ישומים שגודלם מעל 64K בתים באמצעות Overlays.

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

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

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

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

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

הוספה ספריה מונחת עצמים בשם Turbo Vision לכתיבת ממשק משתמש ושימוש בעצמי מסך כמו תפריטים, שימוש בעכבר, תיבות שיחה והודעות.

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

  • הוספה יכולת אינטגרציה של שפת אסמבלר בסביבה.
  • סביבת הפיתוח של DOS הורחבה לפיתוח בשני המודים שלו.
  • נוספה סביבת פיתוח חדשה לחלונות 16 ביט בשם BPW. (Borland Pascal 7) שבה הוספו יחידות לעבודה עם סביבת חלונות. החשובות שבהם, WinProcs שבדומה ל-MFC מהווה עטיפה ליותר מ-600 פונקציות API של חלונות, וביחד עם היחידה WinType, שתי יחידות אלו מהוות את מכלול התכנות של פסקל בחלונות, שאיפשר ליצור ישומים חלונאים מלאים כולל יכולות ליצירת יישום מרובי מסמכים (MDI), חילוף נתונים דינמי בין ישומים (DDE) ויצירת קובצי ספריות קישור דינמי (DLL).
  • נוסף טיפוס מחרוזת NullTerminated שגודלו יכול להגיע עד 64K תוים. (65,535 תוים). עד כה גודל מחרוזת היה מוגבל ל-256 תווים והדרך לטיפול בטקסט גדול יותר הייתה באמצעות הקצאת זיכרון דינמית.

הרחבות של טורבו פסקל לשפה[עריכת קוד מקור | עריכה]

כתיבה וקריאה להתקנים חיצוניים[עריכת קוד מקור | עריכה]

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

  • פקודת Assign הקצתה וקבעה את אמצעי הקלט-פלט: לקובץ - שם קובץ, להדפסה - PRN וליציאת תקשורת - COM ומספר (למשל COM1).
  • פקודת Rewrite פותחת את ההתקן לפלט.
  • פקודות Write או writeln מבצעות את הכתיבה.
  • ופקודת Close סוגרת את ההתקן.

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

  • כדי לפתוח קובץ להוספת נתונים יש להשתמש בפקודת Append.
  • כדי לפתוח קובץ לקריאה יש להשתמש בפקודת Reset, בצירוף עם פקודת הקריאה Read או Readln.
  • פקודת Seek כדי להניע את מחוון הקובץ.
  • כדי לדעת מתי הגעת לסוף שורה קיימת הפונקציה EOLN (תו אסקי 13),
  • ואילו פונקציה EOF מדווחת על סוף קובץ.
  • ביצוע של קריאת וכתיבת טיפוס נתונים לא מוגדר לקובץ, נעשתה באמצעות הפקודות BlockRead ו BlockWrite.

גישה למערכת הפעלה[עריכת קוד מקור | עריכה]

סביבת טורבו פסקל הרחיבה גם את הגישה למערכת ההפעלה ולBIOS של המחשב באמצעות היחידה DOS. ביחידה מספר שגרות. באמצעות השגרה MsDos אפשר לבצע ישירות פקודות DOS, באמצעות השגרה Intr אפשר לגשת ישירות לשרותי ה-BIOS של המחשב באמצעות פסקי תוכנה, ובאמצעות השגרה Exec אפשר להריץ תוכנית DOS תוך עצירת התוכנית הנוכחית. כמו כן ישנם פקודות דוס מובנות ביחידה לעבודה מהירה כמו למשל חיפוש קבצים, בדיקת גודלם וכדומה.

היחידה - ספריה חיצונית[עריכת קוד מקור | עריכה]

גם מושג היחידה היה חידוש של טורבו פסקל. טורבו פסקל עשה שימוש בספריות של קטעי קוד חיצוניים מקומפלים, לצורך שלוש מטרות: מיחזור קטעי קוד, הפשטה פרוצידורלית והכמסתו של הקוד, ושבירת מחסום 64K שהיה קיים בDOS. גישה לפונקציות בספריות חיצוניות קיימות (Unit) נעשית באמצעות המילה השמורה Uses לפני הגדרת המשתנים הגלובליים.

לדוגמה:

USES WINCRT, STRINGS, WINPROCS, WINTYPES, WIN32;

כדי ליצור יחידה יש להשתמש בכותרת שמה במילה השמורה UNIT, היחידה מתחלקת לשני אזורים. אזור המוגדר במילה השמורה INTERFACE (ממשק) שהינו החלק הפומבי של היחידה שחשוף לתוכניות חיצונית, ואזור המוגדר במילה השמורה IMPLEMENTATION (יישום), שהוא אזור פרטי, שנועד לשימוש של היחידה, ואיננו חשוף לבחוץ. לאחר הקומפילציה יווצר קובץ מכונה בעל סיומת TPU, ובעת קריאה לפונקציה או פרוצדורה שקיימת בו, הקומפלייר ידע לגשת אל היחידה ולהשתמש בקוד שקיים בה.

אובייקטים ותכנות מונחה עצמים[עריכת קוד מקור | עריכה]

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

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

בכדי להשתמש בבנאי, יש ליצור שגרה מיוחדת שכותרת שמה שונתה מ-PROCEDURE למילה השמורה CONTRUCTOR.

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

program MyProgram;
Type
       MyObject=object
       Author,
       BookName: string;
       procedure SetRecord(TheAuthor,TheName:string);
       procedure WriteRecord();
       end;
  procedure MyObject.SetRecord(TheAuthor,TheName:string);
  begin
    Author:= TheAuthor;
    BookName:=  TheName ;
  end;
  procedure MyObject.WriteRecord();
  begin
    Writeln(Author,BookName);
  end;
Var
 MyObject1:MyObject;
begin 
   MyObject1.SetRecord('Eli','Exodus');
   MyObject1.WriteRecord();
end.

התחרות עם מיקרוסופט[עריכת קוד מקור | עריכה]

סביר להניח כי פיתוח המוצר של מיקרוסופט לשפת פסקל Microsoft Pascal הופסק בשל התחרות הקשה שהציב הטורבו פסקל בשל איכותו ומחירו הנמוך. תאוריה אחרת גורסת שחברת בורלנד עשתה עסקה עם חברת מיקרוסופט להפסקת פיתוח Microsoft Pascal וגרסת הלייט שלו QuickPascal, בתמורה להפסקת פיתוח סביבת הפיתוח Turbo BASIC בידי חברת בורלנד.

קישורים חיצוניים[עריכת קוד מקור | עריכה]