LA CAMPANA

C'è chi ha letto questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam

Anche con centinaia di migliaia di software per PC, gli utenti potrebbero aver bisogno di qualcosa che il software esistente non ha (o fa, ma non ha). In questi casi, per creare nuovi programmi, viene utilizzato un software di tooling che consente di sviluppare sia il sistema che l'applicazione software... Di conseguenza, svolge il ruolo di mezzi di produzione nella programmazione.

Sistemi di programmazioneSono complessi di programmi e altri strumenti destinati allo sviluppo e al funzionamento di programmi in uno specifico linguaggio di programmazione per una specifica architettura di PC (piattaforma).

Il sistema di programmazione di solito include editor di testo programmi, traduttoreprogrammi, biblioteche sottoprogrammi e editor di link, debugger, sistemi di aiuto e talvolta vari programmi ausiliari.

Linguaggio di programmazioneÈ un linguaggio artificiale con l'aiuto del quale l'algoritmo per la risoluzione di un problema è scritto in una forma comprensibile da un PC.

Esistono molti linguaggi di programmazione e ognuno può avere dozzine di versioni. Ogni programmatore scrive programmi nel linguaggio che gli è conveniente e non esiste un linguaggio di programmazione considerato generalmente accettato.

Ma tutti i linguaggi di programmazione hanno una cosa in comune. Sono comprensibili ai programmatori, ma incomprensibili al processore, poiché il processore può funzionare solo con numeri binari e quindi comprende programmi scritti solo in codice macchina... Pertanto, i programmi scritti in qualsiasi linguaggio di programmazione vengono prima "tradotti" nel linguaggio del processore, ad es. trasformarsi in codice macchina. Questa traduzione viene eseguita da programmi di traduzione speciali. In inglese si chiama "traduzione" traduzione); pertanto, vengono chiamati i programmi che traducono i programmi in codice macchina traduttori.

Sul palco trasmissioniavviene la trasformazione codice sorgenteprogrammi in codice oggetto,che viene ulteriormente elaborato editor di link.Editor di link - programma specialefornire la costruzione modulo di avvioidoneo all'esecuzione (Fig. 6.2).

Figura: 6.2. Diagramma del processo di creazione di un modulo di caricamento del programma

Esistono i seguenti tipi di traduttori: interprete, compilatore.

Interprete prende il successivo operatore di lingua dal testo del programma, ne analizza la struttura e lo esegue immediatamente. Quindi passa all'operatore successivo. Compilatoretraduce l'intero programma in istruzioni macchina.

I linguaggi di programmazione universali più popolari oggi sono i seguenti: Basic, Pascal, C ++ (C ++), Java.

