פסאודו קוד

פסאודו קוד (מאנגלית: Pseudo-Code; תרגום חופשי: קוד מדומה) הוא תיאור מצומצם ולא רשמי לאלגוריתם של תוכנית מחשב. פסאודו קוד משתמש במוסכמות של שפות תכנות, אך מיועד לקריאה של בני אדם ולא לקריאה על ידי מחשב. הביטויים שנכתבים בפסאודו קוד אינם ניתנים להידור (עיבוד הטקסט על ידי מחשב) בפני עצמם, אך הם ניתנים לתכנות כקוד אמיתי שכן ניתן להידור בכל שפת תכנות שהיא.

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

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

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

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

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

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

תחביר 
כפי שהשם מרמז, פסאודו קוד לא מציית לכללי דקדוק של אף שפה רשמית, וקיימים לו סגנונות רבים ומגוונים. לרוב כותב פסאודו קוד ישתמש בסגנון ותחביר, כמו לולאות, של שפת תכנות ספציפית שהוא מכיר. שפות מוכרות שלעיתים משתמשים בתחביר שלהן בפסאודו קוד הן Pascal, JAVA, ++C, C ועוד.

הגדרות משתנים לרוב נזנחות, וקטעי קוד ברורים ופשוטים יוסברו בקצרה בשפה טבעית (כדי לחסוך זמן ולפשט את הקוד). 
כך למשל, פעולה בסיסית ופשוטה כמו החלפת ערכי המשתנים X ו- Y, שלצורך ביצועה יש להשתמש במשתנה עזר נוסף ולבצע 3 פקודות השמה, תיכתב בפסואדו קוד כך: "נחליף את X ו-Y", או: "החלפת (X,Y)". משמעות הדבר היא שדרך המימוש ברורה לכל מתכנת, ועל כן אין צורך להתעכב על כך בכתיבת הפסאודו קוד.

דוגמאות 
דוגמה - פסאודו קוד לחישוב "האם y מתחלק ב- x?"

1. אם x = 0, אזי:
1.1. החזר "שקר"
2. אחרת:
2.1 כל עוד y > 0
2.1.1. בצע (y ← (y - x
2.2. אם y = 0, אזי:
2.2.1. החזר "אמת"
2.3. אחרת
2.3.1. החזר "שקר"
בדוגמה זו הקוד כתוב בעברית, וניתן לתרגום לכל שפת תכנות. הביטוי "כל עוד" הוא תרגום ישיר ללולאת WHILE. מספור השורות, כמו גם השימוש בהזחה, מקל על הקריאה וחוסך את הצורך בסימון בלוקים של קוד.נציין כי "בלוקים" מסומנים בשפות תכנות בצורות שונות, למשל על ידי כתיבת קטע הקוד בתוך {}, בין המילים begin ו-end או באמצעות הזחה (indentation).

ראו גם 
 Unified Modeling Language
 פייתון

תכנות