From a3f67e2dc2100a24d71e58c50a76eca41e1b5f11 Mon Sep 17 00:00:00 2001 From: Maja Abramski-Kronenberg Date: Mon, 2 Jun 2025 12:21:21 +0000 Subject: [PATCH] [uxntal/he] Add a Hebrew translation of the Uxntal page (#5300) --- he/uxntal.md | 187 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 he/uxntal.md diff --git a/he/uxntal.md b/he/uxntal.md new file mode 100644 index 00000000..0eca81db --- /dev/null +++ b/he/uxntal.md @@ -0,0 +1,187 @@ +--- +name: Uxntal +contributors: + - ["Devine Lu Linvega", "https://wiki.xxiivv.com"] +translators: + - ["Maja Abramski-Kronenberg", "https://me.digitalwords.net"] +filename: learnuxn.tal +--- + +

+אוקסנטל (Uxntal) היא שפת סף מבוססת מחסנית שמִּתרגמת לשפת מכונה של מכונה ווירטואלית בשם אוקסן (Uxn). +

+ +

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

+ +

+את הביטוי שנכתב בכתיב הרגיל (5 + 10) * 3 נוכל לכתוב 5 10 + 3 * בכתיב הסופי, שנקרא גם „כתיב פולני הפוך”. +

+ +```tal +( זו הערה ) + +( התכנות באוקסנטל נעשה כולו בעזרת שינוי המחסנית ) + +#12 ( דחוף בית (8 סיביות) ) +#3456 ( דחוף צמד בתים (16 סיביות) ) + +( באוקסן 32 הוראות, ולכל הוראה שלושה מצבים אפשריים ) + +POP ( שלוף בית ) +POP2 ( שלוף צמד בתים ) + +( המצבים הם:‏ + [2] (מצב צמד בתים) + עבוד עם צמד בתים במחסנית (מצב ברירת המחדל הוא עבודה עם בתים) + + [k] (מצב הותרה) + הפריטים עליהם מבוצעת ההוראה נשארים במחסנית + + [r] (מצב חזרה) + ההוראה מבוצעת על מחסנית החזרה ) + +#12 #34 ADD ( 46 ) +#12 #34 ADDk ( 12 34 46 ) + +( ניתן לשלב בין המצבים השונים ) + +#1234 #5678 ADD2k ( 12 34 56 78 68 ac ) + +( ההוראות החשבוניות וההוראות על סיביות הן:‏ + ADD SUB MUL DIV + AND ORA EOR SFT ) + +( ניתן ליצור הוראות חדשות בעזרת מקרואים ) + +%MOD2 { DIV2k MUL2 SUB2 } + +#1234 #0421 MOD2 ( 01 b0 ) + +( ---------------------------------------------------------------------------- ) + +( צמד בתים הוא פשוט שני בתים צמודים; ניתן גם לפעול על כל בית בנפרד ) + +#1234 SWP ( 34 12 ) +#1234 #5678 SWP2 ( 56 78 12 34 ) +#1234 #5678 SWP ( 12 34 78 56 ) + +( ניתן להסיר מהמחסנית כל אחד מהבתים שמרכיבים צמד בתים ) + +#1234 POP ( 12 ) +#1234 NIP ( 34 ) + +( ההוראות על המחסנית עצמה הן:‏ + POP DUP NIP SWP OVR ROT ) + +( ---------------------------------------------------------------------------- ) + +( ניתן להשוות בין ערכים במחסנית ) + +#12 #34 EQU ( 00 ) +#12 #12 EQU ( 01 ) + +( הוראות לוגיות דוחפות למחסנית דגל עם ערך 00 או 01 לפי התוצאה ) + +#12 #34 LTH +#78 #56 GTH +#0101 EQU2 ( 01 ) + +( ההוראות הלוגיות הן:‏ + EQU NEQ GTH LTH ) + +( ---------------------------------------------------------------------------- ) + +( הזכרון הזמין לאוקסן:‏ + ‏256 בתים במחסנית העבודה + ‏256 בתים במחסנית החזרה + ‏65536 בתים בזכרון + ‏256 בתים בזכרון הקלט והפלט ) + +( 0000-ffff כתובות הזכרון הזמינות הן בטווח ) + +#12 #0200 STA ( אחסן 12 בכתובת 0200 בזכרון ) +#3456 #0201 STA2 ( אחסן 3456 בכתובת 0201 בזכרון ) +#0200 LDA2 ( 12 34 ) + +( הכתובות בדף האפס הן בנות בית יחיד ) + +#1234 #80 STZ2 ( אחסן 12 ב־0080, ו־34 ב־0081 ) +#80 LDZ2 ( 12 34 ) + +( התקנים חיצוניים הם הדרך של אוקסן לתקשר עם העולם החיצון.‏ + ניתן לחבר עד 16 התקנים בעת ובעונה אחת.‏ + .10-1f הבתים של ההתקנים נקראים „פורטים”. לדוגמה, התקן הקונסולה משתמש בפורטים + /write הפורט לכתיבה לקונסולה, שמספרו 18, נקרא בשם ) + +%EMIT { #18 DEO } + +#31 EMIT ( הדפס "1" בקונסולה ) + +( תווית היא שוות ערך למיקום מסויים בתוכנית ) +@parent ( parent הגדר תווית בשם ) + &child ( parent/child הגדר תת־תווית ) + +( ניתן לדחוף מיקומים למחסנית ) +;parent ( דחוף מיקום מוחלט, באורך 2 בתים ) +,parent ( דחוף מיקום יחסי, באורך בית אחד ) +.parent ( דחוף מיקום בדף האפס, באורך בית אחד ) + +( ההוראות על הזכרון הן:‏ + LDZ STZ LDR STR + LDA STA DEI DEO ) + +( ---------------------------------------------------------------------------- ) + +( הוראות לוגיות מאפשרות ליצור תנאים ) + +#12 #34 NEQ ,skip JCN + #31 EMIT +@skip + +( for ניתן גם ליצור בעזרתן לולאות ) + +#3a #30 +@loop + DUP EMIT ( כשהתוכנית תסיים יודפס "0123456789" בקונסולה ) + INC GTHk ,loop JCN +POP2 + +( while בדומה, ניתן ליצור גם לולאות ) + +;word +@while + LDAk EMIT + INC2 LDAk ,while JCN +POP2 +BRK + +@word "vermillion $1 + +( JMP2r ולחזור בעזרת ,JSR ניתן לקפוץ אל תת־שגרות בעזרת ) + +;word ,print-word JSR +BRK + +@print-word ( word* -- ) + @while + LDAk EMIT + INC2 LDAk ,while JCN + POP2 +JMP2r + +@word "cerulean + +( ההוראות לקפיצה הן:‏ + JMP JCN JSR ) +``` + +

רוצה עוד?

+ +