Per ognuno di questi linguaggi di programmazione oggi esistono molti sistemi di programmazione prodotti da varie aziende e orientati a vari modelli di PC e sistemi operativi. I più apprezzati sono i seguenti ambienti visivi progettazione rapida di programmi per Windows: Microsoft Visual Basic; Borland Delphi; Borland C ++ Builder; Microsoft Visual Studio (Visual Basic.net, C ++, C #, J #).

Sistemi moderni La programmazione consente di creare programmi che vengono richiamati durante la visualizzazione di pagine Web sulla rete elettronica globale Internet.

Una classe speciale di sistemi di programmazione sono i sistemi per la creazione di applicazioni client-server. Questi sistemi ti consentono di creare rapidamente sistemi di informazione per reparti e anche grandi imprese. Contengono i mezzi per creare interfaccia utente, descrizioni delle procedure di elaborazione dei dati, modelli per l'esecuzione di azioni tipiche di elaborazione dei dati, ecc. Questi sistemi, di regola, consentono di lavorare con un'ampia varietà di DBMS: Oracle, Sybase, Microsoft SQL Server, ecc. Tra i sistemi più popolari di questo tipo ci sono PowerBuilder di Sybase, Delphi di Borland, Visual Basic di Microsoft. Naturalmente, gli strumenti per la creazione di applicazioni client-server sono disponibili anche come parte di un DBMS client-server (Oracle, Sybase, ecc.), Ma sono focalizzati solo su questo DBMS.

1. Classificazione del software

Lo scopo di un computer è eseguire programmi. Il programma contiene comandi che determinano l'ordine delle azioni del computer. L'insieme di programmi per moduli informatici software (software) ... Le caratteristiche funzionali distinguono tra software di sistema e software applicativo.

In prima approssimazione, tutti i programmi in esecuzione su un computer possono essere approssimativamente suddivisi in tre categorie (vedi figura):

1. programmi applicativiassicurare direttamente l'esecuzione del lavoro necessario per gli utenti;

2. programmi di sistema che svolgono varie funzioni ausiliarie, ad esempio:

    gestione delle risorse informatiche;

    fare copie delle informazioni utilizzate;

    controllo delle prestazioni di dispositivi informatici;

    problema informazioni di riferimento su un computer, ecc.;

3. sistemi software strumentalifacilitare il processo di creazione di nuovi programmi per il computer.

Quando si costruisce una classificazione del software, si deve tener conto del fatto che il rapido sviluppo della tecnologia informatica e l'espansione della portata delle applicazioni dei computer hanno notevolmente accelerato il processo di evoluzione del software.

Se prima era possibile elencare da un lato le principali categorie di software: sistemi operativi, traduttori, pacchetti applicativi, ora la situazione è cambiata radicalmente.

Lo sviluppo del software è andato sia in profondità (nuovi approcci alla costruzione di sistemi operativi, linguaggi di programmazione, ecc.) Che in ampiezza (i programmi applicativi hanno cessato di essere applicati e hanno acquisito un valore indipendente).

Il rapporto tra i prodotti software richiesti e quelli disponibili sul mercato sta cambiando molto rapidamente. Anche i prodotti software classici, come i sistemi operativi, sono in continua evoluzione e dotati di funzioni intelligenti, molte delle quali in precedenza erano legate solo alle capacità intellettuali umane.

Inoltre sono comparsi programmi non tradizionali, che è molto difficile, se non impossibile, classificare secondo criteri prestabiliti, in quanto, ad esempio, un programma è un interlocutore elettronico.

Oggi possiamo dire che si sono formati più o meno definitivamente i seguenti gruppi di software:

    sistemi operativi e shell;

    sistemi di programmazione (traduttori, librerie di subroutine, debugger, ecc.);

    sistemi strumentali;

    pacchetti software integrati;

    fogli di calcolo dinamici;

    sistemi di grafica per computer;

    sistemi di gestione di database (DBMS);

    software applicativo.

La struttura del software è mostrata in figura. Certo, questa classificazione non può essere considerata esaustiva, ma riflette più o meno chiaramente le direzioni di miglioramento e sviluppo del software.

Sistema operativo (OS) -sistema di programmi progettati per controllare i dispositivi informatici, controllare l'elaborazione e l'archiviazione dei dati, fornire un'interfaccia utente.

Il sistema operativo è solitamente archiviato in memoria esterna computer - su disco. Quando il computer è acceso, viene letto dalla memoria del disco e inserito nella RAM.
Questo processo è chiamato download sistema operativo.

Le funzioni del sistema operativo includono:

Attuazione di un dialogo con l'utente;
I / O e gestione dei dati;
pianificazione e organizzazione del processo di elaborazione del programma;
allocazione delle risorse (RAM e cache, processore, dispositivi esterni);
lancio di programmi per l'esecuzione;
tutti i tipi di operazioni di manutenzione ausiliaria;
trasferimento di informazioni tra diversi dispositivi interni;
supporto software per il funzionamento di periferiche (display, tastiera, unità disco, stampante, ecc.).

A seconda del numero di attività elaborate simultaneamente e del numero di utenti che il sistema operativo può servire, esistono quattro classi principali di sistemi operativi:

1. single-user single-tasking, che supportano una tastiera e possono funzionare solo con una (in questo momento) compito;

2. lavoro singolo utente singolo con stampa in background, che consentono, oltre all'attività principale, di avviare un'attività aggiuntiva, solitamente incentrata sulla stampa delle informazioni. Questo accelera il lavoro quando si stampano grandi quantità di informazioni;

3. multitasking per utente singoloche consentono a un utente di elaborare più attività in parallelo. Ad esempio, più stampanti possono essere collegate a un computer, ognuna delle quali funzionerà per il "suo" compito;

4. multitasking multiplayerche consentono a più utenti di eseguire più attività su un computer. Questi sistemi operativi sono molto complessi e richiedono notevoli risorse della macchina.

Diversi modelli di computer utilizzano sistemi operativi con diverse architetture e capacità. Il loro lavoro richiede risorse diverse. Forniscono vari gradi di servizio per la programmazione e l'utilizzo di programmi già pronti.

Sistema operativo per personal computerincentrato sull'uso professionale dovrebbe contenere i seguenti componenti principali:

Programmi di controllo I / O;
programmi che gestiscono il file system e pianificano attività per il computer;
processore del linguaggio di comando che riceve, analizza ed esegue le istruzioni indirizzate al sistema operativo.
Ogni sistema operativo ha il proprio linguaggio di comando che consente all'utente di eseguire determinate azioni:
fare riferimento al catalogo;
markup supporto esterno;
eseguire programmi;
... altre azioni.

Analisi ed esecuzione dei comandi utente, incluso il caricamento di programmi già pronti da file in rAM e il loro lancio viene eseguito dal processore dei comandi del sistema operativo.

Per controllare i dispositivi esterni del computer, vengono utilizzati programmi di sistema speciali: i driver. I driver di dispositivo standard formano collettivamente il sistema di input / output di base (BIOS), che di solito è archiviato nella memoria permanente del computer.

I moderni sistemi operativi per personal computer si differenziano l'uno dall'altro, innanzitutto per l'orientamento verso macchine di una certa classe, per le modalità di elaborazione che supportano, per le capacità di servizio fornite. Esempi di sistemi operativi per PC sono CP / M, MS DOS, OS / 2 Warp (IBM), Windows 95 (Microsoft).

Strumentale software - Si tratta di programmi utilizzati per lo sviluppo, la regolazione o lo sviluppo di altre applicazioni o programmi di sistema.

Per il loro scopo, sono vicini ai sistemi di programmazione. I programmi di attrezzaggio includono, ad esempio:

    editori;

    mezzi per collegare i programmi;

    programmi di debug, ad es. programmi che aiutano a trovare e correggere gli errori nel programma;

    programmi di utilità che implementano azioni di sistema utilizzate di frequente;

    pacchetti software grafici, ecc.

Gli strumenti di sviluppo del software possono fornire assistenza in tutte le fasi dello sviluppo del software.

In base ai compiti assegnati al software strumentale si possono distinguere un gran numero di differenti tipologie di software strumentali:

1) Editor di testo

