To je najbolje što mogu učiniti da se prisjetim jezika koji sam posljednji put koristio 1969. Bilo je to staro, čudno i gadno dok nisi naučio.
Moj novi šef, koji je bio zadužen za tehničku podršku, nepromišljeno je rekao Lakehurst Naval Air Stationu da će moći koristiti OS/360 Job Control Language za unos bez procjepa magnetske vrpce generirane pogonom trake spojenim na njihovo miniračunalo DEC na FORTRAN programe koji rade na modelu 65. Kad se pokazalo da JCL to ne može, dobio sam zadatak da napišem program za pretvorbu koji će raditi na ITT-ovom lokalnom modelu 30. Sjetio sam se da je C-E-I-R programer sa sjedištem u Arlingtonu VA napisao program za obradu EKG vrpci bez razmaka na 7094, pa sam potražio njezin članak Komunikacija ACM-a.
Razlog zašto je Lakehurst generirao vrpce bez razmaka bio je taj što njihov telemetrijski sustav nije imao dovoljno veliki međuspremnik za pohranu podataka, dok je miniračunalo DEC pisalo standardni razmak od 1/2" među blokovima. Njihov pogon trake imao je posebnu značajku koja je mogla čitati takve trake, ali ograničena glavna memorija miniračunala DEC isključila je sofisticiranu inženjersku analizu. Odgovor C-E-I-R programera bio je korištenje dva IBM-a programabilan podatkovni kanali za kopiranje vrpci bez razmaka na vrpce s razmakom; ovo je funkcioniralo ako je pogon trake koji čita traku bez razmaka radio znatno sporije od pogona trake koji je pisao traku s razmakom.
Pa sam napisao DOS/360 asemblerski program koji je započeo jednostavno program podatkovnog kanala koja se vrti između naredbe koja čita 10K bajtova u jedan memorijski međuspremnik i naredbe koja čita 10K bajtova u drugi memorijski međuspremnik, signalizirajući DOS programu kada svaka naredba završi izvršenje. Asemblerski program bi zatim zapisao sadržaj upravo popunjenog međuspremnika na pogon trake veće brzine prije nego što bi se kanalni program vratio u petlju kako bi ponovno napunio međuspremnik.
Lakehurst NAS generirao je testnu traku koju je moj program uspio uspješno pokrenuti. Međutim, otkrili su da pogon trake spojen na njihovo miniračunalo ima glavu za čitanje i pisanje nakošeno, a ITT bi morao nakriviti glavu na jednom od svojih 360/30 pogona trake da bi odgovarao. ITT nije bio voljan to učiniti, tako da moj program konverzije nikada nije pokrenut u produkciji.
Prolog i LISP kada sam imao iskustva samo s BASIC-om, Pascalom i asemblerom.
Bilo bi bolje da sam mogao urediti svoj prethodni post, ali to mi je zabranjeno nakon više od sat vremena.
P.S.: Evo članka Komunikacije ACM-a Spomenuo sam u zadnjoj rečenici drugog ¶ od moj prethodni post.
Bio je potreban razmak između blokova jer se brzi pogoni trake prije LTO-a nisu mogli "zaustaviti na novčiću" kako bi ih se moglo sektorski adresirati poput HDD-ova ili SSD-ova. Drugi ¶ u tom odjeljku članka Wikipedije kaže "Može se koristiti veliki međuspremnik memorije stavite podatke u red čekanja", ali telemetrijski mehanizam mornaričke zračne postaje Lakehurst—kao što je "EKG" (sada skraćeno kao "EKG" prema njemačkoj terminologiji) u članak o komunikacijama—nije imao veliki memorijski međuspremnik, tako da IBM-ov 7-tračni standardni 3/4" međublokovni razmak nije mogao biti umetnut za Čekanje u redu. LNAS je imao 12-bitnu riječ DEC/CDC mini-računalo, tako da je analiza bila ograničena—zbog čega su htjeli čitati svoje vrpce s podacima bez praznina koristeći FORTRAN na ITT-ovom S/360 Model 65.
Podatkovni kanal IBM 7090/94 ili System/360 bio je zaseban procesor koji je radio paralelno s CPU-om. Prema odjeljku "Povijest" tog članka, "Za niže modele System/360 50 i ispod..., kanali su implementirani u CPU-ove mikrokod, a sam CPU radio je u jednom od dva načina rada, ili "CPU Mode" ili "Channel Mode", s načinom kanala 'krađa' ciklusa iz CPU moda." IMHO programiranje kanala predstavljalo je jezik različit od S/360 Asembler.
Prepustit ću objašnjenje zakrivljenosti glave za čitanje i pisanje audio stručnjaku. Ali popravljanje na LNAS-u učinilo bi postojeće trake nečitljivima.
Među njegovim brojnim prekrasnim svojstvima: globalno postojano stanje. Nema ključnih riječi (sve ovisi o kontekstu, pa bi "IF IF=PRINT PRINT 'HELLO'" mogla biti važeća izjava.
Također možete skratiti stvari sve dok su nedvosmislene, dakle
I I=P P 'HELLO' bi vrijedilo.
Neke izjave traju do kraja retka.
Pozadina vašeg sustava medicinske dokumentacije, a možda i vaše banke, piše u ovome.
Sada se prodaje kao baza podataka s tankim slojem SQL-a na vrhu i zove se Intersystems Cache. Bezbožno je skupo.
Što osvajam?
Skriptni jezik za Spatial Analyzer. Ukratko, Spatial Analyzer je za geodete ono što je AutoCAD za tehničke ladice.
Njegov skriptni jezik ne koristi nizove znakova, već slijed blokova kojima rukujete u GUI-u koji izgleda kao Windows 95. Jedini oblik grananja koji poznaje su gotos, koristi pogreške u kodu umjesto iznimaka i sprema se kao maskirana binarna datoteka (koja nije kompilirani kod, već serijalizirani prikaz bloka slijed).
Imali smo projekt koji je uključivao ovu aplikaciju i isprva smo htjeli staviti maksimum poslovne logike u te skripte, ali napravili smo sigurnosnu kopiju kako bismo upotrijebili njen API za samo pozovite relevantne funkcije (hranjenje aplikacije podacima, proračuni, komunikacija s instrumentima) i koristite ifs, whiles i fors iz razumnijeg Jezik. API pozivi su i dalje bolni, poziv procedure s N argumenata i M rezultata zahtijeva N+M+X LoC-ova, gdje je X u [1..10[.
Usput, čudno je kako u takvim poslovnim nišama licencni softver od 6000 € može izgledati tako amaterski/zaglavljen u 2004. godini.
Zajedničko im je vizualno sučelje, pa mislim da mi je tipkanje za kodiranje izražajnije.
To bi bilo prije 25+ godina, ali sjećam se da je moj menadžer u to vrijeme bio uzbuđen zbog alata za programiranje koji je prikazivao dijagram toka kod, iako je svaka čast bio sofisticiraniji od toga, jer je mogao grupirati izjave unutar petlje ili zajedno na način da vizualno ima smisla, dobro izgleda kodiranje boja za vrstu izjava, dobra ravnoteža koje su stavke predstavljene okomito naspram vodoravne, ne loše. Zvučalo je obećavajuće.Ajar je rekao:Pohađao sam sat PLC programiranja gdje smo koristili logiku vizualnih ljestvica, ali nisam siguran čiju implementaciju. To je sranje. Imao sam i projekt u LabViewu, za koji sam čuo da je postao bolji, ali je u to vrijeme bilo stvarno loše raditi s njim.Zajedničko im je vizualno sučelje, pa mislim da mi je tipkanje za kodiranje izražajnije.
Kliknite za proširenje...
Pa je dao cijelom timu da ga instalira i kad sam pogledao prvi primjer koji je bio složeniji od hello worlde, mozak mi se zaključao.
Svaka izjava je imala svoj mali oblačić ili što već, ali u glavnom prikazu niste mogli vidjeti varijable ili parametre ili bilo što imenovano unutar izjave. Morali ste kliknuti na oblačić da biste vidjeli detalje. Mogli ste imati otvoren samo jedan mjehurić u isto vrijeme, pa je bilo gotovo nemoguće pratiti na koje varijable je koja izjava utjecala. Htjeli ste vidjeti što se događa s varijablom zvanom temp? Morali ste kliknuti na svaki oblačić, pogledati ga, zapisati ili napraviti mentalnu bilješku, zatim pojedinačno provjeriti svaki drugi oblačić jer niste mogli vidjeti koje izjave koriste koje varijable. Kako je temperatura postavljena na 42? Morate kliknuti svaki oblačić izjave jedan po jedan da biste saznali!
Jednostavno nisam mogao zamisliti koliko bi ovo bilo beskorisno za programiranje bilo kojeg koda koji, znate, koristi varijable.
To je također bilo moje jedino iskustvo u radu s odgovarajućim sustavom namotavanja trake iz ere 70-ih jer je jedan od pohranjenih prijenosnih tvrdih diskova bio nečitljiv i morali smo loviti traku i ponovno je prenijeti. Možda je u ovom trenutku bilo brže ponovno nabaviti original iz bilo kojeg muzeja u kojem se nalazio i dati ga ponovno kodirati, ali ovaj je proces za nas bio pomalo zabavan.
Najstariji jezik bio je Fortran IV. Jedini put sam koristio i bušene kartice. Dovoljno sam star da sam se ušuljao u neke od ovih starih tehnologija koje su već očito bile zastarjele, ali su se još uvijek koristile na nekoliko mjesta. Prema modernim standardima Fortran IV bio je prilično gadan, ali u to je vrijeme bio samo dosadan.
Uredi: nisam siguran koliko je ljudi oko tog naučenog logotipa. I naučio sam asemblerski jezik TI TMS9900, još jednu stvar s kojom bih mogao završiti kao posljednja preživjela osoba znanje, jer sam to naučio u srednjoj školi i ne znam da je TI isporučio toliko njih za početak s.
O da, moja je mama radila za Wang 70-ih i naučio sam nešto COBOL-a na jednom od njihovih miniračunala kad sam povremeno bio zaglavljen u njezinom uredu. Sam Bog zna koji je to model računala bio ili koliko sam toga zapravo naučio.
Moj prvi posao bio je podrška i razvoj aplikacije koristeći VAX Basic i sql pozive Oracle bazi podataka. Obrambeni izvođač za mornaricu u New Orleansu 90-ih.
Jesu li upućeni SQL pozivi od VAX BASIC-a? Ako je tako, opa.
LINC, sretno u pronalaženju prave pomoći s tim. Ako želite to potražiti, svakako uključite riječ UNISYS u traku za pretraživanje.
Također se prepisuje neki COBOL kod i XGEN kod.
Evo primjera dijela LINC koda.
SD; INV-TOTAL LE; 10 ED; + DE; 2. DETERMINE; EVERY INVOICE (CUSTOMER INVOICE-NO)
ADD; EVENT.AMOUNT INV-TOTAL. END; DW; GLB.STATUS = (*****)
MESSAGE; ERROR (This Customer has not used this Invoice Number)
END.EXIT;
Taj odjeljak kaže da je LINC razvijen oko 8 godina nakon mog dvogodišnjeg programiranja Burroughsovih računala u Ebasco Services. Koristio sam isključivo Burroughsove verzije COBOL-a, a moja prilagođena aplikacija od 5 programa bila je dizajnirana oko hijerarhijske implementacije—upotrebom "ažuriranje s tri trake"— od čega bi kasnije nazvati proračunskom tablicom. Moj prvi skup podataka 1970. bio je raspored crtanja inženjerske integracije za Fukushima I—i kasnije II—elektrana. (WP savjeti Ebasco inženjeri su nadjačali položaj WRT komponenti za ta postrojenja; koji je diktirao Tokyo Electric Power Co..)
Srednja škola: FORTRAN IV radi na OS/360 MFT na 360/44. Čudno kako se neki detalji drže jednog.
Koledž: IBM 360 Asembler i APL na 360-50; RPG II na System/3; IBM 029 bušilica za kartice; PL/I i JCL na 360-44; APL na DOS/360 (360-40). 360/44 je imao dvije memorijske particije od 128K. Većina programerskih projekata radila je u bilo kojem od njih. Mrzili smo kad su klase Statistike pokretale SPSS poslove jer im je bilo potrebno 256K da bi se pokrenuli, blokirajući sve ostale.
Raditi, prilično redom: FORTRAN, PDP-8 Assembler (u daljnjem tekstu Asm), DIBOL-8, PDP-11 Asm, DIBOL-11, TECO (ako DEC, onda TECO), 6800 Asm, 6502 Asm, Z-80 Asm, BASIC na 6800 s Asm sučeljem za laboratorijsku opremu, BASIC na raznim drugim mikroima, Revelation baza podataka (Pick OS clone), C, dBase II. Nisam siguran trebam li računati vatrozid ili Windows Server AD konfiguraciju, oboje bih usporedio s RPG-om.
Negdje usput se igrao sa SNOBOL-om, malo LISP-a, Pascala, LOGO-a, HTML-a, Asm-a za mikrokontrolere (naravno) i vjerojatno još ponešto koje sam uspio zaboraviti.
Moram izbaciti i Haskella. Naviknuo sam se na to u kratkom vremenu koliko sam s njim radio.
Većinu sam na Rustu, ali posuđujem, boksam itd. još uvijek mi je prilično stran, iako sam našao objašnjenje takvih stvari za ljude koji dolaze iz C/C++ pozadine što je puno pomoglo.
Dakle, najstariji bi vjerojatno bio Lisp (iako sam, iskreno, uglavnom radio na novijim dijalektima koji nisu da star). Najčudniji je definitivno Prolog, gdje, umjesto da pokušavate reći računalu što da radi, vi mu kažete što da učini istinitim, a ono shvaća kako. A najprokletiji je vjerojatno Perl/Mason.
LabView je jezik koji sam koristio i koji mi se najmanje svidio. Djelomično zato što je baza koda s kojom sam se pomešao uključivala "virtualne instrumente" (labview za "modul") koji zahtijevaju tri monitora da u potpunosti stanu na zaslon odjednom, i bi li IT ili moj PI platili toliko zaslona za skroman doktorat student?
Nakratko sam nestao u Perl zečjoj rupi oko 2002. Napisao je veliki užasan program za izdvajanje podataka iz Backup Execovih log datoteka (zbog potpunog nedostatka izvješća, barem u verziji koju smo kupili - nema sumnje da je postojalo superpoduzeće elitno izdanje koje vam je dalo nešto grozno poput Crystal Reports) i imali ste razloga vratiti mu se godinu dana kasnije. Nije jebeni scooby doo. Mogao sam isto tako otvoriti zip datoteku u Notepadu.
Nakratko sam radio u startupu (da, originalni Dotcomov procvat i kasniji pad) i naš je proizvod uključivao klijenta e-pošte usmjerenog prema korisniku. Kupili smo prilagodljivi gotovi sustav za implementaciju te značajke.ZapovjednikJameson je rekao:Nakratko sam nestao u Perl zečjoj rupi oko 2002. Napisao je veliki užasan program za izdvajanje podataka iz Backup Execovih log datoteka (zbog potpunog nedostatka izvješća, barem u verziji koju smo kupili - nema sumnje da je postojalo superpoduzeće elitno izdanje koje vam je dalo nešto grozno poput Crystal Reports) i imali ste razloga vratiti mu se godinu dana kasnije. Nije jebeni scooby doo. Mogao sam isto tako otvoriti zip datoteku u Notepadu.
Kliknite za proširenje...
Napisano je u Perlu.
Reći ću ovo: Bio je to najčitljiviji Perl koji se mogao održavati i koji sam ikada vidio. Iako je ovo kao da tvrdite da je bio 'najviši mrav', bio je dovoljno čitljiv da smo ga mogli modificirati kako bi odgovarao našim potrebama.
Iskustvo mi je doživotno ostavilo odbojnost prema jeziku. Nikad više.
Najstariji i najčudniji u kojem sam kodirao bio je polusastavni jezik koji se koristi u Appleu [ i Commodoreu VIC-20. Uključivalo je obilato korištenje PEEK i POKE naredbi unutar BASIC-a za čitanje i pisanje neobrađenih podataka iz/u memoriju. Prilično sam siguran da je postojala treća naredba za koju se ne mogu sjetiti da se koristila za izvršavanje asemblerskog jezika program koji sam zapisao u memoriju s POKE izjavama, ali ne mogu se sjetiti što je bilo na Jabuka ][.