Тілдік қабаттар

Эй Хабр!

Назарларыңызға мақаланың аудармасын ұсынамын»Тілдік қабаттар» Роберт К. Мартин (Боб ағай).

Тілдік қабаттар
Мен уақытымды 1969 жылғы Lunar Lander деп аталатын ескі ойынды ойнаумен өткіземін. Оны орта мектеп оқушысы Джим Стерер жазған. Ол оны FOCAL жүйесінде PDP-8-де жазды. Бағдарлама осылай көрінеді:

Тілдік қабаттар

Міне, FOCAL үшін бастапқы код:

Тілдік қабаттар

Джим Сторер өте дарынды орта мектеп оқушысы болды. Осы кодты қараңыз. Оның өте қызықты Тейлор өрнектері бар.

Негізінде, мен K мәнін анықтау үшін екілік іздеуді жасаймын, ол дәйекті түрде пайдаланылған кезде кемені тамаша жерге түсіреді. Сондықтан мен бағдарламаны тек бір мәнді қабылдайтындай етіп өзгерттім, содан кейін оны кеме қонғанша немесе апатқа ұшырағанша бірнеше рет қолданамын. Мен мұны жазған кезде жауаптың 76.40625 және 76.4453125 арасында екенін білемін және 76.4257813 нөмірін қолданып көремін. Жауабын тапқанша уақыт таусылады деп ойлай бастадым.

Осы уақытта мен бұл бағдарламаны эмуляторда іске қостым деген ой келді PDP-8, iPad үшін Луа тілінде жазған.

Олай болса, бұл туралы ойланайық.

  • iPad-та чип бар A8X, үш ядросы гигагерцте жұмыс істейді.
  • Луа C тілінде жазылған және A8X форматында құрастырылған.
  • Менің PDP8 эмуляторым пакетті пайдаланып Lua тілінде жазылған КОДЕА «Екі өмір қалды» бөлімінен.
  • FOCAL 1960 жылдардың соңында PDP8-де жазылған.
  • Lunar Lander FOCAL тілінде жазылған.

Сонымен, бұл A8X, C, Lua, PDP8 және FOCAL. Бұл бес түрлі тіл. Машинаға не істеу керектігін айтатын бес түрлі механизм; олардың бәрі бір-бірінің үстіне жиналды!

Бұл не? Неліктен тілдер көп? Шын мәнінде, iPad, PDP-8, C, Lua және басқа нәрселерді ұмытыңыз. Неліктен тілдер көп?

##Тілдер неге көп?

Ойлан! Сіз қанша программалау тілін атай аласыз? Міне, мен сізге шағын тізім беремін:

  • ФОРТРАН
  • АЛГОЛ
  • КОБОЛ
  • SNOBOL
  • LISP
  • BCPL
  • B
  • C
  • СИМУЛА
  • SMALLTALK
  • АЙФЕЛ
  • C ++
  • JAVA
  • C#
  • ПИТОН
  • Руби
  • LOGO
  • LUA
  • НЕГІЗГІ
  • PL/1
  • JAVASCRIPT
  • GO
  • DART
  • ПРОЛОГ
  • ТӨРТІНШІ
  • SWIFT
  • ML
  • OCCAM
  • OCAML
  • ADA
  • ЕРЛАНГ
  • ЭЛИКСИР
  • ОТБАСЫ

Сіз, әрине, мен айтпаған басқалар туралы ойлай аласыз. Мәселе мынада, олардың саны неге көп? Бұл сұраққа шын мәнінде бір ғана жауап болуы мүмкін. Компьютерлік тілдердің көп болуының себебі:

Біз оларды ұнатпаймыз.

Мүмкін бұл тым күшті мәлімдеме шығар. Мүмкін мен айтуым керек:

Біз Голливудта болдық.
Біз Редвудта болдық.
Біз алтын код үшін мұхитты кесіп өттік.
Біз есімізден шықтық
Бұл өте нәзік сызық.
Бұл бізді алтын кодты іздеуге мәжбүр етеді.

Ал біз қартайып барамыз.

Жарайды, мүмкін мен өз атымнан сөйлегенім жөн болар... Нейл Янгқа шағымдануды доғар, жақсы қыз тауып, онымен бірге тұр деп айқайлағың келмей ме? Оған алтын жүрек іздеудің бекер екенін айтқың келмеді ме? Айтыңызшы, егер ол оны тауып алса, не істер еді?

Егер біз оны тапсақ, идеалды тілмен не істер едік?

Біз 8 жылы орта мектеп оқушысы жазған «Lunar Lander» ойынын ойнау үшін PDP-1969 және FOCAL эмуляторларын жасадық!

Мен солай ойлаймын.

Онымен айналыс. Іздеуді тоқтатыңыз. Мінсіз тіл жоқ. Біз барлық жерге қарадық. Жоғарыдан да, төменнен де қарадық. Біз ішке де, сыртқа да қарадық.

Біз тілдерді екі жақтан да қарастырдық.
Ішінде және сыртында
және әлі де солай немесе басқаша.
Бұл лингвистикалық иллюзиялар екенін есте ұстайық.

Біз тілдер туралы ештеңе түсінбейміз...
… мүлде.

Иә, бүгін ерекше күн.

Бірақ соған қарамастан, мәселе мынада:

Бізге басқа тіл керек емес.
Бізге үйге баратын жолды білудің қажеті жоқ.
Біз тек өмірден асып кетуді қалаймыз.
SQL

Иә, біртүрлі күн.

Ендеше мына бір ой. Мүмкін бізге жаңа тілдер жасауды тоқтатып, жай ғана тынышталып, шынымен жақсы бір немесе екі таңдау керек. Бұл өмірді әлдеқайда жеңілдетеді, солай емес пе?

Егер сізді қызықтыратын болса, 76.43844461 сізге 2.23 миль/сағ қону мүмкіндігін береді.

Ақпарат көзі: www.habr.com

пікір қалдыру