2) Ambienti di sviluppo integrati

4) Compilatori

5) Interpreti

6) Linker

7) Parser e generatori di parser (vedi Javacc)

8) Assemblatori

9) Debugger

10) Profiler

11) Generatori di documentazione

12) Strumenti per analizzare la copertura del codice

13) Strumenti per l'integrazione continua

14) Mezzi di test automatizzati

15) Sistemi di controllo della versione e altri.

Va notato che vengono create anche shell per la creazione di programmi applicativi programmi strumentali e quindi possono essere classificati come programmi applicativi. Consideriamo brevemente lo scopo di alcuni programmi di attrezzaggio.

Conclusione

Quindi, riassumendo tutto quanto sopra, va notato che il software di tooling è uno dei tipi di software, che possiede i suoi compiti e funzioni generali.

Tuttavia, essendo un tipo di software altamente specializzato, ha un certo insieme di proprietà e funzioni uniche che forniscono una soluzione ai suoi problemi intrinseci.

È necessario notare la tendenza emergente a semplificare il processo di programmazione e creare una certa sottoclasse: la programmazione semiprofessionale per scopi applicati.

Questo è ciò che consentirà a un utente di computer esperto, ma non a un programmatore professionista, di creare alcune applicazioni e piccoli file eseguibili nell'ambiente Microsoft Office, utilizzati principalmente per scopi di contabilità e gestione dei documenti nelle piccole aziende.

È a questo scopo che Microsoft ha sviluppato il pacchetto software Visual Basic for Application, che semplifica la programmazione e consente agli utenti di impegnarsi nella programmazione dell'applicazione, non ai programmatori. Questa opportunità è stata implementata principalmente creando una sezione del programma - "Script Editor" e la possibilità di registrare ed eseguire "Macro" come un tipo separato moduli programmabili graficamente. È stata implementata la possibilità di creare applicazioni con un'interfaccia grafica per MSWindows. Anche il vantaggio di questo tipo di software di tooling è la sua semplice sintassi, permettendoti di imparare molto velocemente la lingua e usarla per programmare in tutto applicazioni standard Microsoft Office.

Pertanto, è difficile sopravvalutare l'importanza della strumentazione in generale e di Visual Basic for Application in particolare, sebbene si verifichino anche le carenze, come menzionato sopra. Ma questi non sono piuttosto nemmeno aspetti negativi del prodotto, ma linee guida per un ulteriore miglioramento del supporto strumentale nella persona di Visual Basic for Application.

Elenco delle fonti utilizzate

1. Linguaggi algoritmici tempo reale / Ed. Young S. / 2004

2. Edizione russa di PC Magazine №2 2008. Computer oggi.

3. Informatica. / Ed. Mogilev A.V., Pak N.I., Henner E.K / - M.: ACADEMIA, 2000.

4. Computer Science and Information Technology: Libro di testo / Ed. Romanova D.Yu. / Eksmo Publishing House, 2007.

5. L'ultima enciclopedia di un personal computer / Ed. Leontyeva V. / Mosca, 1999. - 271 p.

6. Nuovi linguaggi di programmazione e tendenze del loro sviluppo / Ed. V. Ushkova / 2001

7. Pedagogia / Ed. Pidkasistogo P.I. / - M.: Pedagogical Society of Russia, 2000.

8. Programmazione per Microsoft Excel 2000 in 21 giorni. / Ed. Harisa M. / - M.: Williams, 2000.

9. Simonovich S. Informatica: un corso base. Manuale. per le università. San Pietroburgo, Peter, 2002

10. Con Excel 2000, nessun problema. / Ed. Kowalski / - M.: Binom, 2000.

11. "Lavoro efficace in Windows 98" / Ed. Stinson K. / 2000. - 247 p.

12. Linguaggi di programmazione. libro 5 / Ed. Vaulina A.S. / 2003

13. Linguaggi di programmazione: sviluppo e implementazione / Ed. Terrence P. / 2001

14. Libro di testo elettronico sull'informatica. Alekseev E.G. http://www.stf.mrsu.ru/economic/lib/Informatics/text/Progr.html\

Il software dello strumento, come un tipo speciale di software, è caratterizzato da generale e specifico

funziona come per tutti i software in generale. Abbiamo discusso le funzioni generali sopra e le funzioni specializzate inerenti solo in questo tipo i programmi sono:

1. Creazione del testo del programma sviluppato utilizzando parole in codice appositamente stabilite (linguaggio di programmazione), nonché un certo insieme di simboli e la loro posizione nel file creato - la sintassi del programma.

2. Traduzione del testo il programma in fase di creazione in codice orientato alla macchina disponibile per il riconoscimento del computer. Nel caso di una quantità significativa del programma creato, è diviso in moduli separati e ciascuno dei moduli viene tradotto separatamente.

3. Collegamento dei singoli moduli in un unico codice eseguibile, nel rispetto della struttura richiesta, garantendo il coordinamento dell'interazione delle singole parti tra loro.

4. Test e controllo del programma creato, identificazione ed eliminazione di formali, logiche e errori di sintassi, controllando i programmi per la presenza di codici proibiti, nonché valutando le prestazioni e il potenziale del programma creato.

Tipi di software strumentale

In base ai compiti assegnati al software strumentale si possono distinguere un gran numero di differenti tipologie di software strumentali:

1) Editor di testo

2) Ambienti di sviluppo integrati

4) Compilatori

5) Interpreti

6) Linker

7) Parser e Parser Generators (vedi Javacc)

8) Assemblatori

9) Debugger

10) Profiler

11) Generatori di documentazione

12) Strumenti per analizzare la copertura del codice

13) Strumenti per l'integrazione continua

14) Mezzi di test automatizzati

15) Sistemi di controllo della versione, ecc.

Va notato che le shell per la creazione di programmi applicativi vengono create anche da programmi strumentali e quindi possono essere classificate come programmi applicativi... Consideriamo brevemente lo scopo di alcuni programmi di attrezzaggio.

Editor di testo.

Editor di testo -- programma per computer, progettato per elaborare file di testo, come creare e apportare modifiche.

Tipi editor di testo.

Si distinguono convenzionalmente due tipi di editor: editor di testo in streaming einterattivo.

1) Streaming editor di testo

Gli editor di testo in streaming sono programmi per computer progettati per elaborare automaticamente i dati di testo di input ottenuti da un file di testo in conformità con le regole predefinite dagli utenti. Molto spesso, le regole lo sono espressioni regolari, in un dialetto specifico di questo particolare editor di testo. Un esempio di un tale editor di testo è Sed.

2) Editor di testi interattivi

Gli editor di testo interattivi sono una famiglia di programmi per computer progettati per apportare modifiche a file di testo nel modalità interattiva... Tali programmi consentono di visualizzare lo stato corrente dei dati di testo in un file e di eseguire varie azioni su di essi.

Spesso, gli editor di testo interattivi contengono significative funzionalità aggiuntive progettate per automatizzare alcune delle azioni di modifica o per modificare la visualizzazione dei dati di testo, a seconda della loro semantica. L'evidenziazione della sintassi è un esempio di quest'ultimo tipo di funzionalità.

Gli editor di testo servono per creare e modificare documenti di testo... I più comuni sono MS WORD, Lexicon. Le principali funzioni degli editor di testo sono:

1) lavora con frammenti di documenti,

2) inserimento di oggetti creati in altri programmi

3) impaginazione del testo del documento

4) inserimento e modifica delle tabelle

5) inserire e modificare le formule

6) formattazione del paragrafo

7) creazione automatica elenchi

8) creazione automatica di un sommario.

Esistono dozzine di editor di testo noti. I più accessibili sono NOTEPAD (notepad), WORDPAD, WORD. Il lavoro di un particolare editor di testo è solitamente determinato dalle funzioni, il cui scopo si riflette nelle voci di menu e nel sistema di aiuto.

Ambiente di sviluppo integrato

Integrated Development Environment (IDE) è un sistema software utilizzato dai programmatori per sviluppare software (software). Tipicamente un ambiente di sviluppo include:

1) editor di testo

2) compilatore e / o interprete

3) costruire strumenti di automazione

4) debugger.

A volte contiene anche strumenti per l'integrazione con i sistemi di controllo del codice sorgente e una varietà di strumenti per semplificare la progettazione di un'interfaccia utente grafica. Molti ambienti moderni Gli sviluppi includono anche un browser di classe, un ispettore di oggetti e un diagramma della gerarchia di classi da utilizzare nello sviluppo di software orientato agli oggetti. Sebbene esistano IDE progettati per diversi linguaggi di programmazione, come Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator o Microsoft Visual Studio, di solito un ambiente di sviluppo è progettato per un linguaggio di programmazione specifico, come Visual Basic, Delphi , Dev-C ++.

Un caso speciale di IDS - ambienti di sviluppo visivo, che includono la possibilità di modificare visivamente l'interfaccia del programma.

SDK (dall'inglese Software Development Kit) o \u200b\u200b"devkit": una serie di strumenti di sviluppo che consente agli specialisti del software di creare applicazioni per uno specifico pacchetto software, software, strumenti di sviluppo di base, piattaforma hardware, sistema informatico, console per videogiochi, sistemi operativi e altre piattaforme.

Il programmatore di solito ottiene l'SDK direttamente dallo sviluppatore della tecnologia o del sistema di destinazione. L'SDK viene spesso distribuito su Internet. Molti SDK vengono distribuiti gratuitamente per incoraggiare gli sviluppatori a utilizzare la tecnologia o la piattaforma.

I fornitori di SDK a volte sostituiscono il termine Software in Software Development Kit con una parola più precisa. Ad esempio, Microsoft e Apple forniscono DDK (Driver Development Kit) per lo sviluppo di driver di periferica e PalmSource chiama i suoi strumenti di sviluppo PalmOS Development Kit (PDK).

Esempi di SDK:

5) Java Development Kit

6) Opera Devices SDK

Compilatori.

Compilatore -

1) Il programma o l'hardware che esegue la compilazione.

2) Il programma macchina utilizzato per la compilazione.

3) Un traduttore che converte un programma scritto nella lingua di origine in un modulo oggetto.

4) Un programma che traduce un programma in linguaggio di alto livello in un programma in linguaggio macchina equivalente.

5) Un programma progettato per tradurre un linguaggio di alto livello in codice assoluto, o talvolta in linguaggio assembly. Informazioni di input per il compilatore ( fonte) è una descrizione di un algoritmo o di un programma in un linguaggio orientato ai problemi e l'output del compilatore è una descrizione equivalente di un algoritmo in un linguaggio orientato alla macchina (codice oggetto).

Compilazione -

1) Traduzione del programma in un linguaggio vicino alla macchina.

2) Traduzione di un programma scritto nella lingua di origine in un modulo oggetto. Implementato dal compilatore.

Compila - trasmetti programma macchina da un linguaggio orientato ai problemi a un linguaggio orientato alle macchine.

Tipi di compilatore:

1) Vettorializzazione... Traduce il codice sorgente in codice macchina di computer dotati di un processore vettoriale.

2) Flessibile. È modulare, basato su fogli di calcolo e programmato in un linguaggio di alto livello o implementato con un compilatore compilatore.

3) Dialogo.

4) Incrementale. Traduce nuovamente i frammenti di programma e le aggiunte senza ricompilare l'intero programma.

5) Interpretariato (passo dopo passo). Esegue sequenzialmente la compilazione indipendente di ogni singola istruzione (comando) del programma sorgente.

6) Compilatore compilatore. Un traduttore che accetta una descrizione formale di un linguaggio di programmazione e genera un compilatore per questo linguaggio.

7) Debug. Elimina alcuni tipi di errori di sintassi.

8) Residente. Risiede nella memoria principale ed è disponibile per essere riutilizzato da molte attività.

9) Autocompilazione. È scritto nella stessa lingua da cui viene eseguita la trasmissione.

10) Universale. Basato su una descrizione formale della sintassi e della semantica del linguaggio di input. Componenti tali compilatori sono: kernel, caricatori sintattici e semantici.

Tipi di compilazione:

1) Lotto... Compilazione di diversi moduli sorgente in un elemento di lavoro.

2) Riga per riga.

3) Condizionale. Una compilation in cui il testo tradotto dipende dalle condizioni specificate nel programma sorgente. Quindi, a seconda del valore di una costante, puoi attivare o disattivare la traduzione di una parte del testo del programma.

Struttura del compilatore.

Il processo di compilazione consiste nei seguenti passaggi:

1) Analisi lessicale. In questa fase, la sequenza di caratteri nel file di origine viene convertita in una sequenza di token.

2) Analisi sintattica (grammaticale). La sequenza di token viene convertita in un albero di analisi.

3) Analisi semantica. L'albero di analisi viene elaborato al fine di stabilire la sua semantica (significato) - ad esempio, legando identificatori alle loro dichiarazioni, tipi, controllo di compatibilità, determinazione dei tipi di espressioni, ecc. Il risultato è solitamente chiamato "rappresentazione / codice intermedio" e può essere aumentato da un albero di analisi , un nuovo albero, un insieme astratto di comandi o qualcos'altro conveniente per ulteriori elaborazioni.

4) Ottimizzazione. I costrutti ridondanti vengono rimossi e il codice viene semplificato preservandone il significato. L'ottimizzazione può essere a diversi livelli e fasi, ad esempio sul codice intermedio o sul codice macchina finale.

5) Generazione del codice. Il codice della lingua di destinazione viene generato dalla rappresentazione intermedia.

Nelle implementazioni concrete del compilatore, queste fasi possono essere separate o combinate in una forma o nell'altra.

Trasmissione e composizione.

Un'importante caratteristica storica del compilatore, riflessa nel suo nome (inglese compilare - mettere insieme, comporre), era che poteva produrre e collegare (cioè conteneva due parti: un traduttore e un linker). Ciò è dovuto al fatto che la compilazione separata e il collegamento come fase separata dell'assembly sono emersi molto più tardi rispetto alla comparsa dei compilatori. A questo proposito, invece del termine "compilatore", il termine "traduttore" è talvolta usato come sinonimo: o nella vecchia letteratura, o quando si vuole enfatizzare la sua capacità di tradurre un programma in codice macchina (e viceversa, il termine "compilatore" è usato per enfatizzare la capacità di compilare da molti file uno).

Interpreti.

Interprete (linguaggio di programmazione) -

1) Un programma o hardware che esegue l'interpretazione.

2) Il tipo di traduttore che esegue l'elaborazione operatore per operatore (comando per comando) e l'esecuzione del programma o della richiesta originale (al contrario di un compilatore che traduce l'intero programma senza eseguirlo).

3) Programma (a volte hardware), che analizza i comandi o le istruzioni del programma e li esegue immediatamente.

4) Un processore di linguaggio che analizza riga per riga programma originale e simultaneamente esegue le azioni prescritte e non forma un programma compilato in linguaggio macchina, che viene successivamente eseguito.

Tipi di interpreti.

Interprete semplice analizza ed esegue immediatamente (effettivamente interpreta) il programma comando per comando (o riga per riga), poiché il suo codice sorgente arriva all'input dell'interprete. Il vantaggio di questo approccio è la risposta immediata. Lo svantaggio è che un tale interprete rileva errori nel testo del programma solo quando tenta di eseguire un comando (o una riga) con un errore.

