Хэлний давхаргууд

Хөөе Хабр!

Би та бүхэнд нийтлэлийн орчуулгыг хүргэж байна.Хэлний давхарга» Роберт С Мартин (Авга ах Боб).

Хэлний давхаргууд
Би 1969 оны "Lunar Lander" нэртэй хуучин тоглоом тоглож цагийг өнгөрөөдөг. Үүнийг ахлах сургуулийн сурагч Жим Сторер бичсэн. Тэр үүнийг FOCAL дахь PDP-8 дээр бичсэн. Хөтөлбөр нь иймэрхүү харагдаж байна:

Хэлний давхаргууд

FOCAL-ийн эх код энд байна:

Хэлний давхаргууд

Жим Сторер ахлах сургуулийн нэлээд авъяаслаг сурагч байсан. Энэ кодыг харна уу. Түүнд Тэйлорын нэлээд сонирхолтой илэрхийлэл бий.

Үндсэндээ би K-ийн утгыг тодорхойлохын тулд хоёртын хайлт хийдэг бөгөөд үүнийг тогтмол ашиглавал хөлөг онгоц төгс газардах болно. Тиймээс би уг программыг өөрчилсөн бөгөөд энэ нь зөвхөн нэг утгыг хүлээж аваад дараа нь хөлөг онгоц газардах эсвэл осолдох хүртэл хэд хэдэн удаа хэрэгжүүлнэ. Би үүнийг бичиж байхдаа хариулт нь 76.40625 болон 76.4453125 хооронд байгааг мэдэж байгаа бөгөөд би 76.4257813-ыг оролдох болно. Би хариултаа олохоосоо өмнө цаг хугацаа дуусна гэж бодож эхэлж байна.

Энэ хооронд би энэ програмыг эмулятор дээр ажиллуулсан гэж бодсон PDP-8, хэн iPad-д зориулж Луа хэлээр бичсэн.

За, энэ талаар бодож үзье.

  • iPad чиптэй A8X, гурван цөм нь гигагерц дээр ажилладаг.
  • Луа нь C хэл дээр бичигдсэн бөгөөд A8X дээр хөрвүүлдэг.
  • Миний PDP8 эмулятор багцыг ашиглан Луа хэл дээр бичигдсэн CODEA Хоёр амь үлдсэн хэсгээс.
  • FOCAL нь 1960-аад оны сүүлээр PDP8 дээр бичигдсэн.
  • Lunar Lander FOCAL дээр бичигдсэн.

Эдгээр нь A8X, C, Lua, PDP8 болон FOCAL юм. Эдгээр нь таван өөр хэл юм. Машинд юу хийхийг зааж өгдөг таван өөр механизм; Тэд бүгд бие биенийхээ дээр овоолсон байна!

Энэ юу вэ? Яагаад ийм олон хэл байдаг вэ? Үнэн хэрэгтээ iPad, PDP-8, C, Lua болон бусад бүх зүйлийг март. Яагаад ийм олон хэл байдаг вэ?

##Яагаад ийм олон хэл байдаг вэ?

Үүний тухай бодож үз! Та хэдэн програмчлалын хэлийг нэрлэж чадах вэ? Энд би танд бяцхан жагсаалтыг өгье:

  • ФОРТРАН
  • АЛГОЛ
  • COBOL
  • СНОБОЛ
  • LISP
  • BCPL
  • B
  • C
  • СИМУЛА
  • ЖИЖИГ ЯРИА
  • EIFFEL
  • C ++
  • ЖАВА
  • C#
  • ПИТОН
  • Рубль
  • Лого
  • LUA
  • BASIC
  • PL/1
  • JAVASCRIPT
  • GO
  • DART
  • ПРОЛОГ
  • ДӨРӨВДҮГЭЭР
  • SWIFT
  • ML
  • OCCAM
  • OCAML
  • АДА
  • ЭРЛАНГ
  • ЭЛЕКСИР
  • ОРОН НУТГИЙН

Мэдээжийн хэрэг та миний дурдаагүй бусад хүмүүсийн талаар бодож болно. Асуулт нь яагаад ийм олон байдаг вэ? Энэ асуултад үнэхээр ганцхан хариулт байж болно. Яагаад ийм олон компьютер хэл байдаг вэ гэвэл:

Бид тэдэнд дургүй.

Магадгүй энэ нь хэтэрхий хүчтэй мэдэгдэл байж магадгүй юм. Магадгүй би хэлэх ёстой:

Бид Холливудад байсан.
Бид Улаан модонд байсан.
Бид алтан кодын төлөө далайг гатлав.
Бид ухаангүй байсан
Энэ бол маш нарийн шугам юм.
Энэ нь биднийг алтан кодыг хайж олоход хүргэдэг.

Тэгээд бид хөгширч байна.

За яахав, би өөрийнхөө өмнөөс ярих ёстой байх... Чи зүгээр л Нейл Янг руу гомдоллохоо болиод сайхан охин олоод хамт амьдар гэж хашгирмааргүй байна уу? Та түүнд алтан зүрх хайх нь дэмий гэдгийг хэлэхийг хүсээгүй гэж үү? Надад хэлээч, хэрэв тэр олсон бол тэр үүнийг яах байсан бэ?

Хэрэв бид үүнийг олсон бол хамгийн тохиромжтой хэлээр юу хийх вэ?

Бид 8 онд ахлах сургуулийн сурагчийн бичсэн "Lunar Lander" тоглоомыг тоглохын тулд PDP-1969 болон FOCAL эмуляторуудыг бүтээсэн!

Би тэгж бодож байна.

Үүнийг зохицуул. Хайлтаа зогсоо. Төгс хэл гэж байдаггүй. Бид хаа сайгүй харлаа. Бид дээрээс доошоо харсан. Бид дотогшоо, гадагшаа харлаа.

Бид хэлийг хоёр талаас нь харлаа.
Дотор болон гадна
одоо ч гэсэн ямар нэг байдлаар хийдэг.
Эдгээр нь хэл шинжлэлийн хуурмаг зүйл гэдгийг санацгаая.

Бид үнэхээр хэлний талаар юу ч ойлгодоггүй...
… бүх.

Тийм ээ, өнөөдөр ер бусын өдөр байна.

Гэсэн хэдий ч гол нь:

Бидэнд өөр хэл хэрэггүй.
Бид гэртээ харих замыг мэдэх шаардлагагүй.
Бидний хүсч буй зүйл бол амьдралаас цааш явах явдал юм.
SQL

Тийм ээ, хачирхалтай өдөр.

Тэгэхээр энд нэг бодол байна. Магадгүй бид шинэ хэл үүсгэхээ больж, зүгээр л тайвширч, үнэхээр сайн нэг юмуу хоёрыг сонгох хэрэгтэй. Энэ нь амьдралыг ихээхэн хөнгөвчлөх болно, тийм үү?

Хэрэв та гайхаж байсан бол 76.43844461 танд 2.23 миль/цаг хурдтай нэлээн сайн буух боломжийг олгоно.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх