Kielitasot

Hei Habr!

Tuon huomionne artikkelin käännöksen "Kielitasot» kirjoittanut Robert C. Martin (Uncle Bob).

Kielitasot
Vietän aikaani pelaamalla vanhaa peliä nimeltä Lunar Lander vuodelta 1969. Sen on kirjoittanut Jim Storer, lukiolainen. Hän kirjoitti sen PDP-8:lla FOCALissa. Ohjelma näyttää tältä:

Kielitasot

Ja tässä on FOCALin lähdekoodi:

Kielitasot

Jim Storer oli melko lahjakas lukiolainen. Katso tämä koodi. Hänellä on aika mielenkiintoisia Taylor-ilmaisuja.

Periaatteessa teen binäärihaun määrittääkseni K:n arvon, joka johdonmukaisesti käytettynä laskee aluksen täydellisesti. Joten muokkasin ohjelmaa niin, että se hyväksyisi vain yhden arvon ja sovelsi sitä sitten useita kertoja, kunnes laiva laskeutui tai kaatui. Tätä kirjoittaessani tiedän vastauksen olevan välillä 76.40625 ja 76.4453125, ja yritän numeroa 76.4257813. Alan ajatella, että aika loppuu kesken, ennen kuin löydän vastauksen.

Sillä välin minulle tuli mieleen, että suoritin tätä ohjelmaa emulaattorilla PDP-8, joka kirjoitti Luassa iPadille.

Joten okei, mietitään tätä.

  • iPadissa on siru A8X, jossa kolme ydintä toimii gigahertseillä tai niin.
  • Lua on kirjoitettu C-kielellä ja käännetään A8X:ään.
  • PDP8-emulaattorini on kirjoitettu Lua-kielellä paketin avulla CODEA Kaksi elämää vasenta -osiosta.
  • FOCAL kirjoitettiin 1960-luvun lopulla PDP8:lle.
  • Lunar Lander on kirjoitettu FOCAL-kielellä.

Nämä ovat siis A8X, C, Lua, PDP8 ja FOCAL. Nämä ovat viisi eri kieltä. Viisi erilaista mekanismia, jotka kertovat koneelle, mitä tehdä; ne ovat kaikki pinottu päällekkäin!

Mikä se on? Miksi kieliä on niin monta? Itse asiassa, unohda iPad, PDP-8, C, Lua ja kaikki muu. Miksi kieliä on niin monta?

##Miksi kieliä on niin monta?

Ajattele sitä! Kuinka monta ohjelmointikieltä voit nimetä? Annan sinulle pienen listan:

  • Fortran
  • Algol
  • COBOL
  • SNOBOL
  • LISP
  • BCPL
  • B
  • C
  • SIMULA
  • JUTUSTELU
  • EIFFEL
  • C + +
  • JAVA
  • C#
  • PYTHON
  • RUBIINI
  • LOGO
  • LUA
  • BASIC
  • PL/1
  • JAVASCRIPT
  • GO
  • DART
  • PROLOGI
  • FORTH
  • SWIFT
  • ML
  • OCCAM
  • OCAML
  • ADA
  • ELANG
  • ELIKSIIRI
  • FOCAL

Voit tietysti ajatella muitakin, joita en ole maininnut. Kysymys kuuluu, miksi niitä on niin paljon? Tähän kysymykseen voi oikeastaan ​​olla vain yksi vastaus. Syy siihen, miksi tietokonekieliä on niin monia:

Emme pidä niistä.

No, ehkä se on liian voimakas lausunto. Ehkä minun pitäisi sanoa:

Olimme Hollywoodissa.
Olimme Redwoodissa.
Ylitimme valtameren kultaista koodia varten.
Olimme ihan pihalla
Se on niin hieno viiva.
Tämä saa meidät etsimään kultaista koodia.

Ja me vanhenemme.

Okei, ehkä minun pitäisi puhua omasta puolestani... Etkö halua vain huutaa Neil Youngille, jotta hän lopettaisi valituksen ja etsii jonkun mukavan tytön ja asuu hänen kanssaan? Etkö halunnut kertoa hänelle, että kultaisen sydämen etsiminen oli turhaa? Kerro minulle, mitä hän tekisi sillä, jos löytäisi sen?

Ja mitä tekisimme ihanteellisella kielellä, jos löytäisimme sen?

Loimme PDP-8- ja FOCAL-emulaattorit soittamaan "Lunar Landeria", jonka luki lukiolainen vuonna 1969!

Näin minä ajattelen.

Tule toimeen sen kanssa. Lopeta etsiminen. Täydellistä kieltä ei ole olemassa. Katsoimme kaikkialta. Katsoimme ylhäältä ja alhaalta. Katsoimme sisään ja ulos.

Tarkastelimme kieliä molemmilta puolilta.
Sisällä ja ulos
ja tekee edelleen, tavalla tai toisella.
Muistakaamme, että nämä ovat kielellisiä illuusioita.

Emme todellakaan ymmärrä kielistä mitään...
… ollenkaan.

Kyllä, tänään on epätavallinen päivä.

Mutta pointti on kuitenkin:

Emme tarvitse toista kieltä.
Meidän ei tarvitse tietää tietä kotiin.
Haluamme vain mennä elämän yli.
S.Q.L.

Kyllä, outo päivä.

Tässä siis yksi ajatus. Ehkä meidän täytyy lopettaa uusien kielten luominen ja rauhoittua ja valita yksi tai kaksi todella hyvää. Tämä tekee elämästä paljon helpompaa, eikö niin?

Ja jos mietit, 76.43844461 saa aika hyvän laskeutumisen 2.23 MPH.

Lähde: will.com

Lisää kommentti