Un interprete di un tipo di compilazione è un sistema di un compilatore che traduce il codice sorgente di un programma in una rappresentazione intermedia, ad esempio, in bytecode o p-code, e un interprete stesso che esegue il codice intermedio risultante (la cosiddetta macchina virtuale). Il vantaggio di tali sistemi è la maggiore velocità di esecuzione del programma (dovuta alla rimozione dell'analisi del codice sorgente in un passaggio separato, una tantum, e la riduzione al minimo di questa analisi nell'interprete). Svantaggi: maggiore richiesta di risorse e richiesta di codice sorgente corretto. Viene utilizzato in linguaggi come Java, PHP, Python, Perl (viene utilizzato bytecode), REXX (viene salvato il risultato dell'analisi del codice sorgente), nonché in vari DBMS (viene utilizzato p-code).

Nel caso di suddividere l'interprete di un tipo di compilazione in componenti, si ottengono un compilatore di linguaggio e un semplice interprete con analisi ridotta al minimo del codice sorgente. Inoltre, il codice sorgente per un tale interprete non deve essere in un formato di testo o essere un bytecode che solo questo interprete comprende, può essere il codice macchina di qualche piattaforma hardware esistente. Ad esempio, macchine virtuali come QEMU, Bochs, VMware includono interpreti per il codice macchina dei processori x86.

Alcuni interpreti (ad esempio, per Lisp, Scheme, Python, BASIC e altri) possono lavorare in modalità di dialogo o il cosiddetto ciclo di lettura-valutazione-stampa (REPL). In questa modalità, l'interprete legge il costrutto completo del linguaggio (ad esempio, s-expression in Lisp), lo esegue, stampa i risultati e quindi attende che l'utente inserisca il costrutto successivo.

Unico è il linguaggio Forth, in grado di lavorare sia nella modalità di interpretazione che di compilazione dei dati di input, consentendo di passare da una modalità all'altra in un momento arbitrario, sia durante la traduzione del codice sorgente che durante l'esecuzione dei programmi.

Va anche notato che le modalità di interpretazione possono essere trovate non solo nel software ma anche nell'hardware. Quindi, molti microprocessori interpretano il codice macchina utilizzando microprogrammi incorporati e processori x86, a partire da Pentium (ad esempio, su architettura Intel P6), durante l'esecuzione del codice macchina, viene preliminarmente tradotto in un formato interno (in una sequenza di micro-operazioni).

Algoritmo per un semplice interprete:

2. rivedere le istruzioni e determinare l'azione appropriata;

3. intraprendere l'azione appropriata;

4.Se la condizione di conclusione del programma non viene raggiunta, leggere l'istruzione successiva e andare al passaggio 2.

Vantaggi e svantaggi degli interpreti.

Vantaggi:

1) Grandeportabilità dei programmi interpretati: il programma verrà eseguito su qualsiasi piattaforma che abbia un interprete corrispondente.

2) Di norma, mezzi più perfetti e visivi per diagnosticare gli errori nei codici sorgente.

3) Semplificazione del debug dei codici sorgente del programma.

4) Dimensioni del codice più piccole rispetto al codice macchina ottenuto dopo i compilatori convenzionali.

Svantaggi:

1) Un programma interpretato non può essere eseguito separatamente senza un programma interprete. L'interprete stesso può essere molto compatto.

2) Il programma interpretato è più lento perché l'analisi intermedia del codice sorgente e la programmazione della sua esecuzione richiede tempo aggiuntivo rispetto all'esecuzione diretta del codice macchina in cui il codice sorgente potrebbe essere compilato.

3) Non esiste praticamente alcuna ottimizzazione del codice, il che porta a ulteriori perdite nella velocità dei programmi interpretati.

Linker.

Linker (anche un linker, linker) - un programma che esegue il collegamento - prende come input uno o più moduli oggetto e raccoglie un modulo eseguibile da essi.

Per collegare i moduli, il linker utilizza le tabelle dei nomi generate dal compilatore in ciascuno dei moduli oggetto. Tali nomi possono essere di due tipi:

1) Nomi definiti o esportati: funzioni e variabili definite in questo modulo e fornite per essere utilizzate da altri moduli.

2) Nomi non definiti o importati: funzioni e variabili a cui il modulo fa riferimento, ma non le definisce internamente.

Il compito del linker è risolvere i riferimenti a nomi non definiti in ogni modulo. Per ogni nome importato, la sua definizione si trova in altri moduli, la menzione del nome viene sostituita con il suo indirizzo.

Il linker in genere non controlla il tipo e il numero di parametri di procedure e funzioni. Se è necessario combinare moduli oggetto di programmi scritti in linguaggi fortemente tipizzati, i controlli necessari devono essere eseguiti da un'utilità aggiuntiva prima di avviare il linker.

Assemblatore.

