Friday

Programmazione

Software

C'è un'abbondanza di grandi software là fuori che gli autori e detentori del copyright hanno reso disponibile gratuitamente agli utenti finali. Piuttosto che duplicare gli sforzi, cerco di utilizzare gli strumenti standard quando possibile. Occasionalmente, non c'è niente là fuori che sia abbastanza adatto al conto. Ecco alcuni strumenti stravaganti che potresti trovare utili se non puoi ottenere uno strumento più generale per eseguire il lavoro in modo rapido ed efficiente.

Conversione del calendario

Gran parte della NASA e l'industria dei satelliti commerciali funziona al di fuori delle date di un anno piuttosto che delle date di mese / giorno per i lanci di sequenziamento, le strutture di monitoraggio della pianificazione e altre attività di pianificazione delle missioni. Quando è coinvolto direttamente con la pianificazione su base regolare, è consuetudine portare in giro un "calendario perpetuo", che è un singolo foglio di carta contenente la tabella di conversione. Un lato ha la tabella dell'anno comune da 1 a 365 e l'altra parte ha la tabella dell'anno bisestile da 1 a 366. I fogli di lavoro gestiscono facilmente questo tipo di conversione.

Giorno dell'anno per HP 32SII

Poiché spesso mi ritrovo senza un "calendario perpetuo" o un programma per fogli di calcolo, ma con la mia calcolatrice programmabile Hewlett-Packard 32SII, ho scritto un programma per il calcolatore che esegue la conversione. Il programma implementa equazioni dal libro Astronomical Algorithms di Jean Meeus. Meeus attribuisce l'algoritmo di conversione in avanti all'Osservatorio Navale degli Stati Uniti e la conversione inversa a un corrispondente privato nei Paesi Bassi.

I numeri del giorno giuliano in Perl

Sulla macchina desktop, che viene utilizzata per la pianificazione a lungo termine e l'analisi dei dati, il più completo sistema di numeri del giorno giuliano comune in astronomia è utile. Questo script Perl si trova in ~ / bin e converte tra le date del calendario gregoriano e il numero del giorno giuliano utilizzando tre diversi algoritmi. Un algoritmo è in grado di convertire giorni frazionari, ovvero ore, minuti e secondi, se facoltativamente specificato sulla riga di comando.

PCLNFSS - File in stile LaTeX 2e per font PCL

Un set di file di stile per l'utilizzo dei 45 caratteri standard scalabili nella ROM di qualsiasi stampante di fascia alta PCL 5e o successiva. Questo pacchetto deve essere utilizzato con dviljk o un driver DVI-PCL simile per generare PCL dal file DVI prodotto da LaTeX.

pclnfss-0.2.tar.gz
Pacchetto README file.

Lista di cose da fare:

  • Migliore documentazione per l'utente.
  • Genera file * .fd per la codifica T1. Attualmente è supportata solo la codifica OT1.
  • Migliora la denominazione dei pacchetti * .sty per evitare collisioni nello spazio dei nomi con altri pacchetti di font comuni.
  • Scopri se il file special.map fornito con teTeX è abbastanza buono, o se un file pclfonts.map separato deve essere incluso in PCLNFSS. Ci sono alcuni file * .map di esempio nella directory src / con il resto dei programmi di generazione di font virtuali di Karl Berry.
  • Caratteri matematici virtuali a la PSNFSS.
  • Supporto per il simbolo dell'euro.
  • Le metriche dei caratteri e le tabelle di crenatura si basano sui valori dei file di metrica dei caratteri codificati (TFM) inclusi nel CD-ROM dello sviluppatore LaserJet 4. Nota: non si tratta degli stessi file dei file di metriche dei caratteri TeX, che utilizzano anche l'estensione TFM. Le metriche aggiornate e le tabelle di kern per i font TrueType ROM nei nuovi prodotti PCL devono essere disponibili da qualche parte. (Sorprendentemente, le tabelle di kern non sono incluse nei file TrueType sul CD-ROM dell'utente fornito con le stampanti.Le tabelle di kern sono nel driver binario da qualche parte.) Queste nuove metriche dovrebbero essere incorporate nel pacchetto.

Risorse Xcms

Poche persone hanno la necessità di riprodurre esattamente i colori sul proprio desktop, e la maggior parte utilizza i propri display in modalità RGB non calibrata o in modalità sRGB di calibrazione presunta. Un'API di gestione del colore display è stata incorporata nel sistema X Window dal X11R5, ma la documentazione è diffusa in tutta la distribuzione X, ed è raramente inclusa nelle distribuzioni XFree86. Il software è molto difficile da usare senza una documentazione adeguata. Fortunatamente, ci sono molti archivi di documentazione disponibili. Ecco una raccolta per aiutare il programmatore casuale Xcms.

