Mga layer ng wika

Hoy Habr!

Dinadala ko sa iyong pansin ang isang pagsasalin ng artikulo "Mga Layer ng WikaΒ» ni Robert C. Martin (Uncle Bob).

Mga layer ng wika
Ginugugol ko ang aking oras sa paglalaro ng lumang laro na tinatawag na Lunar Lander mula 1969. Ito ay isinulat ni Jim Storer, isang high school student. Isinulat niya ito sa isang PDP-8 sa FOCAL. Ito ang hitsura ng programa:

Mga layer ng wika

At narito ang source code para sa FOCAL:

Mga layer ng wika

Si Jim Storer ay isang medyo mahuhusay na estudyante sa high school. Tingnan ang code na ito. Mayroon siyang ilang medyo kawili-wiling mga ekspresyon ng Taylor doon.

Karaniwan, gumagawa ako ng binary na paghahanap upang matukoy ang halaga ng K na, kapag ginamit nang tuluy-tuloy, ay ganap na makakarating sa barko. Kaya binago ko ang programa upang tumanggap lamang ito ng isang halaga at pagkatapos ay ilapat ito ng maraming beses hanggang sa lumapag o bumagsak ang barko. Habang isinusulat ko ito alam kong nasa pagitan ng 76.40625 at 76.4453125 ang sagot at susubukan ko ang 76.4257813. Nagsisimula na akong mag-isip na mauubusan ako ng oras bago ko mahanap ang sagot.

Samantala, naisip ko na pinatakbo ko ang program na ito sa isang emulator PDP-8, na nagsulat sa Lua para sa iPad.

Kaya, okay, pag-isipan natin ito.

  • May chip ang iPad A8X, na may tatlong core na tumatakbo sa gigahertz o higit pa.
  • Ang Lua ay nakasulat sa C at nag-compile sa A8X.
  • Ang aking PDP8 emulator ay nakasulat sa Lua gamit ang package CODEA mula sa seksyong Two Lives Left.
  • Ang FOCAL ay isinulat noong huling bahagi ng 1960s sa isang PDP8.
  • Ang Lunar Lander ay isinulat sa FOCAL.

Kaya ito ay A8X, C, Lua, PDP8 at FOCAL. Ito ay limang magkakaibang wika. Limang magkakaibang mekanismo na nagsasabi sa makina kung ano ang gagawin; lahat sila ay nakasalansan sa ibabaw ng bawat isa!

Ano ito? Bakit napakaraming wika? Sa katunayan, kalimutan ang tungkol sa iPad, PDP-8, C, Lua at lahat ng iba pa. Bakit napakaraming wika?

##Bakit napakaraming wika?

Pag-isipan mo! Ilang programming language ang maaari mong pangalanan? Narito, hayaan mo akong bigyan ka ng isang maliit na listahan:

  • FORTRAN
  • MAY BAGAY
  • COBOL
  • SNOBOL
  • LISP
  • BCPL
  • B
  • C
  • SIMULA
  • MAIKLING PAG-UUSAP
  • EIFFEL
  • C + +
  • Dyaba
  • C#
  • PYTHON
  • RUBY
  • Logo
  • LUA
  • BATAYANG
  • PL/1
  • JAVASCRIPT
  • GO
  • DART
  • PROLOG
  • FORTH
  • SWIFT
  • ML
  • OCCAM
  • OCAML
  • ADA
  • ERLANG
  • ELIXIR
  • FOKAL

Syempre maiisip mo yung iba na hindi ko nabanggit. Ang tanong, bakit marami sila? Isa lang talaga ang sagot sa tanong na ito. Ang dahilan kung bakit napakaraming wika ng computer:

Hindi namin sila gusto.

Well, siguro masyadong malakas na pahayag iyon. Marahil ay dapat kong sabihin:

Nasa Hollywood kami.
Nasa Redwood kami.
Tinawid namin ang karagatan para sa golden code.
Wala na kami sa katinuan
Ito ay isang magandang linya.
Dahil dito, hinahanap natin ang golden code.

At tayo ay tumatanda na.

Okay, maybe I should speak for myself... Ayaw mo bang sigawan si Neil Young na huminto sa pagrereklamo at humanap ng magandang babae at tumira sa kanya? Hindi mo ba nais sabihin sa kanya na ang paghahanap para sa isang pusong ginto ay walang saysay? Sabihin mo sa akin, ano ang gagawin niya dito kung nahanap niya ito?

At ano ang gagawin natin sa isang perpektong wika kung nakita natin ito?

Gumawa kami ng mga PDP-8 at FOCAL emulator para laruin ang "Lunar Lander", na isinulat ng isang estudyante sa high school noong 1969!

Yan ang iniisip ko.

Harapin mo. Itigil ang paghahanap. Walang perpektong wika. Tumingin kami kung saan-saan. Tumingin kami sa taas at ibaba. Tumingin kami sa loob at labas.

Tiningnan namin ang mga wika mula sa magkabilang panig.
Inside and out
at ginagawa pa rin, sa isang paraan o iba pa.
Tandaan natin na ito ay mga ilusyong pangwika.

Wala talaga kaming naiintindihan sa mga wika...
… sa lahat.

Oo, ngayon ay isang hindi pangkaraniwang araw.

Ngunit gayunpaman, ang punto ay:

Hindi namin kailangan ng ibang wika.
Hindi na natin kailangang malaman ang daan pauwi.
Ang gusto lang natin ay lumampas sa buhay.
SQL

Oo, kakaibang araw.

Kaya narito ang isang pag-iisip. Siguro kailangan nating ihinto ang paglikha ng mga bagong wika at huminahon lang at pumili ng isa o dalawa na talagang mahusay. Mapapadali nito ang buhay, hindi ba?

At, kung sakaling nagtataka ka, ang 76.43844461 ay magbibigay sa iyo ng magandang 2.23 MPH landing.

Pinagmulan: www.habr.com

Magdagdag ng komento