Assemblatore (dall'inglese assembler - assembler) - un programma per computer, un compilatore del codice sorgente di un programma scritto in linguaggio assembly in un programma in linguaggio macchina.

Come il linguaggio stesso (assemblatore), gli assemblatori, di regola, sono specifici per una particolare architettura, sistema operativo e variante di sintassi del linguaggio. Allo stesso tempo, esistono assemblatori multipiattaforma o completamente universali (più precisamente universali limitati, perché è impossibile scrivere programmi indipendenti dall'hardware in un linguaggio di basso livello) che possono funzionare su piattaforme e sistemi operativi diversi. Tra questi ultimi, si può anche individuare un gruppo di cross-assembler in grado di assemblare codice macchina e moduli eseguibili (file) per altre architetture e sistemi operativi.

L'assemblaggio potrebbe non essere la prima e non l'ultima fase sulla strada per ottenere un modulo di programma eseguibile. Pertanto, molti compilatori di linguaggi di programmazione di alto livello producono il risultato sotto forma di un programma in linguaggio assembly, che viene ulteriormente elaborato dall'assembler. Inoltre, il risultato dell'assembly potrebbe non essere un eseguibile, ma un modulo oggetto contenente parti sparse e non correlate di codice macchina e dati di programma, da cui (o da diversi moduli oggetto) può essere successivamente collegato con l'aiuto di un programma linker ("linker") file eseguibile.

Un debugger o debugger è un modulo dell'ambiente di sviluppo o un'applicazione separata progettata per trovare errori in un programma. Il debugger consente di eseguire la traccia, monitorare, impostare o modificare i valori delle variabili durante l'esecuzione del programma, impostare e rimuovere i punti di interruzione o le condizioni di arresto e altro ancora.

Elenco dei debugger.

1) AQtime è un debugger commerciale per applicazioni create per .NET Framework versioni 1.0, 1.1, 2.0, 3.0, 3.5 (comprese applicazioni ASP.NET), nonché per applicazioni Windows a 32 e 64 bit.

2) DTrace è un framework di tracciamento dinamico per Solaris, OpenSolaris, FreeBSD, Mac OS X e QNX.

3) Electric Fence è un debugger di memoria.

4) GNU Debugger (GDB) è un debugger di programmi del progetto GNU.

5) IDA è un potente disassemblatore e debugger di basso livello per i sistemi operativi Windows e Linux.

6) Microsoft Visual Studio è un ambiente di sviluppo software che include strumenti di debug di Microsoft.

7) OllyDbg è un debugger gratuito di basso livello per i sistemi operativi Windows.

8) SoftICE è un debugger di basso livello per i sistemi operativi Windows.

9) Sun Studio è un ambiente di sviluppo software che include il debugger dbx per i sistemi operativi Solaris e Linux di Sun Microsystems.

10) Dr. Watson è un debugger standard di Windows che consente di creare dump della memoria.

11) TotalView è uno dei debugger commerciali per UNIX.

12) WinDbg è un debugger gratuito di Microsoft.

