tomron87/hebrew-wikipedia-sentences-corpus huggingface dataset:
סיבוכיות נומינלית היא תוצר טבעי של מנגנונים אבולוציוניים, המתכנסים לביצוע פעולה במינימום אנרגיה ויתירות.
כך ששוטונים ששימשו לעגינה בקבוצות (למשל: מושבות חיידקים, אזוב) ואיבדו תפקיד זה במעבר האורגניזם לסביבה אחרת, איבדו בהדרגה את יתר תכונותיהן שאינן רלוונטיות לתפקודן החדש (סיבוכיות נומינלית).
רבים ממתנגדי התכנון התבוני רואים בו מסווה להכנסת לימודי בריאתנות לבתי הספר בארצות-הברית, תחת שם אחר ובניגוד לחוק.
זאת לאחר שבית המשפט העליון של ארצות הברית אסר ללמד בריאתנות כמדע בבתי ספר של המדינה, בגלל דרישת החוקה להפרדת דת ומדינה.
במשפט דובר קיבל בית המשפט את עדותה של הפילוסופית של המדע ברברה פורסט, כי בספר הלימוד הבריאתני שעמד במרכזו של המשפט, הוחלף המונח "בריאה" באופן שיטתי במונח "תכנון תבוני", וכי החלפה זו נעשתה בשנת 1987, מיד לאחר פסק דין אדוארדס נגד אגילארד שאסר על לימוד בריאתנות כמדע.
בית המשפט קבע כי זו "ראייה משכנעת...
לכך שתכנון תבוני הוא בריאתנות בתווית חדשה".
האקדמיה הלאומית למדעים של ארצות הברית מתייחסת בפרסומיה הרשמיים לתכנון תבוני כאל סוג של בריאתנות ("Intelligent Design Creationism").
שורשי התכנון התבוני מצויים עוד בטיעון הטלאולוגי, והם לבשו ופשטו צורה בהתאם להתפתחות המדעית.
בשנות ה-80 של המאה ה-20 פורסמו מספר ספרים בנושא הזה.
מצד אחד יצא בשנת 1984 הספר "התעלומה של מוצא החיים", שהכיל הקדמה של פרופסור דין קניון, כימאי נודע, בו נטען שסיבוכיות החיים מצביעה על בורא.
כן יצא בשנת 1986 ספרו של מיכאל דנטון "האבולוציה: תאוריה במשבר", בו נטען שבטבע יש עדויות לקיומו של כח עליון.
מנגד, יצא ב-1986 ספרו של ריצ'רד דוקינס, השען העיוור, שפירט את אופן התרחשותה של האבולוציה ללא צורך בהנחת קיומו של בורא - מוטציות אקראיות ששרידותן מוכתבת בהתאמה לתנאי הסביבה - וטען שהמינים התפתחו בהתאם לתורת האבולוציה.
על פי סקרים עדכניים, רבים מתושבי ארצות הברית סבורים שסיפור הבריאה המופיע בתנ"ך הוא אמת, ולכן לדעתם ראוי ללמדו בשיעורי מדע במקביל לתאוריית האבולוציה.
אולם, בשל העובדה שהתיקון הראשון לחוקת ארצות הברית דורש הפרדת הדת מהמדינה, ומכיוון שסיפור הבריאה נחשב לרעיון דתי, אסר בית המשפט העליון של ארצות הברית ללמד את תורת הבריאה.
כיוון שכך, פיתח ארגון המכונה מכון דיסקברי את תורת התכנון התבוני הטוענת להיותה תורה מדעית, והם מבקשים לתת לה זמן שווה לזמן המוקדש ללימוד תורת האבולוציה בשיעורי המדע בבתי הספר.
בשנת 2005 פסק בית דין פדרלי במשפט "קיצמילר נגד בית הספר המחוזי של דובר" לזכותם של 11 הורים בדובר, פנסילבניה, שדרשו לא ללמד שתורת התכנון התבוני היא בעלת משקל מדעי שווה לתאוריית האבולוציה.
ג'ונס השלישי (מינוי של הנשיא הרפובליקני ג'ורג' ו.
בוש משנת 2002) פסק כי הכללת תיאורית התכנון התבוני שנעשתה על ידי מועצת בתי הספר של המחוז מפרה את התיקון הראשון לחוקת ארצות הברית, המתווה הפרדה ברורה בין המדינה ובין הדת (קן מילר היה עד מומחה במשפט זה).
ב-14 מדינות בארצות הברית שוקלים לשלב את לימודי התכנון התבוני בתוכנית הלימודים בביולוגיה.
בין ההצעות: חוק במדינת מיזורי, המבקש להבטיח כי רק מדע שהוכח בניסויים יילמד בבתי הספר, ובכך לדחוק את רגלי תורת האבולוציה.
תִכנוּת במוזיקה הוא צורה של הפקה וביצוע, המשתמשת בהתקנים אלקטרוניים, לעיתים קרובות סקוונסרים או תוכנות מחשב, כדי ליצור מוזיקה.
תכנות נמצא בשימוש בכמעט כל הסוגים של מוזיקה אלקטרונית ובמרבית מוזיקת ההיפ הופ מאז שנות ה-90. נעשה בו שימוש בתכיפות גם בפופ ומוזיקת רוק מאזורים שונים של העולם, ולפעמים בג'אז ומוזיקה קלאסית בני זמננו.
פרוגרמר (programmer) הוא איש עיצוב סאונד בסביבה דיגיטלית; הוא מתכנת ומפיק צלילים העוברים עיבוד של מחשב והופכים לצליל אודיו המשולב בהקלטה.
בעזרת מחשב ותוכנה מתאימה הוא יכול להפיק צלילים של תופי בס, גיטרות, כינורות ולעיתים להפיק צליל שלא מחקה צלילים מהמציאות הכלית אלא צליל מקורי.
תכנון תשתית תחבורה הוא תהליך שנועד לתכנן מענה על דרישות התעבורה הקיימות או העתידיות באזור מסוים לזמן נתון.
המענה יכול לכלול בניית רחובות חדשים, כבישים, דרכי עפר, דרכים מהירות, מסילות רכבת, קרונועים, שדות תעופה ונמלים באופן כזה שיתאימו לצורכי האוכלוסייה באותו אזור למספר שנים, או לחלופין לסדרי עדיפויות לאומיים, במקרה שהממשל מעדיף לשים דגש על פיתוח אזור מסוים.
בדרך כלל, לפני תכנון תשתית התחבורה בודקים את הנתונים התעבורתיים של האזור הנתון בעבר, כדי לאפיין את הצרכים התחבורתיים הקיימים, או את אלו העשויים להיווצר.
תכנון תשתית תחבורה, יכול להתבצע כדי לפתור בעיה מקומית בוערת, כמו היעדר תחנות רכבת בערים בהן כבר עוברות מסילות ברזל, אבל גם במקרה כזה, ניתן לחקור ולהעריך את מספר הנוסעים הצפוי, כדי לתכנן את גודל התחנות ואת מגרשי החניה הצמודים אליהן.
יר"מ - יחידת רכב מושווה
על מנת לחשב נפחי תנועה משתמשים ביחידות יר"מ (PCU).
נפחי תנועה במודלים של תחבורה מיוצגים ביר"מ על מנת לתרגם את עומסי התחבורה שתורם כל כלי רכב ממונע הנע בדרך.
מכונית פרטית נחשבת כ-1 יר"מ, אופנוע 0.8, משאית 1.8, אוטובוס 1.6, אוטובוס מפרקי 2 יר"מ וכדומה.
לאחר הערכת היקפי התעבורה הדרושים, ניתן להעריך מה סוג התחבורה המתאים לענות על צורכי התעבורה.
באזורים בהם האוכלוסייה דלילה ומפוזרת יתאימו דרכים למכוניות פרטיות.
באזורים עירוניים צפופים בעלי רחובות עמוסים ופקוקים יש צורך ברכבות תחתיות ובשבילים לאופניים.
באזורים הרריים וקשים למעבר יש לקחת בחשבון בנייה של מערכות גשרים לכבישים ולמסילות ברזל ולהסתמך גם על תחבורה אווירית ובמקומות משופעים בנהרות ובאגמים תיתכן תחבורה באמצעות דוברות ומעבורות.
בדיקת עתודות הקרקע לתשתית התחבורה
לאחר אפיון סוג התחבורה המתאים לצורכי התעבורה, יש לבדוק את האפשרויות המקומיות להקמת התשתית.
לעיתים יש צורך לרכוש מגרשים ושדות מבעלים פרטיים כדי לסלול דרכים או לבנות מסילות ברזל.
יש אפשרות גם להרוס דרכים מיושנות כדי לפנות דרך לפתרונות תחבורה מתקדמים ולפעמים יש לפנות או להעתיק מבנים קיימים כדי לאפשר את ביצוע התשתית המתוכננת.
תכנון תשתית התחבורה מתבצע לפי התקנים הייחודיים לכל סוג תחבורה באותה המדינה ובאותו האזור.
בתכנון מסילות ברזל יש להקפיד שהמסילה המתוכננת לא תהיה מפותלת מדי.
דרכים לאופניים ולגלגיליות צריכות להיות מישוריות או בעלות שיפוע מתון.
מנהרות צריכות לעמוד בעומסי האדמה שמעליהן ובעומסי רעידות אדמה וגם צריכות להיות מאווררות כדי לא לסכן את הנוסעים בתוכן.
שדות תעופה בעלי נפח תחבורה גדול צריכים להיות מרוחקים מאזורי מגורים ובה בשעה צריכים להיות נגישים לריכוזי האוכלוסייה באמצעות אמצעי תחבורה קרקעיים.
כחלק מהתכנון נעזרים בטבלת מטריצת ביקושים, זו טבלה המונה מספר נסיעות בין אזורי התנועה השונים, יש מספר מטריצות על פי סוג התנועה ובהן:
תכנון שפה מתייחס למאמצים מכוונים להשפיע על התנהגותם של אחרים בנוגע לרכישה, מבנה, או הקצאה תפקודית של שפה.
באופן טיפוסי כולל התהליך קביעת יעדים ואסטרטגיות על מנת לשנות את הדרך בה נעשה שימוש בשפה.
ברמה ממשלתית מתבטא תכנון שפה בדמות מדיניות שפה.
לאומות רבות יש גופי הסדרת שפה האחראים ספציפית לנסח וליישם מדיניות תכנון שפה.
המונח "תכנון שפה" זוהה בעבר לעיתים קרובות בקשר למדינות העולם השלישי, כשהוא מתואר ככלי לייסוד שפות לאומיות תקניות כחלק מתהליך מודרניזציה ובניית אומה.
בפועל, תכנון שפה אינו תופעה מודרנית ואינו מוגבל לעולם השלישי.
תכנון שפה לא מנוהל בהכרח ברמה לאומית.
גם קבוצות אתניות, דתיות או מקצועיות עשויות להפעילו.
במקרה של קהילות, שלהן שפה משותפת, המחולקות על ידי גבולות בין-לאומיים למדינות שונות, יכול תכנון השפה לערב יותר ממדינה אחת (ברמה של גוף ממשלתי או גוף בלתי ממשלתי) או גופים וכנסים אזוריים או בין-לאומיים.
ארגון בין-לאומי אחד (שבסיסו בארצות הברית) המעורב בתכנון שפות משמעותי ברחבי העולם, בייחוד עבור עמים דוברי שפות נטולות כתב, הוא "סיל אינטרנשיונל" (SIL International).
תכנון שפה יכול להתרחש גם מלמטה כלפי מעלה, כדוגמת שפה נטולת מגדר בארצות הברית ובישראל, שהחלה בקבוצות פמיניסטיות עממיות, או תנועת N'Ko במערב אפריקה.
ניתן לחלק תכנון שפה לשלושה תחומים:
תכנון גוף השפה מתייחס להתערבות בכללי השפה האחראים לצורות של השפה.
ניתן להשיג זאת באמצעות המצאת תחדישים או ביטויים, שינוי של מילים או ביטויים קיימים, או בחירה בין כמה צורות חליפיות.
מטרת תכנון גוף השפה היא לפתח את משאבי השפה על מנת שתהפוך לאמצעי הולם לתקשורת בניהול שיחות על נושאים מודרניים, ולצייד אותה בטרמינולוגיה הדרושה על מנת לעשות בה שימוש במִנהל, חינוך וכדומה.
תכנון גוף השפה קשור לעיתים קרובות לסטנדרטיזציה של שפה, וכולל הכנה של אורתוגרפיה, דקדוק ומילון נורמטיביים לשם הדרכה של כותבים ונואמים בקהילת הדוברים.
מאמצים לטיהור השפה וסילוק מילים שמקורן משפה זרה גם הם שייכים לתכנון גוף השפה, כמו גם רפורמה של כתיב והכנסה של שיטות כתב חדשות (למשל כפי שנעשה בשפה הטורקית).
עבור שפה נטולת כתב, הצעד הראשון בתכנון גוף השפה הוא פיתוח של כתב.
תכנון מעמד השפה מתייחס למאמצים המכוונים לחלק את התפקודים של השפות והאוריינויות בתוך קהילת הדוברים.
התכנון כולל בחירת מעמדות – קביעת שפה מסוימת או וריאציה שלה כ"שפה רשמית", "שפה לאומית", וכו'.
לעיתים קרובות יכלול תכנון מעמד השפה החלטה לרומם שפה או דיאלקט למעמד של דיאלקט יוקרתי, על חשבון דיאלקטים מתחרים.
תכנון מעמד השפה הוא לעיתים קרובות חלק בלתי נפרד משיטת כתב חדשה.
תכנון מעמד השפה נוטה להיות ההיבט השנוי ביותר במחלוקת של תכנון שפה .
תכנון רכישת שפה קשור בלימוד וברכישת שפות, בין אם מדובר בשפות לאומיות, בשפות שניות או בשפות זרות.
התכנון כולל מאמצים להשפיע על מספר המשתמשים והפצה של שפות ואוריינות, על ידי יצירת הזדמנויות או תמריצים ללמוד אותן.
מאמצים מסוג זה עשויים להיות מבוססים על מדיניות של הטמעה תרבותית או פלורליזם תרבותי.
תכנון רכישת שפה קשור ישירות להתפשטות השפה.
תכנון רכישת שפה הוא בדרך כלל בתחום האחריות של ממשל לאומי, אזורי או מקומי, אבל גם גופים כדוגמת המועצה הבריטית, אליאנס פראנסז, מכון סרוונטס, מכון גתה, אגודת דנטה אליגיירי, מכון קמואש ומכון קונפוציוס, פעילים מאוד בכל רחבי העולם כשהם מקדמים חינוך, כל אחד בשפתו.
תכנון שפה בתחיית הלשון העברית
חוקרי תחיית הלשון העברית הצביעו על ייחודו של תהליך זה כמקרה מיוחד של תכנון שפה.
במסגרת תכנון השפה נכללו גם פעולות שמטרתן העלאת יוקרתה של השפה המתוכננת – העברית – בעיני המשתמשים בה.
פעולות תכנון השפה נעשו בראשיתו של התהליך בדרך כלל על ידי יחידים, ולא על ידי מוסדות רשמיים ומאורגנים; רק בשלבים מאוחרים הוקמו גופים ומוסדות שהוציאו לפועל את פעולות תכנון השפה, ובהם ועד הלשון העברית וגדוד מגיני השפה.
בשונה ממקרים אחרים של תכנון שפה, המניעים של מתכנני הרחבת השימוש בשפה העברית היו מניעים אידאולוגיים.
תכנות לוגי הוא פרדיגמת תכנות השמה דגש על יחסים ככלי הפשטה עיקרי.
יחסים הם כלי המאפשר לקשר בין ערכים שונים באמצעות עובדות המוגדרות מראש.
תכנות לוגי מבוסס על תחשיב הפרדיקטים ושונה מפרדיגמות התכנות המקובלות, המבוססות על ארכיטקטורת פון נוימן.
התכנות הלוגי מבוסס בראשיתו על האקסיומה: .
רוברט קוואלסקי הסיק שאקסיומה זו יכולה להיקרא כפרוצדורה רקורסיבית, כך ש A הוא הראש של הפונקציה וכל הוא חלק מהגוף.
כלומר, כדי לפתור (להריץ) את A, יש לפתור (להריץ) את .
התכנות הלוגי במובן הכללי שלו, נתן בתחילה מקום למספר מימושים, כגון אלו של פישר בלאק (1964), ג'יימס סלייגל (1965), וקורדל גרין (1969).
מימושים אלו היו בעצם מערכות ל"פתירת שאילתות" כמו ה Advice Taker שהוצג במאמרו של ג'ון מקארטי (1958).
למרות זאת, רק ב-1969, אבסיס, שנכתבה על ידי פוסטר ואלקוק, הייתה לשפה הראשונה שעסקה בתכנות לוגי והוכרזה כשפת תכנות.
במובן הצר יותר של התכנות הלוגי, ניתן למצוא אותו כבר בדיונים הראשונים על בינה מלאכותית בסוף שנות ה-60 ותחילת ה-70. אף על פי שהייתה אכן מבוססת על לוגיקה, פלאנר, אשר פותחה ב MIT הייתה השפה הלוגית הראשונה שנבנתה על פרדיגמת התכנות הפרוצדורלי.
המימוש הידוע ביותר של הפלאנר הוא המיקרו-פלאנר שנבנה על ידי ג'רי סוסמן, אגווין חארניאק, וטרי וינוגרד.
השימוש בו היה למימוש השפה הטבעית של וינוגרד, והבנתה של תוכנת SHRDLU, דברים אשר היוו התקדמות רצינית ביותר באותה התקופה.
מפלאנר עצמה התפתחו בנוסף גם השפות QA-4, POPLER, Conniver, QLISP, ETHER.
הייס וקוואלסקי, גם הם ניסו לקבל את גישת ההכרזה הלוגית לייצוג מידע שהוצגה על ידי פלאנר בצורתה הפרוצדורלית.
הייס (1973), פיתח שפת משוואות, GOLUX, שבה ניתן לקבל פרוצדורות שונות באמצעות שינוי של אלגוריתם מציאת הפתרון לשאילתות.
קוואלסקי לעומת זאת הראה כיצד ניתן לפתור באמצעות פתרון רדוקטיבי של SL-resolution את השאילתות המוצגות.
לבסוף קוואלסקי, בשיתוף עם קולמיראור בעצם בנו את פרולוג על בסיס רעיונות אלו.
מכאן והלאה פותחו גם ALF, Godel, Fril ועוד שפות נוספות.
בשנת 1997 הוקמה ועדת "מייסדי התכנות הלוגי" שמטרתה הייתה לתת ל-15 האנשים הללו את מקומם הראוי בהיסטוריה בתור חלוצי התכנות הלוגי.
בתכנות לוגי אין חישוב של ערכים או טיפוסים הניתנים להם.
שיטת החישוב של התכנות הלוגי היא שיטה של האחדה ומענה על שאילתות באמצעות הוכחות בלבד.
לתכנות הלוגי שלושה מאפיינים הייחודיים לו:
סט של עובדות, וחוקים המגדירים יחסים בבעיה המוצגת.
סט של תשובות נתונות עבור שאילתה מבוקשת.
אם השאילתה המבוקשת מכילה משתנים, התשובות יכילו ערכים מתאימים לפתרון השאילתה.
הרצה היא בדיקה של שאילתה על ידי המפרש.
הרצה היא ניסיון למצוא סט של עובדות וחוקים שיספקו את ערכי השאילתה.
אם מדובר בשאילתה המכילה משתנים, ההרצה תנסה לתת ערכים כלשהם, מתוך התוכנית, אשר יספקו את השאילתה.
אם לא ימצאו ערכים מתאימים יוחזר ערך שלילי.
סמנטיקת התפעול של התכנות הלוגי מבוססת על שני מנגנונים:
האחדה של תבניות (unification): מכניזם האחראי על העברת פרמטרים והתאמת סוגי משתנים.
גישוש נסוג (Backtracking): מכניזם שתפקידו חיפוש הוכחות.
תחשיב יחסים בתכנות הלוגי (המובן הרחב)
תחביר: סמלים אטומיים: קבועים ומשתנים.
יחידים אשר הם תיאור של ישות או אובייקט מסוים.
פרדיקטים אשר מתארים יחס קיים.
(ישנם כמה המוכלים מראש בשפה)
סמלים קבועים אשר מתחילים באות קטנה.
משתנים ייוצגו באות ראשונה גדולה לדוגמה: X,Y,DingDong, TheWitchIsDead.
קבועים או משתנים ייחודיים נקראים ביטוי.
נוסחה אטומית היא אחד משניים, חוק או עובדה.
הצורה הבסיסית של נוסחה אטומית היא:
כל נוסחה אטומית היא פונקציה.
הרצה של כל פונקציה תעשה על ידי השאילתה שתינתן.
עובדה היא הגדרה של n אטומים כך ש n>=1 אשר עומדים ביחס מסוים.
שורה זאת לוקחת את שני הקבועים (נשים לב אות קטנה בתחילת המילה) abraham, issac וקובעת שהם עומדים ביחס Father (כלומר עובדה).
בניגוד לשורת הקוד הקודמת, כאן ניתן לראות, כי השם Abraham מתחיל באות גדולה ועל כן הוא משתנה.
הצורות הפשוטות ביותר של עובדה הן true, false.
לכל פרדיקט שנבנה קיימת תבנית, התבנית בנויה ממספר ביטויים ותוגדר על ידי מספר זה.
לדוגמה מספר הביטויים של father שהוגדר קודם הוא 2. אם נגדיר מחדש את father עם מספר ביטויים שונה הפרדיקט לא יוגדר כאותו פרדיקט.
הגדרה של יחס בתנאי מסוים נקראת חוק.
במקרה זה נגיד כי X עומד ביחס father עם issac אמ"מ X=abraham.
הפרדיקט "=", כאמור, הוא פרדיקט אשר בנוי לתוך התכנות הלוגי.
ראש החוק הוא החלק הראשון אשר מגיע לפני הסימן -: בעוד שהחלק השני הוא הגוף.
הגוף יכול להיבנות באמצעות יותר מחוק אחד ולהיות מופרדת בפסיקים כמו שנראה בהמשך.
כל "," כזה הוא הפרדיקט and.
כלומר כדי שהראש ייתן ערך true יש לדאוג לכך שכל הערכים בגוף המופרדים בפסיקים יתנו ערך דומה.
חוק מגדיר טווח לקסיקלי פנימי שהאברים הקשורים אליו ניתנים בראש.
נשים לב שבדיקת חוק היא רקורסיבית ועל כן כאשר נגדיר משתנה חדש בתוך חוק הבדיקה תעשה בטווח חדש שניתן לאותה נוסחה אטומית שהוא קשור אליה.
בעיסוק רקורסיבי בחוקים נשתמש הרבה בעקרון השמת שמות, כלומר לתת שם חדש למשתנה קיים.
זאת מכיוון שנעבור אזורי קוד שונים וכל פעם שנכנס רמה פנימה לתוך החוק נצטרך להבדיל בין הערכים השונים הניתנים.
שאילתה היא בעצם בדיקה של מאגר האקסיומות שבנינו מראש.
בהרצת שאילתה כלשהי ירוץ אלגוריתם שיבדוק אחד אחד בסדר כלשהו את העובדות והחוקים שניתנו בהקדם וינסה להוכיח את השאילתה.
שאילתה זאת תחזיר לנו X=abraham, Y=issac.
המשך הרצה של השאילתה עם האקסיומה היחידה שנתנו מעוד מועד יחזיר false.
זאת מאחר שאין עוד ערכים שיאמתו את השאילתה.
נשים לב כי הרצה של שאילתות יכולה גם להכיל קבועים בלבד ולא משתנים ואפילו להכיל מספר ביטויים שונים להוכחה.
הגדרת פרוצדורות תעשה בבלוק יחיד ומופרד מפרוצדורות נוספות.
כל הגדרה של פרוצדורה תחל בחוזה אשר יתאר את חתימתה (Signature specification) ואת היחס שהיא מגדירה (Purpose declaration).
עובדות וחוקים בהגדרת פרוצדורה יהיו ממוספרות.
המפרש תפקידו לחשב סט של תשובות, תחלופות, עבור המשתנים הנתונים בשאילתה.
כל תשובה מייצגת הוכחה של השאילתה, במידה ואין הוכחה אז הסט ריק.
כל סט כזה מהווה ניסיון נוסף לפתור את השאילתה וניסיון נוסף לשימוש בחוקים למציאת ההוכחה.
המפרש עובר ע"פ סדר שאינו דטרמניסטי על כל החוקים והעובדות (בפרולוג למשל הסדר הוא ע"פ סדר הכתיבה שלהם), ומחפש אלמנטים שיוכיחו את השאילתה המבוקשת.
שלב זה הוא שלב הגישוש הנסוג.
המפרש יתייחס לכל עובדה כאילו היא חוק בעל ערך true.
אלגוריתם ההוכחה של המפרש מניח מראש כי קיים איטרטור "is" אשר עוקב אחרי הסדר של בדיקת השאילתה והחוקים והעובדות אשר נבדקו כבר.
2. החלף את שמות המשתנים הקיימים בשמות חדשים.
3. בחר את ביטוי השאילתה הבא שערכו אינו true באמצעות האיטרטור is וקרא לו G
4. בחר את החוק הבא וקרא לו A כך ש
אם נמצא החוק המתאים הרץ שאילתה חדשה ללא G עם הסט החדש ואיטרטור חדש.
5. אם ישנם עוד חוקים לאיטרטור, עבור לחוק הבא באיטרטור עם אותם הנתונים.
סט המקיים את ההוכחה או סט ריק.
חישוב האלגוריתם של המפרש מתואר על ידי עץ הוכחה אשר מוגדר בצורה הבאה:
אברי העץ מכילים את השאילתות.
ענפיו מסומנים במספרי חוקים וחישובי האחדת תבניות.
איבר הבסיס של העץ הוא השאילתה לפתרון ויסומן על ידי Q.
כל תת-עץ הוא דרך הוכחה של איבר הבסיס של אותו העץ.
ענף בעץ בעל חישובים נכונים לכל אורכו מהווה הוכחה של השאילתה.
מה שהופך את העץ לעץ הצלחה.
אם עץ ההוכחה סופי ואין עליו מסלולי הוכחה נכונים העץ יקרא עץ כישלון סופי.
אם עץ ההוכחה אין סופי וקיים עליו מסלול הוכחה אמיתי כלשהו העץ יקרא עץ הצלחה אין סופי.
נתבונן בדוגמה הבאה ונבנה עץ הוכחה:
כפי שניתן לראות העץ הוא עץ הצלחה, תוצאת התחלופות בענף ההצלחה היא:
לבסוף ההגבלה למשתני השאילתה עצמה מחזירה את התשובה, S=lot.
דטרמניסטיות בתכנות הלוגי הבנוי על תחשיב היחסים
בהינתן שאילתה Q ותוכנית P ההכרעה האם P מספק את Q היא דטרמניסטית:
עץ הוכחה בנוי ממספר איברים אשר כוללים שאילתות ונוסחאות אטומיות.
הנוסחאות האטומיות מורכבות מפרדיקטים, קבועים אשר נמצאים בתוך התוכנית ובשאילתה וכמובן ממשתנים.
מכאן שמספר האטומים ומספר השאילתות הקיימות הוא סופי.
כלומר, המסלולים בעץ ההוכחה הם סופיים וניתן להכריע בשאלה האם P מספק את Q.
עם זאת, לא ניתן להסיק מכך שכל עצי ההוכחה סופיים.
גודלו של עץ ההוכחה תלוי באלגוריתם היוצר אותו.
השאלה המרכזית היא האם האלגוריתם יודע לזהות כפילויות בשאילתות שכבר נעשו בשלב מוקדם יותר, וזאת אף על פי שנעשתה החלפה בשמות המשתנים.
תכנון קיבולת הוא תהליך בו מעריכים את הקיבולת של משאב מערכת שתידרש בעתיד על מנת לאפשר היערכות מראש למענה לדרישות הקיבולת הצפויות.
תוצר התהליך הוא דווח של הגידול הצפוי במשאבים על ציר הזמן.
ניתן לבצע תכנון קיבולת לכל משאב תשתיתי כגון: כבישים, רשתות חשמל, מכונות בפסי ייצור וחומרה של מחשבים (למשל מעבד, זיכרון פנימי ודיסקים).
המטרה של תכנון קיבולת היא להביא למינימום את הפער בין כמות המשאבים הנדרשת וכמות המשאבים הנרכשת.
הרעיון המרכזי הוא התאמת כמות המשאבים של אמצעי הייצור לצרכים המשתנים באופן דינאמי במטרה להשיג יעילות.
יעילות בהקשר זה היא מצב בו אין חוסר במשאבים, העלול לגרום לחוסר יכולת לייצר כמות או איכות נדרשת של התוצרים, ואין עודף גדול במשאבים שמשמעותו הגדלת העלויות.
קיימות שלוש אסטרטגיות עיקריות בתכנון קיבולת:
הובלה (Lead Strategy) - אסטרטגיה אגרסיבית, המניחה גידול רב במשאבים, למשל בחברה המנסה להעביר אליה לקוחות של מתחרותיה.
החיסרון בגישה זו עשוי להיות בעלויות של משאבים עודפים שלא יעשה בהם שימוש.
היגררות (Lag Strategy) - אסטרטגיה שמרנית המבוססת על תוספת משאבים רק לאחר שנוצרת דרישה.
היתרון של גישה זו הוא בהקטנת עלויות רכישת משאבי ייצור.
החיסרון העיקרי הוא החוסר ביכולת לענות במהירות על דרישה לא צפויה.
התאמה (Match Strategy) - אסטרטגיה הנמצאת בין שתי הגישות האחרות ומנסה להביא לאופטימיזציה בכמות המשאבים כשמצד אחד לא ייווצר עודף גדול במשאבים ומצד שני לא ייווצר מצב בו מתקשים לענות על דרישות ייצור בגלל מחסור במשאבים.
תהליך תכנון קיבולת מורכב ממספר שלבים המתבצעים זה אחר זה כמתואר להלן:
זיהוי כמות המשאבים הזמינה במצב הקיים והאחוז ממנה המנוצל בפועל
בשלב זה מקבלים את רמת הבסיס של משאב מסוג מסוים ורמת הצריכה שלו.
לצורך קבלת המידע ביחס לרמת הצריכה עשויים להידרש כלים ממוחשבים הדוגמים את ניצול המשאב ומפיקים דוחות.
כך למשל לצורך הערכת רמת הבסיס של מעבדים מרכזיים של שרתים בתחום המחשוב, משתמשים ברשימות מצאי המכילות את סוגי, כמויות ותצורות השרתים.
לצורך הערכת רמת הניצול של משאב זה, ניתן להשתמש במוניטור ביצועים.
כלי זה הוא כלי ממוחשב המודד את השימוש במעבדים מרכזיים של השרתים ומאפשר הפקת דוחות של רמת השימוש במשאב זה על פי חתכים שונים, כגון: שעות ביום, ימים בשבוע ותאריכים בחודש.
הערכת הגידול או הקיטון הצפוי במשאב לאורך זמן
הערכת הגידול או הקיטון מבוססת על מודלים ועשויה להתבסס על כלים ממוחשבים.
אקסטרפולציה, בה מחושב הגידול ההיסטורי במשאב לאורך מספר שנים ומניחים גידול באותו מתווה (מגמת גידול ושיעור גידול) בשנים הבאות.
אם שיעור הגידול בשנים קודמות היה בסדר כרונולוגי מהישן לחדש: 15%, 18%, 21%, נחזה על פי שיטה זו גידול של 24% בשנה הבאה.
שיטה זו אינה מתאימה למצבים בהם צפוי לחול שינוי מהותי בדפוסי או בנפחי עבודה.
הערכות מנהלים - שיטה המשלימה או מחליפה את האקסטרפולציה ביחס לשיעור הגידול הצפוי בעתיד.
שימוש בנתונים עסקיים להערכת הגידול הצפוי במשאב הטכני, על פי שינויים צפויים בתקציב ושינויים צפויים בנפחי הפעילות העסקית.
ניתן להשתמש במספר רב של שיטות לביצוע ההערכה, כולל האפשרות לשלב שיטות שונות.
כך למשל גידול במשאב של דיסקים במרכז מחשבים, ניתן לביצוע באמצעות שיטה של אקסטרפולציה.
החישוב צריך להביא בחשבון רמת צריכה לא אחידה של המשאב ולתכנן מספיק משאבים לנקודות צריכת שיא (Peak).
לדוגמה, בתכנון רשת חשמל יש להביא בחשבון שבשעות הבוקר קיימת צריכה גבוהה מאשר בשעות הלילה ולתכנן כמות אמצעי ייצור שתענה על הצרכים בשעות אלו.
חישוב כמות של המשאב שתידרש מחושבת על ציר הזמן
חישוב זה מבוסס על הקיבולות הצפויות על פי החישוב בשלב של הערכת הגידול.
בנוסף לכך הוא מתחשב באילוצים: טכנולוגיים, כלכליים ואחרים.
כך למשל בחישוב קיבולת משאבי שרת מחשב, נדרשת התחשבות בקפיצות מדרגה: לא ניתן לרכוש גידול בכמות הנדרשת אלא על פי גודל שמייצר היצרן ועשוי להיות בהיקף משאבים גדול מהדרוש לארגון בזמן הרכישה.
תכנון רגיש למים או תר"מ בתחום התכנון העירוני הוא תכנון של פיתוח עירוני תוך התחשבות בניקוז משקעים וניצול מיטבי שלהם, בניגוד לגישות קודמות לתכנון ששמות דגש על ניקוז מקומי מהיר ככל האפשר של המים.
זהו תת-תחום בין-תחומי של תכנון עירוני ואזורי, הנדסת ניקוז ופיתוח בר-קיימא.
תכנון רגיש למים התחיל להתפתח בערך בסוף שנות ה-80 של המאה ה-20 עם התפתחות מושג הקיימות ובמקביל התפתחות החשיבה הרב-תחומית.
חוקרים רבים התחילו להצביע על כך שקיים קשר בין הפיתוח לבין המאזן של המערכת ההידרולוגית.
פיתוח עירוני גורם לאטימה של שטחים נרחבים ומצריך פתרונות ניקוז למי הנגר שנוצרים באירועי גשם.
הגישה הקונבנציונלית מתמקדת בסילוק מהיר של מי הגשם מן השטח הבנוי.
גישה קונבנציונלית זו גורמת למספר בעיות שאינן בנות-קיימא, כגון:
מי הנגר מתבזבזים לים ולא מוחדרים לאקוויפר.
אי-החדרה לאקוויפר יכולה לגרום להדללותו ואף לפגוע באיכותו לאורך השנים.
כל זאת יכול להוסיף לגרעון במשק המים.
סילוק מהיר ככל האפשר של מי הנגר מצריך פיתוח מערכות ניקוז יקרות על מנת לעמוד בספיקות שיא בעת אירועי גשם גדולים.
פיתוח במעלה אזור הניקוז יצריך בהכרח את שדרוג המערכת במורד האגן, כדי לעמוד בספיקות הגדולות יותר.
אי-התאמת השטח לפיתוח למאפיינים ההידרולוגים של האזור (כמו בנייה בפשטי נחל) תגרום להוצאות גדולות למניעת הצפות.
תכנון רגיש למים נותן מענה לבעיות שהוצגו.
ברמה העירונית הוא מציע את הפתרונות הבאים:
פריסת השטחים הפתוחים העיקריים בעיר בהתאמה לשיקולי מים: שימור ושיקום נחלים העוברים בשטח העירוני ומיקום השטחים הפתוחים בהתאמה לזרימת נגר עירוני בעיר.
תכנון ייעודי קרקע עירוניים: עירוב שימושי קרקע ובנייה קומפקטית המונעת אטימת קרקע נוספת.
תכנון מערך הדרכים: שילובה עם תוכנית הניקוז, כך שתותאם למערכת ההידרולוגית.
החדרת נגר לקרקע שמקורו בכבישים וחניונים שכונתיים (שרמת זיהומם קטנה), אך הימנעות מהחדרת מי נגר שמקורם בכבישים ראשיים (שמאופיינים ברמת זיהום גבוהה).
ניהול ושימור הנגר כמרכיב בתכנון הנוף העירוני: הפניית המרזבים לשטח חדיר, ריצוף בחומרים חדירים, אגירה וניצול מי הנגר להשקיית גינות, הפניית מי הנגר לאחו לח וכו'.
מעבר לרמה העירונית, תר"מ מתייחס גם לתחומים נוספים: ברמה הארצית ואזורית הוא דורש הכנת תוכניות אב אגניות שכוללות מאגרים ואתרי החדרה במעלה הנחלים למניעת שיטפונות, ניהול פשטי נחל והצפה.
לגבי שמירת מקורות המים התר"מ מציע יצירת "אזורי הגנה תכנוניים" על מקורות המים (הכוללים למשל רדיוסים של הגבלות פיתוח מסביב אתרי שאיבה) ויצירת מפות רציות (desirability) של החדרת מי נגר.
מפות הרציות מתייחסות לדוגמה לאזורים שבהם ידוע על זיהומי קרקע ("החדרה לא רצויה") ואזורים עם סיכוי נמוך לזיהומי קרקע כמו למשל אזורי מגורים ("החדרה רצויה").
במובן רחב יותר, תר"מ מתייחס לשיטות של חיסכון במים (כגון התקנת חסכמים) ולשימושים אלטרנטיביים של מים אפורים (כגון שימוש חוזר של מי הדחת כלים ומקלחות בהדחת אסלת השירותים).
ראשית התפתחות התר"מ בישראל הייתה באקדמיה ומחקרים רבים התבצעו מתחילת שנות ה-90. מבין החוקרים המרכזיים בתחום אפשר לציין את הפרופסורים נעמי כרמון ואורי שמיר מהטכניון.
מחקריהם פורסמו על ידי המרכז לחקר עיר ואזור בפקולטה לאדריכלות ותכנון ערים של הטכניון ואלו מהווים את הגוף המחקרי הפעיל ביותר בנושא תר"מ בישראל.
לתר"מ בישראל חשיבות מיוחדת לנוכח מיעוט משאבי המים בה.
כמות המים המתבזבזת על ידי הזרמת מי נגר עירוניים לים מוערכת במעל ל-100 מיליון מטר קוב כל שנה, כמות הזהה לספיקת מתקן ההתפלה באשקלון.
הפגיעה העיקרית היא במאגרי המים ובמיוחד אקוויפר החוף שמעליו ממוקמים ריכוזי האוכלוסייה העיקריים של המדינה.
לחוקרים הייתה השפעה די ניכרת על מקבלי ההחלטות וכיום נראית תחילתה של מדיניות תר"מ בישראל.
ברמה התחוקתית, תוכנית מתאר ארצית 34ב'/3 ו-34ב'/4 (תוכנית מתאר ארצית משולבת למשק המים; פרקים "נחלים וניקוז" ו-"איגום מים, החדרה, העשרה והגנה על מי התהום") היא ההתייחסות הכוללנית הראשונה בתחום.
בנוסף, משרד הבינוי והשיכון, המשרד להגנת הסביבה, נציבות המים, רשות המים, מינהל מקרקעי ישראל, ועדות מחוזיות ומקומיות (ואחרים) הכניסו היבטים אחדים של תר"מ לתוך מדיניותם.
למרות זאת, עדיין מדובר על תחום שנמצא בחיתוליו: חוקים אחדים (חוק התכנון והבנייה, חוק המים, חוק הניקוז ומניעת שיטפונות) אינם מתייחסים לפתרונות תר"מ ומקשים על מימושם.
ברמה התכנונית, אין שיקולי תר"מ בתוכניות בנייה בכל הרמות.
בנוסף, ישנם מעט אנשי מקצוע המתמחים בתחום.
תכנות הצהרתי (Declarative programming) הוא פרדיגמת תכנות במדעי המחשב המבטאת את הלוגיקה החישובית בלי להגדיר את בקרת הזרימה שלה.
שפות רבות משתמשות בצורה זו כך שהתוכנית תתאר מה היא צריכה לבצע, ולא איך היא צריכה לבצע זאת, בשונה מתכנות אימפרטיבי, הדורש הגדרה של אלגוריתם.
שפות תכנות הצהרתיות כוללות בין היתר ביטויים רגולריים, תכנות לוגי ותכנות פונקציונלי.
קיימות מספר פרדיגמות שונות המבוססות על תכנות הצהרתי.
תכנות פונקציונלי (Functional programming) – תכנות פונקציונלי מנסה למזער ולהימנע מתופעות לוואי (side effect) ולפיכך נחשבת פרדיגמה זו כתכנות הצהרתי.
אף על פי ששפות תכנות פונקציונליות מגדירות לרוב "איך" לבצע פעולה, המהדר של שפת התכנות רשאי לשנות את ההתנהגות של פונקציה, כל עוד אותה תוצאה נשמרת לאותו קלט.
כך ניתן להגדיר שפונקציה תבצע את פעולתה בצורה מקבילית, או לערוך אופטימזציות בפונקציה (כדוגמת ) שלא ניתן לבצע בצורה בטוחה בשפות המאפשרות תופעות לוואי.
תכנות אילוצים (Constraint programming) – בתכנות אילוצים מגדירים אילוצים בין המשתנים, והאילוצים נפתרים באמצעות מתן ערכים למשתנים באופן שבו הפתרון יתאים למספר המרבי של אילוצים.
שפות המיועדות לתחום ספציפי (Domain-specific languages) – דוגמאות לכך הם CSS, ביטויים רגולריים וחלק מ-SQL (שאילתות SELECT).
שפות תגיות רבות הן דקלרטיביות כדוגמת HTML, MXML, XAML, XSLT ו-SVG.
בדוגמה הבאה בשפת SQL מתבצעת שליפת כל הרשומות מתוך טבלה Book כאשר הן מסוננות לפי התנאי שדה price גדול מ-100, וממויינות לפי שדה title.
בתכנות אימפרטיבי היה צריך ליצור משתנה שקורא לתוכו כל הרשומות, לולאת For שסוקרת את כל הרשומות, מסננת אותן באמצעות תנאי If, ולאחר מכן ממיינת את כל התוצאות.
בדוגמה הבאה בשפת C# אפשר לראות מימוש לא שלם של התהליך וניתן לראות את הפשטות והקלות של תכנות הצהרתי לעומת המורכבות של תכנות אימפרטיבי אף בשפה מודרנית.
תכנות בזוגות היא טכניקה בפיתוח תוכנה זריז שבה זוג מתכנתים עובדים יחדיו מול תחנת עבודה אחת.
האחד מקליד את הקוד בזמן שהשני סוקר כל שורת קוד בזמן שהיא מוקלדת.
האדם שמקליד מכונה "הנהג", הוא מחזיק במקלדת ובעכבר ומבצע בפועל את עבודת התכנות.
האדם שסוקר את הקוד מכונה "הצופה" או "הנווט".
הוא אחראי על איתור תקלות (תחביריות, לוגיות וכו') בקוד, שקילת הכיוון האסטרטגי של העבודה, הוגה רעיונות לשיפור וצופה בעיות עתידיות שתדרושנה מענה.
הדבר מאפשר ל"נהג" לרכז את כל תשומת לבו בהיבט הטקטי של השלמת המשימה הנוכחית, תוך כדי שימוש ב"נווט" כרשת ביטחון וכמדריך.
שני המתכנתים מחליפים תפקידים ביניהם באופן תכוף.
את הזוגות מחליפים מדי פעם (תכנות מעורב – Promiscuous Pairing), כדי שכל המתכנתים יכירו כמה שיותר קוד, ואילו במבט על קוד חדש יהיה מי שיחנוך את התוכניתן שאינו מכיר את הקוד.
מחקרים מסוימים מצאו שמתכנתים העובדים בזוגות מייצרים תוכניות קצרות יותר, עם תכנון טוב יותר ופחות באגים מאשר מתכנתים שעובדים לבד.
ידע עובר בין זוג המתכנתים, ככל שהם עובדים יחדיו, הם חולקים ידע על מאפייני המערכת ולומדים טכניקות תכנות אחד מהשני.
עם תכנות מעורב שבו כל מתכנת עובר בין כל שאר המתכנתים בצוות, ידע על המערכת מתפשט בין כל חברי הצוות וכך מוקטן הסיכון הניהולי כאשר מתכנת עוזב את הצוות.
ציוות בדרך כלל גורר רמת משמעת גבוהה יותר וניהול זמן טוב יותר.
הסיכוי נמוך יותר לכך שהמתכנתים יוותרו על כתיבת בדיקות יחידה, יבזבזו זמן בגלישה באינטרנט, יבדקו דואר אלקטרוני או "יעגלו פינות" כאשר הם עובדים עם בן זוג.
בן הזוג שומר על השותף שלו "ישר".
אנשים מסתייגים יותר מלהפריע לזוג מאשר להפריע לאדם שעובד לבד.
יתרונות נוספים כוללים מורל גבוה יותר וביטחון גדול יותר בנכונות הקוד.
אף על פי שבתכנות בזוגות כתיבת הקוד מסתיימת מהר יותר מאשר אצל מתכנת העובד לבד, סך זמן המתכנת (מספר המתכנתים X זמן עבודה) עולה.
מנהל צריך לאזן בין השלמה מהירה יותר של העבודה וירידת זמן בדיקות וחיפוש באגים לעומת עלות גבוהה יותר של ייצור קוד.
המשקל היחסי של גורמים אלו יכול להשתנות מפרויקט לפרויקט וממשימה למשימה.
התועלת גדולה יותר במשימות שעדיין אינן מובנות למתכנתים, הדורשות יותר יצירתיות, אתגר ותחכום.
במשימות פשוטות, שבהן הזוג מבין לגמרי את המשימה, ציוות גורר ירידה בתפוקה.
בנוסף, תכנות שנעשה באמצעות שניים יכול לגרום להסבת תשומת לב בשל חוסר ריכוז, בעבור עובדים שמתקשים להתרכז כשהם מצויים עם אדם נוסף.
ידוע גם כתכנות בזוגות מדומה או תכנות בזוגות מחולק.
בתכנות בזוגות מרוחק שני המתכנתים נמצאים במיקומים שונים ועובדים באמצעות עורך זמן-אמת משותף, שולחן עבודה משותף או פלאג אין.
ציוות מרוחק מציג קשיים שאינם קיימים בציוות פנים אל פנים, כמו עיכובים נוספים בתיאום, תלות גדולה יותר בכלים "כבדי משקל" למעקב אחר משימות במקום כלים "קלי משקל" כמו כרטיסיות אינדקס, ואובדן תקשורת בלתי מילולית הגורם לבלבול ועימותים בשל דברים כמו "אצל מי המקלדת".
בתכנות בזוגות מסוג זה, ה"צופה" כותב בדיקת יחידה שנכשלת, ה"נהג" משנה את הקוד כך שיעבור את הבדיקה, ה"צופה" כותב בדיקת יחידה חדשה שנכשלת וכן הלאה.
המעגל נמשך כל עוד ה"צופה" מסוגל לכתוב בדיקות יחידה שנכשלות.
תכנות זה לוקח יותר זמן מאשר שהוערך בתוכנית
במדעי המחשב, תכנות אימפרטיבי (פקודתי) הוא פרדיגמת תכנות השמה דגש על רצפים של פקודות (Statements) המורות למחשב לשנות את תוכן סביבת העבודה.
פרדיגמה זו היא הפרדיגמה התכנותית הטבעית והנפוצה ביותר.
פרדיגמה זו הפוכה מתכנות הצהרתי שבו התוכנית מתמקדת ב"מה" ולא ב"איך".
לפרדיגמה של התכנות האימפרטיבי שייכות שפות תכנות פרוצדורליות ומונחות עצמים.
שפות התכנות הראשונות שהתפתחו משפת אסמבלי האימפרטיבית, באופן טבעי ירשו ממנה את התפיסה התכנותית.
על השפות האימפרטיביות נמנות שפות כגון פורטרן, קובול, אלגול, PL/I, בייסיק, פסקל, C, שפת C++, JavaScript ו-לואה.
את עידן שפות התכנות האימפרטיביות פתחה שפת פורטרן שפותחה על ידי ג'ון באקוס מ-IBM (1953–1957).
שפה זו הייתה שפת התכנות הגדולה הראשונה שהצליחה להתגבר על הבעיות שנבעו מקוד מכונה.
שפה זו היא שפה מהודרת שאפשרה להגדיר משתנים בשם, ביטויים מורכבים, תת-תוכניות, ותכונות רבות אחרות שכיום נפוצות בשפות האימפרטיביות.
בשנות ה-50 המאוחרות ובשנות ה-60 פותחה שפת אלגול במטרה לאפשר ביטוי קל של אלגוריתמים מתמטיים, וכללה בתוכה חידושים תכנותיים, כמו בלוקים של קוד, הגבלת תחום ההכרה של משתנים, שתי דרכים שונות להעברת פרמטרים לפרוצדורה, וקריאה רקורסיבית בשפה אימפרטיבית.
לאחריה פותחה שפת קובול (1959–1960) דמוית האנגלית שזכתה לפופולריות עצומה כשפה לפיתוח מערכות מידע בעולם העסקי.
בשנות ה-60 פותחה בייסיק (1964) כשפת תכנות ראשונה לצורכי לימוד, וזכתה לפופולריות במחשבים האישיים שנפוצו עשרים שנה אחר כך.
שפת PL/I פותחה באמצע שנות ה-60 על ידי חברת IBM.
השפה ניסתה לאחד את הטוב מפורטרן, קובול ואלגול 6 ונועדה להיות שפה למטרות כלליות ולשמש ליישומים מדעיים, הנדסיים ומסחריים ואף לתכנות מערכות והופיעו בה לראשונה בשפה אימפרטיבית מספר רב של טיפוסי נתונים פרימיטיביים, תכנות מקבילי, מצביע כטיפוס נתונים, יכולת לטפל בחריגות ובניפוי שגיאות.
בשנת 1970, פותחה שפת פסקל שהושפעה בעיקר מאלגול, על ידי ניקלאוס וירת אף היא כשפת לימוד.
לאחריה נוצרה שפת C שבה עיקרון היעילות הוא העיקרון המנחה, המאפשרת ניצול מרבי של יכולות המחשב בדומה לשפת סף, על ידי דניס ריצ'י בעת שעבד במעבדות בל.
שפת עדה, שתמכה בתחילה באופן חלקי בתכנות מונחה עצמים פותחה בשנת 1983.
שפה אימפרטיבית מאופיינת במשתנים, פקודות ומבני בקרה.
דוגמה לתכנות אימפרטיבי בשפת Java:
תכנות גנרי , הוא סגנון פיתוח תוכנה בו אלגוריתמים נכתבים במונחים של טיפוסים שיוגדרו בהמשך, וסוג הטיפוס יוגדר על פי הצורך ואז יתבצע שימוש באלגוריתם עבור הטיפוס המסוים שנקבע.
גישה זו, שהשפה שנקטה בה ראשונה הייתה ML בשנת 1973, הרשתה כתיבת פונקציות משותפות או טיפוסים השונים רק בקבוצת הטיפוסים עליהם הם משמשים, ועל ידי כך מופחתת כפילות בקוד.
ישויות תוכנה מסוג זה נקראות:
פולימורפיזם פרמטרי – ML, Scala, Haskell
כאשר יוצרים מחלקה בשפות תכנות בעלות טיפוסים סטטיים, לא נוח לכתוב מימוש עבור כל אחד מהטיפוסים המוכלים.
דוגמה ב-++C למחלקה הנמנעת מהכפילות הזו על ידי הגדרת template:
/* דוגמה ליצירת רשימה גנרית המקבלת אתחול של הטיפוס */
דוגמה למימוש מחסנית גנרית בשפת #C:
// שימוש פונקציונלי באותו משתנה גנרי שהתקבל בהגדרת המחלקה בזמן ריצה
// שימוש במחלקה הגנרית - הגדרת מחסנית ואתחול למשתנים מסוג מחרוזת
// שימוש בפונקציות הגנריות עם הסוג המתאים
במשפחת שפות ML, ישנו פולימורפיזם פרמטרי, ומודלים גנריים הנקראים "functors".
גם Standard ML וגם OCaml תומכים ב-functors, המתפקדים באופן דומה ל-"class templates" בחבילה הגנרית של Ada.
אבסטרקציה סינטקטית ב-Scheme בעלת קשר לגנריות, אלו הם למעשה קבוצה מכילה של templating המצויה ב-++C.
מודול של ורילוג יכול לקבל פרמטר אחד או יותר, אליהם ערך אחד או יותר משויך באתחול המודול.
דוגמה לכך היא מערך רגיסטר גנרי, כאשר גודל המערך ניתן כפרמטר.
VHDL הנגזרת מ-Ada מכילה אף היא יכולות גנריות.
תכנות מובנה הוא פרדיגמת תכנות המיועדת לשיפור הבהירות והאיכות של תוכנית מחשב, תוך קיצור משך הפיתוח, באמצעות שימוש נרחב בשגרות, בלוקים ומבני בקרת זרימה מסוג Do while.
התכנות המובנה בא לצמצם את השימוש בפקודת goto, היוצרת "קוד ספגטי" קשה להבנה והתמצאות.
המעבר מפקודת goto לתכנות המובנה
פקודת goto הייתה פקודת בקרת זרימה יסודית בשפות תכנות פופולריות של שנות ה-60 של המאה ה-20, כגון COBOL ו-BASIC, והייתה בשימוש נרחב גם בשפות תכנות שבהן הייתה פחות חיונית, כגון Fortran ו-PL/I.
הפקודה מאפשרת ביצוע קפיצה ברצף הביצוע של התוכנית, לפי שיקולי המתכנת.
בדרך זו ניתן לחסוך שכפול קוד, ולהגיע לביצועים אופטימליים.
עם זאת, שימוש מופרז בפקודה goto יוצר תוכנית חסרת מבנה ברור, המכונה "קוד ספגטי" (בשל הקושי לעקוב אחר מסלול הבקרה).
תוכנית כזו מקשה על כתיבת קוד נטול באגים, וקשה מאוד לתחזק או להרחיב אותה.
בנוסף, קוד אשר משתמש ב־goto עלול ליצור תופעות לוואי שקשה לעקוב אחריהן, ומקשה על הבנה של קוד ירושה.
משפט התכנות המובנה משנת 1966 ומאמרו הנודע משנת 1968 של אדסחר דייקסטרה, "Go To Statement Considered Harmful", הובילו לשלילת השימוש בפקודת goto.
גישתו של דייקסטרה הפכה למקובלת ביותר בעולם התכנות, אך אל מול שלילה מוחלטת של הפקודה הציב דונלד קנות' גישה המתירה שימוש בפקודה במקרים מסוימים, במאמרו "Structured Programming with go to Statements".
מאמרים נוספים, של דייקסטרה, רוברט פלויד, טוני הור, אולה יוהאן דאל ודייוויד גריס, תרמו לביסוסה של פרדיגמת התכנות המובנה, וזו נקלטה בתעשיית התוכנה, תוך פרסום מדריכים למימוש הפרדיגמה בשפות תכנות נפוצות.
מאז שנות ה-70 של המאה ה-20, כחלק ממוסכמות תכנות מקצועי, נחשבת פקודת goto מוקצה מחמת מיאוס, וזאת על מנת להקל על תחזוקה והרחבה של קוד קיים: מוסכמה זו נאכפת לרוב גם בשפות המאפשרות שימוש ב־goto.
עם זאת, במקרים מיוחדים כגון יציאה מקינון מרובה, שימוש ב־goto עשוי להיות הפתרון הנכון והנקי יותר.
בשפות תכנות חדשות מסוימות, כגון Java, לא ניתן להשתמש בפקודת goto.
משפט התכנות המובנה יצר את הבסיס התאורטי לתכנות המובנה, בכך שקבע שניתן לכתוב כל תוכנית תוך התבססות על שלושת מבני הבקרה הבאים בלבד:
רצף: הפקודות מבוצעות לפי סדר הופעתן בתוכנית.
בחירה: פקודה (או קבוצת פקודות) מבוצעת בהתאם לתנאי הנבדק בתוכנית באמצעות פקודת תנאי ( if, else ).
איטרציה (לולאה): פקודה (או קבוצת פקודות) מבוצעת שוב ושוב, כל עוד תנאי מסוים מתקיים.
נכתבת באמצעות פקודות כגון while, repeat, for או do..until.
לשם התאמה משופרת לתכנות מובנה, בשנות ה-70 נערכו בשפת PL/I שינויים אחדים לשיפור בקרת הזרימה: נוספה פקודת LEAVE ליציאה מתוך לולאה, לפקודת DO נוספו האופציות UNTIL ו-REPEAT, ונוספה פקודה לבחירה מרובה בצורה SELECT (expression) {WHEN (expression) group}...
גם בשפות תכנות ותיקות אחרות נוספה במשך השנים תמיכה בתכנות מובנה.
שפות תכנות מודרניות תוכננו מלכתחילה עם תמיכה בתכנות מובנה.
שגרה , פרוצדורה או שיטה (באנגלית Method) היא רצף של פקודות המאוגדות יחדיו, במטרה לבצע מטלה מוגדרת, מימוש של אלגוריתם.
שימוש מושכל בשגרות עשוי לשפר את מבנה התוכנית, את קריאות הקוד ואת מידת הגמישות של התוכנית לביצוע שינויים.
שימוש בשגרות מאפשר חלוקה של קוד לחלקים קצרים - שגרות - וכך מקל על וידוא נכונות של כל אחד מחלקי הקוד בנפרד.
בלוק הוא קבוצת פקודות שניתן להתייחס אליהן כאל פקודה אחת.
בשפות תכנות התומכות בבלוקים יש תחביר המאפשר לזהות את תחילתו וסופו של בלוק, למשל הצירוף BEGIN..END ב-PL/I, הזחה בפייתון וסוגריים מסולסלים {...} ב-C ובשפות נוספות.
יציאה מוקדמת משגרה או מלולאה
ריבוי נקודות יציאה עלול ליצור באגים, עקב הימנעות אפשרית מביצוע פעולות שחובה לבצען לפני היציאה.
יש התומכים בקיום פקודות אלה, המאפשרות קוד פשוט יותר.
לעומתם טען ברטראן מייר שפקודות אלה הן למעשה פקודת goto בשינוי אדרת, והמליץ בתוקף שלא להשתמש בהן.
תכנון שימושי קרקע הוא תהליך הסדרת שימוש בקרקע על מנת לקדם תוצאות חברתיות וסביבתיות מסוימות ושימוש יעיל יותר במשאבים.
לארגון של המרחב יש השלכות מיידיות ומשמעותיות על איכות החיים והרווחה.
תכנון שימושי הקרקע מכתיב אילו שטחים ייועדו לפיתוח ולבנייה ואילו יישמרו כשטחים פתוחים לסוגיהם, היכן ימוקמו וכיצד ייראו סביבות המגורים, התעסוקה ומוסדות הציבור, והיכן ייפרסו התשתיות לסוגיהן: תחבורה, מים, אנרגיה ועוד.
ניתן להגדיר תכנון בתור קישור בין ידע לפעולה.
תהליך התכנון הוא סיפוק צורכי החברה בעזרת ניצול יעיל של המרחב והתאמה שלו למגוון שימושים שמתקיימים בו, כמו מגורים, תעסוקה תשתיות תחבורה, מים, חשמל וכו'.
יעדים של תכנון שימושי קרקע עשויים לכלול: יצירת איכות חיים ראויה למגוון צורות יישוב, שימור סביבתי, ריסון של התפשטות עירונית, מניעה של סכסוכים על שימוש בקרקע, והפחתה בחשיפה למזהמים או גורמי הפרעה אחרים.
באופן כללי, תכנון השימושים בחלקות קרקע מתוכננות קובע את מגוון הפעילויות הסוציו-אקונומיות המתרחשות באזור מסוים ואת דפוסי ההתנהגות האנושית שהם מייצרות, יחד עם השפעתם על הסביבה.
תכנון השימוש בקרקע מבקש לסדר ולווסת את שימושי הקרקע בצורה יעילה ואתית ובכך למנוע סכסוכים על שימושי קרקע.
ממשלות משתמשות בתכנון שימוש בקרקע כדי לנהל את הפיתוח בתחומן.
בכך יכולה המדינה לתת מענה לצורכי האוכלוסייה תוך שמירה על משאבי הטבע והסביבה.
לשם כך נדרשת הערכה שיטתית של פוטנציאל קרקע ומים, הערכה של צרכים וביקושים, גיבוש חלופות לשימוש בקרקע ותנאים כלכליים וחברתיים על מנת לבחור ולאמץ את האפשרויות הטובות ביותר לשימוש בקרקע.
הליך התכנון לשימושי קרקע בישראל כולל מספר שלבים.
השלב הראשון הוא גיבוש החזון התכנוני, לדוגמה התחדשות עירונית או הקמת שכונה חדשה או פארק תעשייה.
לאחר מכן קובעים יעדים, כמו תוספת קומה בבניינים קיימים או העברת שביל גישה לאזור תעשייתי קיים.
עם גיבוש יעדים אלו ניתן לסקור את המצב הקיים ולהבין אילו שימושים קיימים, אילו צורכי ציבור מסופקים ואילו לא מסופקים.
השלבים האחרונים הם קביעת התוכנית התכנונית ובחינת חלופות למימוש התוכניות התכנוניות.
לבסוף המתכננים ממליצים למוסד התכנון על החלופה העדיפה.
התכנון בישראל נעשה מכוח חוק התכנון והבניה, התשכ"ה-1965, הקובע את מבנה מערכת התכנון, את הרכב ועדות התכנון השונות וסמכויותיהן, את סוגי התוכניות ואת הליכי האישור שלהן.
מערכת התכנון הישראלית היא היררכית בעיקרה, ובנויה מוועדות מקומיות, ועדות מחוזיות, וועדות ברמה הארצית, בהן המועצה הארצית לתכנון ולבנייה, הוועדה לתשתיות לאומיות (ות"ל), והוועדה הארצית למתחמים מועדפים לדיור (ותמ"ל).
השר הממונה על מערכת התכנון הוא שר הפנים.
ביקורת על תהליך תכנון שימושי קרקע בישראל והשינויים במערכת התכנון בישראל
מערכת התכנון היא כלי משמעותי על מנת להסדיר שימושי קרקע בישראל.
כנגד מערכת התכנון ישנם הטוענים כי היא לא יעילה ופגיעה ללחצים פוליטיים (מהשלטון המקומי והממשלתי).
הביקורת הציבורית על מערכת התכנון היא כי היא פוגעת באפשרות לתת מענה למחירי הדיור שעולים.
ביקורת זו הובילה בסופו של דבר לשינויים בחוק התכנון והבנייה.
לפי איריס האן ישראל צפויה להיות המדינה הצפופה ביותר מבין מדינות המערב.
בשל גידול האוכלוסייה הגבוה, הצפיפות בה תלך ותגבר, ועימה התחרות העזה על שימושי הקרקע והאתגרים התכנוניים הנובעים מכך.
מסיבה זו, השינויים המוצעים בחוק התכנון והבניה והרפורמות המוצעות במערכת התכנון, שעניינן קיצור הליכי התכנון, מעוררים התנגדות בקרב ארגוני חברה וסביבה.
זאת מתוך דאגה מפני הפרת האיזונים בין שימור ופיתוח ופגיעה ביכולת של הפרט והקהילה להשפיע על תכנון שימושי הקרקע ועיצוב סביבת המגורים בתחומה היא מתגוררת.
בתורת המשחקים, תכסיס (אסטרטגיה) היא תוכנית פעולה שמורה לשחקן איך לפעול בכל מצב אפשרי של המשחק.
לדוגמה: במשחק איקס עיגול (איקס מיקס דריקס), כל תכסיס של השחקן המתחיל אומר לו איפה לשים את האיקס הראשון, לאחר מכן איפה לשים את האיקס השני, זאת על פי המהלך שהשחקן השני ביצע, וכן הלאה.
דוגמה נוספת: בדילמת האסיר יש לכל שחקן שני תכסיסים – "בגוד" או "שתף פעולה".
חשוב לשים לב שהתכסיס מייצג את כל הבחירות שיכול שחקן לעשות בהתרחשות אחת של המשחק.
כלומר, אותו תכסיס לא יכול להגיד לשחקן לעשות שני דברים שונים באותו מצב.
כאשר אין מעורב מזל במשחק, תוצאת המשחק נקבעת בצורה בלעדית על פי בחירת התכסיסים על ידי השחקנים.
כאשר מעורב מזל במשחק, ונותנים ערך מספרי לכל אחת מתוצאותיו עבור כל שחקן, ניתן לדבר על התוחלת של הרווח שמביאה בחירת התכסיסים המסוימת הזו.
תכסיס אופטימלי של שחקן הוא תכסיס שמבטיח לו את הרווח הגדול ביותר במשחק סכום אפס, בלי תלות במעשי השחקנים האחרים.
כאשר לא מתעניינים בפרטיו של משחק, אלא רק בתוצאותיו, נהוג להשתמש במודל של משחק בצורה תכסיסית, שבו לכל בחירה אפשרית של תכסיסים במשחק מותאם הרווח המושג מהם לכל שחקן.
תכסילא (באורדו: ٹیکسلا בפאלי בראהמי: 𑀢𑀔𑁆𑀔𑀲𑀺𑀮𑀸, בסנסקריט: तक्षशिला, מילולית מסנסקריט "אבן חצובה") היא אתר ארכאולוגי ב במחוז פנג'אב בפקיסטן.
האתר שוכן כ-25 קילומטרים צפונית-מערבית לאסלאמאבאד ורוואלפינדי, ו-25 קילומטרים דרומית-מערבית ל, במחוז ח'ייבר פח'טונח'ווה, ממש ליד הדרך הראשית הגדולה המפורסמת.
תכסילא הייתה עיר חשובה בהודו העתיקה משום ששכנה בצומת המרכזי של תת-היבשת ההודית ומרכז אסיה, על הגדה המזרחית של נהר האינדוס.
היא הוקמה בשנת 600 לפנה"ס בערך.
כמה חורבות בתכסילא מתוארכות לתקופת האימפריה האחמנית במאה ה-6 לפנה"ס, ואחריהן התקופות של האימפריה המאורית, , ה ואימפריית קושאן.
בשל מיקומה האסטרטגי, החליפה תכסילא ידיים פעמים רבות במהלך מאות השנים, כאשר אימפריות רבות התחרו על השליטה בה.
כאשר נתיבי הסחר העתיקים הגדולים המחברים את האזורים הללו חדלו להיות חשובים, העיר שקעה בחוסר חשיבות ולבסוף נהרסה על ידי שבטי ההונה הנוודים במאה ה-5. הארכאולוג סר גילה מחדש את הריסות תכסילא באמצע המאה ה-19. בשנת 1980 הוכרזה תכסילא כאתר מורשת עולמית של אונסק"ו.
בשנת 2006 דרג העיתון הגרדיאן את תכסילא כאחד מחמשת יעד התיירות החשובים ביותר בפקיסטן.
לפי כמה דיווחים, נחשבת לאחת האוניברסיטאות המוקדמות בעולם.
אחרים אינם רואים בה אוניברסיטה במובן המודרני, בכך שלמורים שהתגוררו בה אולי לא הייתה חברות רשמית במכללות מסוימות, ונראה שלא היו קיימים אולמות הרצאות ורובעי מגורים ייעודיים בתכסילא, בניגוד לאוניברסיטת נלנדה המאוחרת יותר במזרח הודו.
עם זאת, מאז בוצעו מאמצי שימור משמעותיים על ידי הממשלה אשר הביאו לכך שהאתר הוכרז כ"שמור היטב" בפרסומים בינלאומיים שונים.
בגלל מאמצי השימור והתחזוקה הנרחבים, האתר מהווה מוקד תיירות פופולרי, המושך אליו עד מיליון תיירים מדי שנה.
תכסילא הייתה ידועה בסנסקריט כ-तक्षशिला (טקשאשילה, (עיר של) "אבן חצובה").
היוונים צמצמו את שמה של העיר לטקסילה (Τάξιλα), שהפך לשם שהאירופאים הכירו עוד מתקופת אלכסנדר הגדול.
לחלופין ניתן לתרגם את טקשאשילה גם ל'סלע של טקשה" בהתייחס לראמאיאנה שקבעה שהעיר נקראה לכבוד טקשה, בנו של והשליט הראשון.
לפי דעה אחרת, טקשאשילה קשורה ל"" (סנסקריט עבור "נגר") והוא שם חלופי לנאגה (Nāga), עם לא הודו-איראני של הודו העתיקה.
הצליין הסיני פאשיין, שביקר בעיר, כתב שמשמעות שמה הוא "ראש חתוך".
בעזרתם של סיפורי הג'טאקה, הוא פירש שזה המקום שבו הבודהה בלידתו הקודמת כפוסה או צ'אנדפראבה כרתו את ראשו כדי להאכיל אריה רעב.
מסורת שם זה עדיין קיימת: האזור שלפני האתר הארכאולוגי הסמוך (שגם פירושו "ראש חתוך") היה ידוע במאה ה-19 כ"באבור חאנה" ("בית הטיגריס"), מה שמרמז למקום שבו הציע בודהה את ראשו.
בנוסף, רכס גבעות מדרום לעמק תכסילא נקרא מרגלה ("גרון חתוך").
בטקסטים ודיים, כמו ה, מוזכר שהפילוסוף הוודי (חי במאה ה-7 לפנה"ס לערך) נסע לאזור גנדהארה.
בטקסטים בודהיסטיים מאוחרים יותר, סיפורי הג'טאקה, מסופר שתכסילא הייתה העיר שבה התחנכו ארוני ובנו שווטאקטו.
אחד האזכורים המוקדמים ביותר של תכסילא הוא בספר של הבלשן , חיבור דקדוק בסנסקריט המתוארך למאה ה-5 לפני הספירה.
חלק גדול מהאפוס ההינדי, המהאבהארטה, הוא שיחה בין (תלמידו של החכם המיתי, ויאסה) והמלך .
באופן מסורתי מאמינים שהסיפור סופר לראשונה על ידי וָאִישַמְפָּאִיַנַה בהוראת ויאסה במהלך הקרבת הנחשים שערך גַ'נַמֶגַ'יַה בטקשאשילה.
הקהל כלל גם את , פייטן נודד, שלימים ידקלם את הסיפור בפני קבוצת כוהנים באשראם ב הקדוש שממנו הופץ הסיפור עוד יותר.
יורש העצר של , (נכדו של אַרְג'וּנַה) הוכתר בטקשאשילה.
הראמאיאנה מתארת את טקשאשילה כעיר מפוארת המפורסמת בעושרה אשר נוסדה על ידי , אחיו הצעיר של ראמה.
בהאראטה, שייסד גם את העיר הסמוכה, הציב את שני בניו, טקשה ופושקלה, כשליטים של שתי הערים.
בסיפורי הג'טאקה הבודהיסטיים, מתוארת תכסילא כבירת ממלכת גנדהארה ומרכז נהדר של למידה עם מורים מפורסמים בעולם.
הטקאסילה ג'טאקה, הידועה יותר בשם הטלאפתה ג'טאקה, מספרת את סיפורו של נסיך מבנארס שאומרים לו שהוא יהפוך למלך תכסילא אם יוכל להגיע לעיר תוך שבעה ימים מבלי ליפול טרף ל שארבו למטיילים ביער.
לפי ה (כרוניקה עתיקה של סרי לנקה), אחד המלכים המוקדמים של תכסילא היה קשטרייה בשם דיפנקרה שאותו ירשו שנים עשר בנים ונכדים.
קוניג'אקרנה, המוזכר באוודנאקלפאלטה (ספר שכתב ההיסטוריון ), הוא מלך נוסף הקשור לעיר.
במסורת הג'ייניזם, מסופר כי , ה הראשון, ביקר בתכסילא לפני מיליוני שנים.
עקבות כפות רגליו קודשו לאחר מכן על ידי שהקים כס מלכות ודהרמהצ'אקרה ('גלגל החוק') מעליהם בגובה ובהיקף של מספר קילומטרים.
האזור סביב תכסילא היה מיושב בתקופה הנאוליתית כאשר כמה חורבות בתכסילא מתוארכים לשנת 3360 לפנה"ס.
גם חורבות מתקופת תרבות עמק האינדוס הקדומה בסביבות שנת 2900 לפני הספירה התגלו באזור תכסילא, אם כי האזור ננטש בסופו של דבר לאחר קריסת תרבות עמק האינדוס.
היישוב המוקדם ביותר בעמק תכסילא נמצא בסראי חולה (Sarai Khola), הממוקמת 2 קילומטרים דרומית-מערבית למוזיאון תכסילא, שם שלושה תיארוכים באמצעות פחמן-14 מתקופת היישוב המסומנת כ-I הראו שהאתר יושב לראשונה בין סוף האלף הרביעי לתחילת האלף ה-3 לפני הספירה.
התגלו מרבצים של ראשי חניתות מאבן מלוטשת, להבי צור וסוג ייחודי של כלי חרס מלוטשים מאוד, המראה סימנים ברורים לשימוש בסלים ארוגים בתהליך הייצור ויישום של ציפוי על פני השטח החיצוניים.
נראה שהתקופות IA ו-II בסראי חולה מראות המשכיות מתקופה I, עם הופעת כלים מלוטשים באדום.
עם זאת, כלים בסגנון נמצאו במספר רב יותר, והצורות בסגנון קוט דיג'י מראים סימנים של עיצוב בעזרת גלגל, מה שמסמן שינוי טכנולוגי ברור מהכלים של תקופה I.
מתקופה II/קוט דיג'י התבצעו שבעה תיארוכים באמצעות פחמן-14 נלקחו גם מהתקופה המוקדמת והמאוחרת יותר, ונראה כי שלב זה מתוארך לאמצע סוף האלף ה-3 עד תחילת האלף השני לפני הספירה.
מאוחר יותר, הוקם היישוב הגדול הראשון בתכסילא, בתל האתיאל, בסביבות שנת 1000 לפנה"ס.
בשנת 900 לפני הספירה, העיר כבר הייתה מעורבת במסחר אזורי, שכן שברי חרס שהתגלו חושפים את קשרי המסחר בין העיר ל.
מאוחר יותר הייתה תכסילא מיושבת בתל בהיר (بھڑ ماونڈ), שתוארך לתקופה מסוימת סביב 800–525 לפני הספירה, כאשר השכבות המוקדמות הללו כוללות כלים מחורצים בצבע אדום.
חפירות ארכאולוגיות הראו שייתכן שהעיר גדלה באופן משמעותי בתקופת שלטונה של האימפריה האחמנית הפרסית במאה ה-6 לפני הספירה.
בשנת 516 לפנה"ס יצא דריווש הראשון למסע לכיבוש מרכז אסיה, ובאקטריה, לפני שצעד אל מה שהם כיום אפגניסטן וצפון פקיסטן.
הקיסר דריווש בילה את החורף של 516–515 לפנה"ס באזור גנדהארה המקיף את תכסילא, והתכונן לכבוש את עמק האינדוס, מה שעשה בשנת 515 לפנה"ס, ולאחר מכן מינה את סקילקס איש קריאנדה לחקור את האוקיינוס ההודי מהשפך של האינדוס לסואץ.
לאחר מכן חזר דריווש לפרס דרך .
האזור המשיך תחת שלטונה של האימפריה האחמנית תחת שלטונו של חשיארש הראשון, ונמשך תחת השלטון האחמני במשך למעלה ממאה שנה.
תכסילא נשלטה לפעמים כחלק מממלכת גנדהארה (שבירתה הייתה פושקלאווטי), במיוחד לאחר התקופה האחמנית, אך תכסילא יצרה לפעמים מחוז עצמאי או עיר-מדינה משלה.
במהלך פלישתו לעמק האינדוס, הצליח אלכסנדר הגדול להשתלט על תכסילא (ביוונית עתיקה: Τάξιλα) בשנת 326 לפנה"ס ללא קרב, שכן שליט העיר, המלך אומפיס (אמבהי), נכנע ללא קרב.
היסטוריונים יווניים שליוו את אלכסנדר תיארו את תכסילא כ"עשירה, משגשגת ונשלטת היטב".
אריאנוס כתב שאלכסנדר התקבל בברכה על ידי אזרחי העיר, והוא הקריב קורבנות וחגג שם תחרות התעמלות ורכיבה על סוסים.
בשנת 317 לפנה"ס, גורשו האחשדרפנים היוונים שהציב אלכסנדר בעיר, ותכסילא עברה לשליטתו של צ'נדרגופטה מאוריה, מייסד האימפריה המאורית, שהפך את תכסילא לבירה אזורית.
על יועצו, צ'אנקיה, נאמר כי לימד באוניברסיטה של תכסילא.
תחת שלטונו של אשוקה, נכדו של צ'נדרגופטה, הפכה העיר למושב גדול של למידה בודהיסטית, אם כי העיר הייתה משכן למרד קטן בתקופה זו.
תכסילא נוסדה במיקום אסטרטגי לאורך "הדרך המלכותית" הקדומה שחיברה את בירת האימפריה המאורית ב בביהר, עם פשאוור העתיקה, פושקלאווטי, והלאה לכיוון מרכז אסיה דרך קשמיר, באקטריה ו.
תכסילא החליפה ידיים פעמים רבות במהלך מאות השנים, כשאימפריות רבות מתחרות על שליטתה.
במאה ה-2 לפני הספירה סופחה תכסילא על ידי של בקטריה.
הודו-יוונים בנו בירה חדשה, סירקאפ, על הגדה הנגדית של הנהר אינדוס מתכסילא.
במהלך תקופה חדשה זו של שלטון יווני בקטרי, כמה שושלות (כמו ) שלטו כנראה מהעיר כבירתם.
במהלך הפוגות מהשלטון היווני, הצליחה העיר לנהל את עצמה, לשלוט באופן עצמאי בכמה גילדות סחר מקומיות, שגם טבעו את רוב המטבעות האוטונומיים של העיר.
בערך במאה ה-1 לפנה"ס או המאה הראשונה לספירה, היו למלך שלוש מטבעות, אחת מהן הייתה בתכסילא.
המלך היווני האחרון של תכסילא הודח על ידי השליט ההודו-סקיתי בסביבות שנת 90 לפני הספירה.
, מייסד , כבש את תכסילא בסביבות שנת 20 לפנה"ס, והפך אותה לבירתו.
על פי האגדה הנוצרית הקדומה, תומאס הקדוש השליח ביקר את גונדופרס בסביבות שנת 46 לספירה, אולי בתכסילא, בהתחשב בכך שהעיר הייתה עיר הבירה של גונדופרס.
בסביבות שנת 50 לספירה, ביקר הפילוסוף היווני הנאו-פיתגורי אפולוניוס איש טיאנה לכאורה בתכסילא, ביקור שתואר על ידי הביוגרף שלו, פילוסטרטוס, שכתב כ-200 שנה מאוחר יותר.
פילוסטרטוס תיאר את תכסילא כעיר מבוצרת שנקבעה על פי תוכנית סימטרית, בגודלה דומה לנינוה.
הארכאולוגיה המודרנית מאשרת תיאור זה.
כתובות המתוארכות לשנת 76 לספירה מדגימות שהעיר הייתה אז כבר תחת שלטון אימפריית קושאן, לאחר שהעיר נכבשה מידי הפרתים על ידי , מייסד אימפריית קושאן.
שליט קושאן הגדול קנישקה הראשון הקים מאוחר יותר את , האחרון מבין היישובים העתיקים בתכסילא.
באמצע המאה הרביעית לספירה, כבשה אימפריית גופטה את השטחים במזרח גנדהארה.
העיר תכסילא נודעה בזכות קשרי הסחר שלה, כולל משי, אלגום, סוסים, כותנה, כלי כסף, פנינים ותבלינים.
בתקופה זו העיר מופיעה פעמים רבות בספרות ההודית הקלאסית - הן כמרכז תרבות והן כעיר גבול צבאית.
האוניברסיטה של תכסילא הייתה קיימת במהלך מסעותיו של הצליין הסיני פאשיין, שביקר בתכסילא בסביבות שנת 400 לספירה.
הוא כתב ששמה של תכסילא מתורגם כ"הראש הכרות", והיה האתר של סיפור בחייו של הבודהה "שם הוא נתן את ראשו לאדם".
ידוע שה, הווסאלים של האימפריה ההפתליטית פלשו לתכסילא בערך בשנת 450 לספירה.
אף על פי שגורשו משם על ידי קיסר מאימפריית גופטה, העיר לא התאוששה - כנראה בגלל הנוכחות ההונית החזקה באזור, התמוטטות הסחר וכן המלחמה המשולשת בין פרס, המדינה הקידרית וההונים במערב גנדהארה.
ההונים הלבנים והונים של אלכון שטפו את גנדהארה ופנג'אב בסביבות שנת 470 לספירה, וגרמו להרס נרחב ולהרס של המנזרים והסטופות הבודהיסטיות המפורסמות של תכסילא, מכה שממנה העיר לעולם לא התאוששה.
משנת 500 לספירה עד 540 לספירה, העיר דעכה לאחר שעברה לשליטת האימפריה ההונית בראשות הקיסר , פטרון של השיוויזם ההינדי, מיהירקולה היא אחראי להרס מסוים של אתרים ומנזרים בודהיסטים ברחבי האזורים הצפון-מערביים של תת-היבשת ההודית.
הצליין הבודהיסטי הסיני והנוסע שׂוֵאנְדְזָאנְג ביקר בהודו בין 629 ל-645 לספירה.
הוא ביקר בתכסילא שהייתה שוממה וחצי הרוסה בשנת 630 לספירה, ומצא שרוב המנזרים שלה עדיין הרוסים ושוממים.
רק כמה נזירים נשארו שם.
הוא הוסיף כי הממלכה הפכה מדינת חסות של קשמיר עם המנהיגים המקומיים שנלחמים ביניהם על השלטון.
הוא ציין שבעבר היא הייתה בשליטת .