Retro Computing

Occasionalmente, per un motivo o per l'altro, potresti trovare necessario o addirittura piacevole lavorare con apparecchiature obsolete. Poiché la congettura di Church sembra essere vera, non abbiamo bisogno di buttare via completamente le fatiche del passato quando avremo una nuova macchina.

Institute for Advanced Study Architettura a 40 bit

Nel 1945, mentre collaborava con Eckert e Mauchly alla Moore School of Electrical Engineering dell'Università della Pennsylvania, von Neumann scrisse la prima bozza di un rapporto sull'EDVAC. Questo documento descrive la struttura logica di un'architettura a 32 bit bit-seriale e definisce il concetto del computer elettronico del programma memorizzato. Un anno dopo, nel 1946, Burks e Goldstine, che si erano recentemente trasferiti all'Institute for Advanced Study per unirsi allo sforzo informatico di von Neumann, pubblicarono una discussione preliminare sul design logico di uno strumento informatico elettronico con von Neumann come terzo autore. Questo rapporto Burks, Goldstine e von Neumann descriveva un'architettura asincrona a bit bit parallela a 40 bit. I computer più moderni discendono da questo secondo rapporto. Il design è noto come l'architettura di Princeton o IAS, per distinguerlo dall'architettura di Harvard di Mark I di Aiken. Von Neumann ha assemblato un team presso la IAS per costruire la macchina come delineato nel rapporto. Le relazioni sullo stato di avanzamento del progetto informatico elettronico IAS sono state ampiamente divulgate, con la costruzione e l'installazione di macchine simili in altre sei istituzioni: Argonne National Laboratory (AVIDAC), Oak Ridge National Laboratory (ORACLE), Los Alamos National Laboratory (MANIAC), l'Università dell'Illinois (ILLIAC), il Ballistic Research Laboratory di Aberdeen (ORDVAC) e RAND Corporation (JOHNNIAC) [il JOHNNIAC è attualmente in mostra al Computer History Museum di Mountain View, California]. ORDVAC e ILLIAC sono stati costruiti presso l'Università dell'Illinois, e quindi ORDVAC è stato spedito ad Aberdeen Proving Ground. ORACLE e AVIDAC furono costruiti ad Argonne, e poi ORACLE fu spedito a Oak Ridge.

Una notevole differenza tra il rapporto 1946 Burks, Goldstine e von Neumann e i manuali di architettura moderna è l'assenza del codice macchina o del layout delle istruzioni. Oggi le nuove architetture vengono simulate su macchine esistenti, quindi il set di istruzioni viene finalizzato e documentato prima che inizi l'implementazione dell'hardware. Il team di progetto Electronic Computer presso la IAS non disponeva di una macchina su cui simulare la propria architettura proposta. Il set di istruzioni effettivo è stato finalizzato durante l'implementazione. La macchina IAS andò in linea nel 1952. Vaga descrizione del set di istruzioni implementato fu pubblicata nella letteratura aperta da Estrin durante il primo anno di funzionamento della macchina. Nel 1954, Goldstine, Pomerene e Smith pubblicarono la relazione finale sullo stato di avanzamento della realizzazione fisica di uno strumento informatico elettronico, che elenca il set di istruzioni implementato nella macchina IAS.

Poiché la codifica dell'istruzione effettiva non è stata rilasciata fino a otto anni dopo il report originale, ogni implementazione dell'architettura IAS 40 bit aveva un set di istruzioni unico e incompatibile. I collegamenti sottostanti portano a documenti che contengono la codifica del set di istruzioni per ogni particolare implementazione dell'architettura.


  • IAS
  • ILLIAC
  • JOHNNIAC
  • MANIAC (Nota: Los Alamos limita l'accesso elettronico a determinate agenzie governative.L'URL funzionerà se la tua agenzia è nella lista approvata.Se questo URL non funziona per te, la copia cartacea del rapporto tecnico LA-1725 "The MANIAC" è disponibile nel collezioni della biblioteca dell'University of Chicago, dell'Univ. of Pennsylvania e della Linda Hall Library of Science & Technology di Kansas City.)
  • ORDVAC

Altre risorse per le macchine di architettura IAS a 40 bit includono:



Disassemblatore per IBM 704

L'IBM 704 fu il primo computer scientifico disponibile in commercio con un'unità aritmetica hardware in virgola mobile e stabilì lo standard per la programmazione scientifica negli anni '50. Rimane interessante oggi per diversi motivi, in primo luogo, la sua influenza persistente sulla struttura del linguaggio di programmazione, e in secondo luogo, la sua comunità di utenti e gli strumenti di programmazione sviluppati e distribuiti da quella comunità.