Generatore di documentazione - un programma o un pacchetto software che consente di ricevere documentazione destinata ai programmatori (documentazione API) e / o agli utenti finali del sistema, secondo un codice sorgente appositamente commentato e, in alcuni casi, per moduli eseguibili (ottenuti dall'output del compilatore) ...

Tipicamente, il generatore analizza il codice sorgente del programma, evidenziando le costruzioni sintattiche corrispondenti agli oggetti significativi del programma (tipi, classi e loro membri / proprietà / metodi, procedure / funzioni, ecc.). L'analisi utilizza anche meta-informazioni sugli oggetti programma presentati sotto forma di commenti di documentazione. Sulla base di tutte le informazioni raccolte, la documentazione già pronta viene formata, di regola, in uno dei formati generalmente accettati: HTML, HTMLHelp, PDF, RTF e altri.

Commenti alla documentazione.

Un commento di documentazione è un file

Il software di tooling oi sistemi di programmazione sono sistemi per automatizzare lo sviluppo di nuovi programmi in un linguaggio di programmazione. Nel caso più generale, per creare un programma nel linguaggio di programmazione scelto (linguaggio di programmazione di sistema), è necessario disporre dei seguenti componenti: 1. Un editor di testo per creare un file con il codice sorgente del programma. 2. Compilatore o interprete. Il testo sorgente viene tradotto in codice oggetto intermedio utilizzando un programma di compilazione. Il codice sorgente di un programma di grandi dimensioni è costituito da diversi file moduli(file con testi di origine). Ogni modulo viene compilato in un file di codice oggetto separato, che deve quindi essere unito in un unico insieme. 3. Un linker o collector che collega i moduli oggetto e genera un'applicazione funzionante - codice eseguibile in uscita. Un codice eseguibile è un programma completo che può essere eseguito su qualsiasi computer dotato del sistema operativo per il quale è stato creato il programma. In genere, il file risultante ha l'estensione .EXE o .COM. 4. Recentemente si sono diffusi metodi di programmazione visiva (con l'aiuto di linguaggi di scripting), incentrati sulla creazione di applicazioni Windows. Questo processo è automatizzato in ambienti di progettazione rapida. In questo caso, vengono utilizzati componenti visivi già pronti, che vengono configurati utilizzando editor speciali. Gli editor di visual design più popolari (sistemi di programmazione software che utilizzano supporti visivi):

Borland Delphi - progettato per risolvere quasi tutti i problemi di programmazione delle applicazioni

Borland C ++ Builder è un ottimo strumento per lo sviluppo DOS e Applicazioni Windows

Microsoft Visual Basic è uno strumento popolare per la creazione di programmi Windows

 Microsoft Visual C ++: questo strumento consente di sviluppare qualsiasi applicazione eseguita su un sistema operativo come Microsoft Windows

1.3.2. Sistemi di file

Tutti i sistemi operativi moderni prevedono la creazione di un file system, progettato per memorizzare i dati su dischi e fornire l'accesso ad essi. Le principali funzioni del file system possono essere suddivise in due gruppi:

 Funzioni per lavorare con i file (creazione, eliminazione, ridenominazione di file, ecc.)

 Funzioni per lavorare con i dati memorizzati nei file (scrittura, lettura, ricerca di dati, ecc.)

È noto che i file vengono utilizzati per organizzare e memorizzare i dati sui supporti del computer. Un file è una sequenza di un numero arbitrario di byte con un nome proprio univoco o un'area denominata sul supporto della macchina. La strutturazione di un set di file sul supporto della macchina viene effettuata utilizzando directory in cui sono memorizzati gli attributi (parametri e dettagli) dei file. Una directory può contenere molte sottodirectory, dando luogo a strutture di file ramificate sui dischi. L'organizzazione dei file in una struttura ad albero è chiamata file system. L'organizzazione del file system è tabellare. La posizione del file su disco è memorizzata nella File Allocation Table (FAT). Questa tabella si trova all'inizio del volume. Per proteggere il volume, su di esso vengono memorizzate due copie della FAT. Se la prima copia di FAT è danneggiata utilità del disco può utilizzare la seconda copia per ripristinare il volume. In linea di principio, FAT è simile al sommario di un libro, poiché il sistema operativo lo utilizza per trovare un file e determinare i cluster che questo file occupa sul disco rigido. La più piccola unità di archiviazione fisica è un settore. La dimensione del settore è 512 byte. Poiché la dimensione della tabella FAT è limitata, non è possibile fornire l'indirizzamento a ciascun settore separato per i dischi più grandi di 32 MB. A questo proposito, i gruppi di settori sono convenzionalmente combinati in cluster. Un cluster è la più piccola unità di indirizzamento dei dati. La dimensione del cluster, a differenza della dimensione del settore, non è fissa e dipende dalla capacità del disco.

Inizialmente, dischi floppy e piccoli dischi rigidi (meno di 16 MB) utilizzavano la versione a 12 bit di FAT (chiamata FAT12). Quindi MS-DOS ha introdotto una versione a 16 bit di FAT per unità più grandi. I sistemi operativi MS DOS, Win 95, Win NT implementano campi a 16 bit nelle tabelle di allocazione dei file. Il file system FAT32 è stato introdotto in Windows 95 OSR2 ed è supportato in Windows 98 e Windows 2000. FAT32 è una versione avanzata di FAT progettata per l'utilizzo su volumi superiori a 2 GB. FAT32 fornisce supporto per unità fino a 2 TB e un uso più efficiente dello spazio su disco. FAT32 utilizza cluster più piccoli per migliorare l'efficienza dello spazio su disco. Windows XP utilizza FAT32 e NTFS. Direzione più promettente nello sviluppo file system è stata la transizione a NTFS (New Technology File System) con nomi di file lunghi e un sistema di sicurezza affidabile. Il volume NTFS non è limitato. NTFS riduce al minimo la quantità di spazio su disco sprecato scrivendo piccoli file su cluster di grandi dimensioni. Inoltre, NTFS consente di risparmiare spazio su disco comprimendo il disco stesso, cartelle separate e file.

In base ai metodi di denominazione dei file, esistono nomi "brevi" e "lunghi". Secondo la convenzione MS-DOS, il modo di denominare i file su PC IBM era la convenzione 8.3. il nome del file è composto da due parti: il nome stesso e l'estensione del nome. Il nome del file ha 8 caratteri e la sua estensione - 3 caratteri. Il nome è separato dall'estensione da un punto. Sia il nome che l'estensione possono includere solo caratteri alfanumerici dell'alfabeto latino. I nomi dei file scritti secondo la convenzione 8.3 sono considerati "brevi". Con l'avvento del sistema operativo Windows 95, è stato introdotto il concetto di nome “lungo”. Questo nome può contenere fino a 256 caratteri. Questo è sufficiente per creare nomi di file significativi. Un nome "lungo" può contenere qualsiasi carattere tranne nove caratteri speciali: \\ /: *? "< > |. Nel nome sono consentiti spazi e più punti. Il nome del file termina con un'estensione di tre caratteri. L'estensione viene utilizzata per classificare i file in base al tipo. L'unicità del nome file è assicurata dal fatto che il nome file completo è il nome file corretto insieme al percorso per accedervi. Percorso del file inizia con il nome del dispositivo e include tutti i nomi delle directory (cartelle) attraverso cui passa. Il carattere "\\" (la barra rovesciata è una barra rovesciata) viene utilizzato come separatore. Ad esempio: D: \\ Documents and Settings \\ ТВА \\ My Documents \\ lesson-tva \\ robots.txt Nonostante il fatto che i dati sulla posizione del file siano memorizzati in una tabella struttura, vengono presentati all'utente sotto forma di una struttura gerarchica: è più conveniente per le persone e il sistema operativo si occupa di tutte le trasformazioni necessarie. La funzione di manutenzione della struttura dei file include le seguenti operazioni che si verificano sotto il controllo del sistema operativo:

• creazione di file e assegnazione di nomi;

 creare cataloghi (cartelle) e denominarli;

• rinominare file e directory (cartelle);

• copiare e spostare file tra i dischi del computer e tra le directory (cartelle) di un disco;

• eliminazione di file e directory (cartelle);

 navigazione nella struttura dei file per accedere a un dato file, directory (cartella);

 gestione degli attributi dei file.

LA CAMPANA

C'è chi ha letto questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam