טעות מיליארד הדולר

2/7/2021, לפני 3 חודשים
תגיות: rust, ראסט

אחד ממציאי שפת התכנות אלגול, Tony Hoare המציא את הפוינטר לNULL לדבריו פשוט כי זה היה קל מאוד למימוש ומפתה מידי מכדי לא לעשות את זה. לא הוא ובטח לא אחרים חשבו עד כמה זה נוראי, וכמה בעיות זה יציג בכמעט כל שפת תכנות.1 זה בולט במיוחד בשפות בהן המתכנת כותב די קרוב ל”ברזלים”, שפות כמו C++/C.

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

שפת התכנות Rust באה לפתור את הבעיה הזאת (ובעיות נוספות), ע”י כך שאין בשפה את הקונספט של מצביע ל־NULL בכלל2 - אין דבר כזה משתנה שלא מצביע לזיכרון ולידי. אם מקרה כזה קורה, התוכנה לא תתקמפל, ותודיע מראש שיש לך בעיה. בניגוד ל־++C, השגיאה גם תהיה מובנת ולרוב תכיל עזרה על איך לפתור אותה.

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


  1. מקור
  2. טוב, זה לא מדוייק לגמרי, אבל נכון ב99% לפחות מהמקרים.

הערות, מענות וכו'
נכתב על ידי אסף ספיר מתכנת, לשעבר פרמדיק ואח.
© Assaf Sapir, 2021, Built with Gatsby. Hosted with GitHub Pages.
Source code on my GitHub.