Le subroutine di assembler CAR e CDR sono i famosi esempi della storia di Lisp. Per l'elenco di queste due subroutine, vedere Scrittura e debug dei programmi di Steve Russell (MIT AI Lab Memo AIM-6). Fortran è stato sviluppato come linguaggio di programmazione scientifica per il 704 e molti dei limiti del formato di input del codice sorgente in forma fissa sono dovuti alle peculiarità dell'architettura 704. La macchina word a 36 bit poteva caricare solo due parole binarie da una riga di una scheda di memoria in memoria, che corrispondeva alle prime 72 colonne di una riga di 80 colonne standard. Il 704 utilizzava la codifica dei caratteri BCD a 6 bit, con 6 caratteri per una parola. Dato che la macchina era indirizzata alla parola, non indirizzata ai caratteri, aveva senso limitare le etichette e i nomi delle variabili a 6 caratteri. Quindi le etichette e il carattere di continuazione costituivano le prime 6 colonne di una scheda di input ei nomi delle variabili erano limitati a 6 caratteri. I tre registri indice del 704 e la mancanza di indirizzamento indiretto hanno reso la matrice di dati dominante la matrice multidimensionale.

Il 704 ha dato vita al primo gruppo di utenti di computer, SHARE, che si stava formando nell'industria aerospaziale della California meridionale (moderna incarnazione). I membri SHARE hanno sviluppato un assemblatore comune, SHARE assembly program o SAP, per lo scambio di subroutine e librerie di programmi. Grandi quantità di software SHARE esistono ancora in forma leggibile dalla macchina, grazie alla diligenza di Paul Pierce. I primi nastri nella base di codice SHARE, costituiti dalle subroutine di assemblatore e libreria datate 1955-1957, rappresentano probabilmente il più antico sistema di programmazione sviluppato dalla comunità e leggibile dalla macchina esistente. L'assemblatore scientifico commerciale di IBM (Fortran II Assembly Program, o FAP) è stato modellato su SAP.

I successivi sistemi di calcolo scientifico di IBM, la logica dei tubi 709 e la logica dei transistor 7030 (STRETCH), 7090 e 7094, hanno per lo più mantenuto la compatibilità binaria con 704. SHARE ha continuato a progettare un intero sistema operativo per IBM 709 (SHARE Operating System, SOS abbreviato) [Shell, DL, et al. Il sistema Share 709. (sei documenti). Journal of the ACM, vol. 6, n. 2, 1959, pp. 123-155]. Per System / 360, IBM ha finalmente rotto la compatibilità hardware e ha optato per una soluzione di emulazione per applicazioni scientifiche meno recenti.

I programmi SHARE sono stati distribuiti principalmente in formato sorgente BCD, ma alcune delle routine sono in formato binario delle colonne. Il disassemblatore convertirà 160 byte di input standard, che rappresentano un'immagine di una scheda binaria di colonne, in una forma leggibile dall'uomo. Il disassemblatore prima stampa una rappresentazione ASCII dei fori sulla carta, seguita dallo smontaggio binario.

Link correlati:

Il simulatore 709/7090/7094 di Paul Pierce
7090 cross assembler e linker di Dave Pitts per Linux
Emulatore 7094 di Rob Storey
Le ampie pagine di architettura 7090/7094 di Jack Harper

Atlas - un emulatore 1103A per sistemi UNIX


Atlas è un emulatore per Univac Scientific 1103A. Oltre a implementare tutte le 41 istruzioni di base della CPU, inclusa la ripetizione (RPjnw), Atlas simula anche la funzione di interruzione del programma. L'emulatore funziona come un programma interattivo a riga di comando e interpreta il codice macchina binario 1103A memorizzato nella memoria core / batteria simulata. I servizi forniti dall'emulazione includono l'immissione diretta del codice macchina in forma ottale, punti di interruzione, disassemblaggio e debugging manuale delle fasi. I dispositivi di input / output simulati includono un lettore di nastro di carta, un perforatore di nastro di carta e una macchina da scrivere elettronica.

L'emulatore è scritto in C e deve essere trasferito su un numero elevato di sistemi UNIX. Richiede un compilatore che supporti due estensioni C99 allo standard C89: interi a 64 bit (long long unsigned) e commenti in stile C ++ (//). L'emulatore attualmente funziona su Linux (gcc o Intel cc per IA-32), SunOS (Sun cc o gcc per SPARC) e Darwin (gcc per PowerPC).



Determinatori BASIC per i personal computer HP Series 80 e Integral

Un membro emerito del dipartimento facoltà è venuto circa un giorno con un disco floppy da 3,5 "pieno di programmi BASIC dal Hewlett-Packard Integral Personal Computer. Il PC Integrale del 1985 è stato l'ultimo di una linea di personal computer prodotti dalla divisione Corvallis, Oregon di HP, la più famosa per lo sviluppo di calcolatrici programmabili portatili dalla metà degli anni '70 alla metà degli anni 90. Le precedenti workstation desktop Serie 80, circa 1980-83, utilizzavano microcontrollori HP a 8 bit personalizzati originariamente progettati per il mercato delle calcolatrici e avviati direttamente in un interprete BASIC tramite ROM come molti altri computer a 8 bit di quell'epoca.Il PC Integrale utilizzava un Motorola 68000 a 16 bit e si avviava in UNIX (HP-UX 5.x) da una ROM 512k piuttosto grande. il pacchetto per l'IPC è stato progettato per essere compatibile con la sorgente della serie 80 BASIC.

Il PC integrale ha formattato 77 cilindri su un disco. Sono stato in grado di utilizzare un'unità floppy standard su un PC con Red Hat Linux, setfdprm (8) e la seguente / etc / fdprm per dd il floppy su un'immagine del disco.

# HP Integral Personal Computer
hpipc 1386 9 2 77 0 0x2A 0x02 0xDF 0x50

Generazione di immagini disco:
setfdprm / dev / fd0 hpipc
dd bs = 9k count = 77 if = / dev / fd0 di = disk.img

Una volta nella forma di un'immagine del disco, le utilità IPC di Peter Johnson compilate su una workstation PA-RISC HP 9000/782 (C240) su cui è in esecuzione Debian Linux sono state utilizzate per estrarre i singoli file dal file system gerarchico del PC integrale. Qualsiasi macchina big endian avrebbe funzionato con le utilità di Peter, che sono state originariamente sviluppate su SPARC con Solaris.

Come con la maggior parte degli interpreti BASIC del microcomputer degli anni '80, il BASIC tecnico del PC integrale poteva SALVARE i programmi in forma di sorgente ASCII, oppure memorizzarli nel formato tokenizzato binario interno usato dall'interprete. Di oltre 130 programmi sul disco, solo due sono stati salvati come ASCII. La velocità di caricamento e la compattezza del formato tokenizzato binario ne hanno fatto la scelta logica per scopi di archiviazione.

Due dei programmi sul disco sono stati archiviati sia in formato ASCII sia in formato tokenizzato binario. Usando questi due programmi e una descrizione del formato originale BASIC HP-85 [N.A. Mills, H.C. Russell, K.R. Henscheid, "Enhanced BASIC Language per un personal computer", Hewlett-Packard Journal, vol. 31, No. 7, luglio 1980, p. 26]. sono stati scritti i seguenti rivelatori.

  • Detokenizer per HP-85 BASIC
  • Detokenizer per HP-87 BASIC
  • Detokenizer per HP Integral PC BASIC tecnico

Questi interpreti BASIC hanno utilizzato una sintassi di notazione polacca inversa (RPN) internamente per ogni riga nel file sorgente. L'output detocato è presentato in un RPN dettagliato con un token per riga, anziché in notazione infisso con token multipli per riga. Gli opcode sono cambiati quando l'interprete BASIC è stato sottoposto a revisione e porting su ogni nuova macchina, quindi gli opcode che appaiono in una versione del detokenizer non appaiono necessariamente in altre versioni. Poiché la natura dei programmi disponibili su disco era matematica piuttosto che I / O correlata, molti degli opcode di I / O non sono noti. I rivelatori sono tutt'altro che completi, ma forniscono un output sufficiente per essere in grado di leggere il codice e i commenti e porting i programmi per infettare i linguaggi di notazione su una piattaforma moderna.

Le versioni più recenti dell'interprete per le macchine del modello successivo non erano in grado di leggere il formato binario tokenizzato dai modelli precedenti. Il metodo di migrazione del codice supportato da HP era tramite ASCII SAVE e GET.

Convertitore di font soft per terminali serie VT200

La mia unica apparecchiatura di home computing per oltre un decennio era un terminale compatibile VT220 della Digital Equipment Corporation (un GraphOn 230) collegato a un modem. Poiché i set di caratteri a 8 bit sono entrati in uso a metà degli anni '90, il terminale hardware ha iniziato a mostrare i suoi limiti. Questo programma Perl converte un font 6x10 X Window System standard in Bitmap Distribution Format (BDF) in DEC sixel graphics e scarica la pagina superiore sul terminale. Il terminale può quindi essere utilizzato con qualsiasi set di caratteri ISO Latin a 8 bit standard.

Versione inglese : http://insar.stanford.edu/~lharcke/programming/

No comments:

Post a Comment