Finestre.  Virus.  I Quaderni.  Internet.  ufficio.  Utilità.  Autisti

Il software degli strumenti o i 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 selezionato (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 un codice oggetto intermedio utilizzando un programma di compilazione. Il codice sorgente di un programma di grandi dimensioni è costituito da diversi moduli(file sorgenti). Ogni modulo è compilato in un file separato con codice oggetto, che poi deve essere combinato in una singola unità. 3. Un linker o assemblatore che collega i moduli oggetto e genera un'applicazione funzionante in uscita - codice eseguibile. Un codice eseguibile è un programma completo che può essere eseguito su qualsiasi computer dotato del sistema operativo per il quale è stato creato il programma. Di norma, il file risultante ha l'estensione .EXE o .COM. 4. Recentemente si sono diffusi metodi di programmazione visiva (utilizzando linguaggi di scripting) orientati alla creazione di applicazioni Windows. Questo processo è automatizzato negli ambienti di progettazione rapida. In questo caso vengono utilizzati componenti visivi già pronti, che vengono configurati utilizzando editor speciali. Gli editor più popolari (sistemi di programmazione che utilizzano strumenti visivi) per il visual design:

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

 Borland C++ Builder è uno strumento eccellente per lo sviluppo di DOS e Applicazioni Windows

 Microsoft Visual Basic è uno strumento diffuso per la creazione di programmi Windows.

 Microsoft Visual C++: questo strumento consente di sviluppare qualsiasi applicazione che viene eseguita in un ambiente del sistema operativo come Microsoft Windows

1.3.2. File system

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

 Funzioni per lavorare con i file (creare, eliminare, rinominare 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 archiviare i dati sui supporti della macchina. Un file è una sequenza di un numero arbitrario di byte che ha un proprio nome univoco o un'area denominata sul supporto della macchina. La strutturazione di un insieme di file sul supporto della macchina viene eseguita utilizzando directory in cui sono memorizzati gli attributi (parametri e dettagli) dei file. Una directory può includere molte sottodirectory, risultando in strutture di file ramificate sui dischi.L'organizzazione dei file in una struttura ad albero è chiamata file system. Il principio di organizzazione del file system è tabulare. Dove un file è memorizzato su un disco è memorizzato nella File Allocation Table (FAT). Questa tavola è posta all'inizio del volume. Per proteggere il volume, su di esso vengono memorizzate due copie della FAT. Se la prima copia FAT è danneggiata, le utilità del disco possono utilizzare la seconda copia per riparare il volume. FAT è simile al sommario di un libro in termini di come il sistema operativo lo utilizza per trovare il file e determinare i cluster che questo file occupa sul disco rigido. La più piccola unità fisica di archiviazione dei dati è un settore. La dimensione del settore è di 512 byte. Poiché la dimensione della tabella FAT è limitata, per dischi superiori a 32 MB non è possibile fornire l'indirizzamento a ogni singolo settore. A questo proposito, i gruppi di settori sono combinati condizionatamente 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.

All'inizio, floppy disk e dischi rigidi di piccole dimensioni (meno di 16 MB) utilizzavano la versione a 12 bit di FAT (chiamata FAT12). MS-DOS ha quindi introdotto la 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 è un miglioramento di FAT progettato 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. Una direzione più promettente per lo sviluppo file systemè stata la transizione a NTFS (New Technology Sistema di file- un nuovo file system tecnologico) con nomi di file lunghi e un sistema di sicurezza affidabile. La dimensione di una partizione NTFS non è limitata. NTFS minimizza il volume spazio sul disco, perso a causa della scrittura di file di piccole dimensioni su cluster di grandi dimensioni. Inoltre, NTFS consente di risparmiare spazio su disco comprimendo il disco stesso, singole cartelle e file.

Secondo i modi di nominare i file, ci sono nomi "brevi" e "lunghi". Secondo la convenzione adottata in MS-DOS, il modo di denominare i file sui computer PC IBM era la convenzione 8.3., ovvero Il nome del file è composto da due parti: il nome stesso e l'estensione del nome. Il nome del file è di 8 caratteri e l'estensione è di 3 caratteri. Il nome è separato dall'estensione da un punto. Sia il nome che l'estensione possono includere solo caratteri alfanumerici latini. I nomi di 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 per tipo. L'univocità del nome del file è garantita dal fatto che il nome completo del file è considerato il nome del file insieme al suo percorso. Percorso del file inizia con il nome del dispositivo e include tutti i nomi di directory (cartelle) che attraversa. Il carattere "\" viene utilizzato come separatore (barra rovesciata - barra rovesciata).Ad esempio: D:\Documents and Settings\TVA\My Documents\lessons-tva\ struttura robots.txt, 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:

 creare file e denominarli;

 creazione di cataloghi (cartelle) e denominazione degli stessi;

 rinominare file e directory (cartelle);

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

 cancellazione di file e directory (cartelle);

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

 gestione degli attributi dei file.

Il tool software, in quanto tipo speciale di software, è caratterizzato da generale e particolare

funzioni, come per tutti i software in generale. Le funzioni generali sono considerate da noi sopra e le funzioni specializzate inerenti solo questo tipo i programmi sono:

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

2. Traduzione del testo del programma creato in un codice orientato alla macchina accessibile per il riconoscimento informatico. Nel caso di un volume significativo 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 necessaria, garantendo il coordinamento dell'interazione delle singole parti tra loro.

4. Test e controllo del programma creato, rilevamento ed eliminazione di errori formali, logici e sintattici, controllo dei programmi per codici proibiti, nonché valutazione delle prestazioni e del potenziale del programma creato.

Tipi di software per strumenti

In base ai compiti assegnati al software strumentale, si possono distinguere numerose tipologie diverse 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) Debug

10) Profilatori

11) Generatori di documenti

12) Strumenti di analisi della copertura del codice

13) Strumenti di integrazione continua

14) Strumenti 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 di strumenti e quindi possono essere classificate come programmi applicativi. Consideriamo brevemente lo scopo di alcuni programmi strumentali.

Editor di testo.

Editor di testo-- un programma per computer progettato per l'elaborazione di file di testo, come la creazione e l'esecuzione di modifiche.

Tipi di editor di testo.

Convenzionalmente, ci sono due tipi di editor: editor di testo in streaming e interattivo.

1) Editor di testo in streaming

Gli editor di testo in streaming lo sono programmi per computer a cui sono destinati trattamento automatizzato immettere dati di testo ottenuti da un file di testo, secondo regole predefinite dagli utenti. Molto spesso, le regole sono espressioni regolari, in un dialetto specifico di quel particolare editor di testo. Un esempio di tale editor di testo è l'editor Sed.

2) Editor di testo interattivi

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

Spesso gli editor di testo interattivi contengono funzionalità aggiuntive significative progettate per automatizzare alcune delle azioni di modifica o per apportare modifiche alla 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 sono progettati per creare e modificare documenti di testo. I più comuni sono MS WORD, Lessico. Le funzioni principali degli editor di testo sono:

1) lavorare con frammenti di documenti,

2) inserire oggetti creati in altri programmi

3) impaginazione del testo del documento

4) inserimento e modifica tabelle

5) inserimento e modifica delle formule

6) formattazione del paragrafo

7) creazione automatica elenchi

8) creazione automatica di un sommario.

Sono note dozzine di editor di testo. I più accessibili sono NOTEPAD(blocco note), 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 (SW). L'ambiente di sviluppo di solito include:

1) editor di testo

2) compilatore e/o interprete

3) strumenti di automazione dell'assemblaggio

4) debugger.

A volte contiene anche strumenti per l'integrazione con i sistemi di controllo della versione e vari strumenti per semplificare la costruzione GUI utente. Molti ambienti di sviluppo moderni includono anche un browser di classi, un controllore di oggetti e un diagramma della gerarchia di classi da utilizzare nello sviluppo di software orientato agli oggetti. Sebbene esistano ambienti di sviluppo progettati per più linguaggi di programmazione come Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator o Microsoft Visual Studio, un ambiente di sviluppo è solitamente destinato a un linguaggio di programmazione specifico come Visual Basic, Delphi, Dev-C++ .

Un caso speciale di ISR ​​sono gli ambienti di sviluppo visivo, che includono la possibilità di modificare visivamente l'interfaccia del programma.

SDK(dall'inglese Software Development Kit) o ​​"devkit" - un insieme di strumenti di sviluppo che consente agli specialisti del software di creare applicazioni per uno specifico pacchetto software, strumenti di sviluppo software, 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. Spesso l'SDK è distribuito su Internet. Molti SDK sono distribuiti gratuitamente per incoraggiare gli sviluppatori a utilizzarli questa tecnologia o piattaforma.

I fornitori di SDK a volte sostituiscono il termine Software in Software Development Kit con altro parola esatta. Ad esempio, Microsoft e Apple forniscono Driver Development Kit (DDK) per lo sviluppo di driver di dispositivo, mentre PalmSource chiama il suo toolkit di sviluppo "PalmOS Development Kit (PDK)".

Esempi di SDK:

5) Kit di sviluppo Java

6) Opera Dispositivi SDK

Compilatori.

Compilatore --

1) Un programma o uno strumento hardware che esegue la compilazione.

2) Il programma macchina utilizzato per la compilazione.

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

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

5) Un programma progettato per tradurre un linguaggio di alto livello in codice assoluto o, a volte, in linguaggio assembly. Le informazioni di input per il compilatore (codice sorgente) sono una descrizione dell'algoritmo o di un programma in un linguaggio specifico del dominio e l'output del compilatore è una descrizione equivalente dell'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 sorgente in un modulo oggetto. Implementato dal compilatore.

Compila: traduce un programma macchina da un linguaggio specifico del dominio a un linguaggio specifico della macchina.

Tipi di compilatore:

1) Vettorizzazione. Traduce il codice sorgente nel codice macchina dei computer dotati di processore vettoriale.

2) Flessibile. Compilato in modo modulare, guidato da tabelle e programmato in un linguaggio di alto livello o implementato con un compilatore compilatore.

3) Dialogo.

4) Incrementale. Ritraduce i frammenti e le estensioni del programma senza ricompilare l'intero programma.

5) Interpretativo (passo dopo passo). Esegue in sequenza la compilazione indipendente di ogni singola istruzione (comando) del programma sorgente.

6) Compilatore di compilatori. Un traduttore che prende una descrizione formale di un linguaggio di programmazione e genera un compilatore per quel linguaggio.

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

8) Residente. Risiede permanentemente nella memoria principale ed è disponibile per il riutilizzo da parte di molte attività.

9) Autocompilato. Scritto nella stessa lingua da cui viene effettuata la trasmissione.

10) Universale. Basato su una descrizione formale della sintassi e della semantica del linguaggio di input. I componenti di tale compilatore sono: il kernel, caricatori sintattici e semantici.

Tipi di compilazione:

1) Lotto. Compilazione di più moduli di origine in un elemento di lavoro.

2) Riga per riga.

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

struttura del compilatore.

Il processo di compilazione si compone dei seguenti passaggi:

1) Analisi lessicale. A questo punto, la sequenza di caratteri nel file sorgente 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 per stabilire la sua semantica (significato), ad esempio l'associazione di identificatori alle loro dichiarazioni, tipi, controlli di compatibilità, determinazione dei tipi di espressione, ecc. Il risultato è solitamente chiamato "rappresentazione/codice intermedio" e può essere ampliato da un albero di analisi, un nuovo albero, un insieme astratto di comandi o qualcos'altro utile per un'ulteriore elaborazione.

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

5) Generazione del codice. Dalla rappresentazione intermedia viene generato il codice nella lingua di destinazione.

In implementazioni specifiche di compilatori, 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 compile -- assembla insieme, componi), era che poteva anche eseguire il collegamento (cioè conteneva due parti: un traduttore e un linker). Ciò è dovuto al fatto che la compilazione e il collegamento separati come fase separata dell'assemblaggio sono emersi molto più tardi dell'avvento dei compilatori. A questo proposito, al posto del termine "compilatore", viene talvolta usato come suo sinonimo il termine "traduttore": o nella vecchia letteratura, o quando si vuole sottolineare la sua capacità di tradurre un programma in codice macchina (e viceversa, usano il termine "compilatore" per enfatizzare la capacità di assemblare da molti file uno).

Interpreti.

Interprete (linguaggio di programmazione) --

1) Un programma o uno strumento tecnico che esegue l'interpretazione.

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

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

4) Un elaboratore di linguaggio che analizza il programma sorgente riga per riga e contemporaneamente esegue le azioni prescritte, e non forma un programma compilato in linguaggio macchina che viene successivamente eseguito.

Tipi di interpreti.

semplice interprete analizza ed esegue immediatamente (l'interpretazione stessa) il programma comando per comando (o riga per riga), man mano che 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 si tenta di eseguire un comando (o riga) con un errore.

Un interprete di tipo compilatore è un sistema di un compilatore che traduce il codice sorgente di un programma in una rappresentazione intermedia, ad esempio bytecode o p-code, e l'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 singolo separato e alla riduzione al minimo di questa analisi nell'interprete). Svantaggi: maggiori requisiti di risorse e requisiti per il codice sorgente corretto. Viene utilizzato in linguaggi come Java, PHP, Python, Perl (viene utilizzato il bytecode), REXX (viene salvato il risultato dell'analisi del codice sorgente), nonché in vari DBMS (viene utilizzato il codice p).

Se l'interprete di un tipo compilante è suddiviso in componenti, si ottengono un compilatore di linguaggio e un semplice interprete con analisi del codice sorgente ridotta al minimo. 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 una piattaforma hardware esistente. Per esempio, macchine virtuali come QEMU, Bochs, VMware include interpreti di codice macchina per processori della famiglia x86.

Alcuni interpreti (ad esempio per Lisp, Scheme, Python, BASIC e altri) possono lavorare in modalità dialogo o nel cosiddetto ciclo read-calculation-print (read-eval-print loop, REPL). In questa modalità, l'interprete legge un costrutto linguistico completo (ad esempio, espressione s in Lisp), lo esegue, stampa i risultati e quindi attende che l'utente immetta il costrutto successivo.

Il linguaggio Forth è unico, in grado di funzionare sia in modalità di interpretazione dei dati di input che di compilazione, consentendo di passare da una modalità all'altra in qualsiasi momento, sia durante la traduzione del codice sorgente che mentre i programmi sono in esecuzione.

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

L'algoritmo di un semplice interprete:

2. analizzare l'istruzione e determinare le azioni appropriate;

3. intraprendere azioni appropriate;

4. se non si raggiunge la condizione di terminazione del programma, leggere l'istruzione successiva e passare al punto 2.

Vantaggi e svantaggi degli interpreti.

Vantaggi:

1) Grande portabilità dei programmi interpretati: il programma verrà eseguito su qualsiasi piattaforma dotata di un interprete appropriato.

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

3) Semplificazione del debugging dei codici sorgente del programma.

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

Screpolatura:

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

2) Un programma interpretato viene eseguito più lentamente perché l'analisi intermedia del codice sorgente e la pianificazione della sua esecuzione richiede tempo aggiuntivo rispetto all'esecuzione diretta del codice macchina in cui il codice sorgente potrebbe essere compilato.

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

linker.

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

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

1) Nomi definiti o esportati: funzioni e variabili definite in un dato modulo e fornite per l'uso da parte di altri moduli.

2) Nomi non definiti o importati - funzioni e variabili a cui il modulo fa riferimento, ma non le definisce al suo interno.

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

Il linker normalmente non esegue il controllo del tipo o del conteggio dei parametri di procedura e funzione. 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'assemblatore inglese - 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 (assembler) stesso, gli assemblatori tendono ad essere 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, poiché è 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'assembly potrebbe non essere il primo o l'ultimo passaggio nel percorso 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'assemblatore. Inoltre, il risultato dell'assemblaggio potrebbe non essere un eseguibile, ma un modulo oggetto contenente parti separate e non collegate del codice macchina e dei dati del programma, da cui (o da diversi moduli oggetto) in futuro con l'aiuto di un programma linker (" linker") file eseguibile.

Un debugger o debugger è un modulo dell'ambiente di sviluppo o applicazione separata, progettato per trovare errori nel programma. Il debugger consente di scorrere la traccia, monitorare, impostare o modificare i valori delle variabili durante l'esecuzione del programma, impostare e rimuovere punti di interruzione o condizioni di interruzione e così via.

Elenco dei debugger.

1) AQtime è un debugger commerciale per applicazioni create per .NET Versione quadro 1.0, 1.1, 2.0, 3.0, 3.5 (comprese le applicazioni ASP.NET), nonché per le 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 -- debugger di memoria.

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

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

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

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

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

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

10) Dott. 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 Corporation.

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

Solitamente 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 del programma, presentate sotto forma di commenti documentanti. Sulla base di tutte le informazioni raccolte, viene formata una documentazione già pronta, solitamente in uno dei formati generalmente accettati: HTML, HTMLHelp, PDF, RTF e altri.

Commenti alla documentazione.

Un commento documentario è appositamente progettato

strumentale Software(IPO) - software progettato per essere utilizzato nella progettazione, sviluppo e manutenzione di programmi.

Strumenti applicati nella fase di sviluppo. Il tool software è un insieme di programmi utilizzati per aiutare i programmatori nel loro lavoro, per aiutare i responsabili dello sviluppo software nel loro desiderio di controllare il processo di sviluppo e i prodotti risultanti. I rappresentanti più famosi di questo software sono programmi di traduttori di linguaggi di programmazione che aiutano i programmatori a scrivere istruzioni per macchine. I programmi degli strumenti sono traduttori da Fortran, Cobol, Jovial, BASIC, APL e Pascal. Facilitano il processo di creazione di nuovi programmi di lavoro. Tuttavia, i traduttori di lingue sono solo la parte più conosciuta dei programmi di strumenti; ce ne sono moltissimi.

L'uso dei computer per aiutare a creare nuovi programmi è tutt'altro che ovvio per le persone che non sono programmatori professionisti. Capita spesso che i professionisti parlino di tool (fase di sviluppo) e software di sistema (fase di utilizzo) tutto d'un fiato, dando per scontato che chi non lo sapesse nei segreti della propria abilità sia a conoscenza di questo ruolo del tool software. Come nella fase di utilizzo (per i programmi applicativi), software di sistema funziona nella fase di sviluppo, ma solo in combinazione con gli strumenti. Il software degli strumenti o i 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 selezionato (linguaggio di programmazione di sistema), è necessario disporre dei seguenti componenti:

1. Editor di testo per la creazione di un file con il codice sorgente del programma.

2. Compilatore o interprete. Il testo sorgente viene tradotto in un codice oggetto intermedio utilizzando un programma di compilazione. Il testo sorgente di un programma di grandi dimensioni è costituito da diversi moduli (file con testi sorgente). Ogni modulo è compilato in un file separato con codice oggetto, che poi deve essere combinato in una singola unità.

3. Un linker o assemblatore che collega i moduli oggetto e genera un'applicazione funzionante - codice eseguibile.

Un codice eseguibile è un programma completo che può essere eseguito su qualsiasi computer dotato del sistema operativo per il quale è stato creato il programma. Di norma, il file risultante ha l'estensione .EXE o .COM.

Recentemente, si sono diffusi metodi di programmazione visiva (utilizzando linguaggi di scripting), incentrati sulla creazione di applicazioni Windows. Questo processo è automatizzato negli ambienti progettazione rapida. In questo caso vengono utilizzati componenti visivi già pronti, che vengono configurati utilizzando editor speciali.

Gli editor più popolari (sistemi di programmazione che utilizzano strumenti visivi) per il visual design:

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

Borland C++ Builder è uno strumento eccellente per lo sviluppo di applicazioni DOS e Windows.

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

Microsoft Visual C++: questo strumento consente di sviluppare qualsiasi applicazione eseguita in un ambiente operativo come Microsoft Windows

Pertanto, l'essenza del software degli strumenti è creare qualsiasi programma eseguibile, convertendo formalmente espressioni booleane in codice macchina eseguibile, nonché il suo controllo e correzione.

Compiti e funzioni del software dello strumento

Il tool software, in quanto tipo speciale di software, è caratterizzato da generale e particolare

funzioni, come per tutti i software in generale. Abbiamo discusso le funzioni generali sopra e le funzioni specializzate inerenti solo a questo tipo di programma sono:

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

2. Traduzione del testo del programma creato in un codice orientato alla macchina accessibile per il riconoscimento informatico. Nel caso di un volume significativo 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 necessaria, garantendo il coordinamento dell'interazione delle singole parti tra loro.

4. Test e controllo del programma creato, rilevamento ed eliminazione di errori formali, logici e sintattici, controllo dei programmi per codici proibiti, nonché valutazione delle prestazioni e del potenziale del programma creato.

Tipi di software per strumenti

In base ai compiti assegnati al software strumentale, si possono distinguere numerose tipologie diverse di software strumentali:

Editor di testo

Ambienti di sviluppo integrati

Compilatori

Interpreti

Collegatori

Parser e generatori di parser (vedi Javacc)

Assemblatori

Debug

Profiler

Generatori di documentazione

Strumenti di analisi della copertura del codice

Strumenti di integrazione continua

Strumenti di test automatici

Sistemi di controllo della versione, ecc.

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

Editor di testo.

Un editor di testo è un programma per computer progettato per l'elaborazione di file di testo, come la creazione e l'esecuzione di modifiche.

Composizione CAD

Il CAD è un sistema che combina mezzi tecnici, matematici e software, i cui parametri e caratteristiche sono scelti con la massima considerazione per le caratteristiche della progettazione ingegneristica e delle attività di costruzione. In CAD, la comodità di utilizzo dei programmi è assicurata attraverso l'uso di mezzi di comunicazione operativa tra un ingegnere e un computer, linguaggi speciali orientati ai problemi e la disponibilità di una base di informazioni e di riferimento.

I componenti strutturali del CAD sono sottosistemi che hanno tutte le proprietà dei sistemi e vengono creati come sistemi indipendenti. Si tratta di parti CAD selezionate in base ad alcuni criteri, che garantiscono l'adempimento di alcune attività di progettazione completate con la ricezione di soluzioni di progettazione e documenti di progettazione appropriati.

Secondo lo scopo del sottosistema CAD, sono divisi in due tipi: progettazione e manutenzione.

La progettazione include sottosistemi che eseguono procedure e operazioni di progettazione, ad esempio:

sottosistema layout macchina;

sottosistema per la progettazione di unità di assemblaggio;

Sottosistema di progettazione di parti;

· sottosistema di progettazione del circuito di controllo;

· sottosistema di progettazione tecnologica.

La manutenzione include sottosistemi progettati per mantenere le prestazioni dei sottosistemi di progettazione, ad esempio:

· sottosistema di visualizzazione grafica degli oggetti di design;

sottosistema di documentazione;

Sottosistema di recupero delle informazioni, ecc.

A seconda della relazione con l'oggetto di progettazione, si distinguono due tipi di sottosistemi di progettazione:

orientato agli oggetti (obiettivo);

Indipendente dall'oggetto (invariante).

I sottosistemi di oggetti includono sottosistemi che eseguono una o più procedure o operazioni di progettazione che dipendono direttamente da un oggetto di progettazione specifico, ad esempio:

sottosistema per la progettazione di impianti tecnologici;

sottosistema per la modellazione dinamica, struttura progettata, ecc.

I sottosistemi invarianti includono sottosistemi che eseguono procedure e operazioni di progettazione unificate, ad esempio:

sottosistema per il calcolo delle parti della macchina;

sottosistema per il calcolo delle condizioni di taglio;

sottosistema per il calcolo degli indicatori tecnici ed economici, ecc.

Il processo di progettazione è implementato in sottosistemi sotto forma di una determinata sequenza di procedure e operazioni di progettazione. La procedura di progettazione corrisponde a una parte del sottosistema di progettazione, a seguito della quale viene presa una determinata decisione di progettazione. Consiste in operazioni di progettazione elementari, ha un ordine saldamente stabilito della loro attuazione e mira a raggiungere un obiettivo locale nel processo di progettazione. Un'operazione di progettazione è intesa come una parte assegnata in modo condizionale della procedura di progettazione o un'azione elementare eseguita dal progettista nel processo di progettazione. Esempi di procedure di progettazione possono essere le procedure per lo sviluppo di un diagramma cinematico o di layout di una macchina utensile, tecnologia per la lavorazione di prodotti, ecc., ed esempi di operazioni di progettazione sono il calcolo delle quote, la soluzione di un'equazione, ecc.

L'unità strutturale dei sottosistemi CAD è assicurata da una rigorosa regolamentazione dei collegamenti tra diversi tipi di supporto, accomunati da una funzione target comune per questo sottosistema. Esistono i seguenti tipi di sicurezza:

supporto metodologico - documenti che riflettono la composizione, le regole per la selezione e il funzionamento degli strumenti di automazione della progettazione;

· supporto linguistico - linguaggi di progettazione, terminologia;

software matematico - metodi, modelli matematici, algoritmi;

software - documenti con testi di programma, programmi su supporti macchina e documenti operativi;

· supporto tecnico - dispositivi di apparecchiature informatiche e organizzative, mezzi di trasmissione dati, dispositivi di misurazione e altri e loro combinazioni;

· supporto informativo - documenti contenenti una descrizione delle procedure di progettazione standard, soluzioni di progettazione standard, elementi tipici, componenti, materiali e altri dati;

supporto organizzativo: regolamenti e istruzioni, ordini, personale e altri documenti che regolano la struttura organizzativa delle unità e la loro interazione con una serie di strumenti di automazione della progettazione.

· 64 tecnologie CALS.

Le tecnologie CALS servono come mezzo per integrare i sistemi automatizzati industriali in un unico sistema multifunzionale. Lo scopo dell'integrazione sistemi automatizzati progettazione e gestione è quello di aumentare l'efficienza della creazione e dell'uso di tecnologie complesse.

Nelle condizioni moderne della formazione del globale società dell'informazione il ruolo dell'informazione e Tecnologie informatiche nella preparazione di un futuro specialista aumenta in modo significativo. Nel prossimo futuro, il potenziale strategico della società non saranno le risorse energetiche, ma l'informazione e la conoscenza scientifica. L'informazione diventa la risorsa principale per lo sviluppo scientifico, tecnico e socio-economico della società, influisce in modo significativo sullo sviluppo accelerato della scienza, della tecnologia e di varie industrie, svolge un ruolo significativo nel processo di modernizzazione dell'istruzione. La caratteristica valore-semantica dell'istruzione universitaria e l'attività professionale degli specialisti dovrebbero esprimersi nella formazione di un ambiente professionale intellettuale che attui pienamente i compiti delle attività di ricerca e progettazione.

L'informatizzazione diffusa di tutti i tipi di attività umane: dai tradizionali compiti intellettuali di natura scientifica all'automazione delle attività produttive, commerciali, commerciali, bancarie e di altro tipo serve ad aumentare l'efficienza della produzione. In un'economia di mercato, la concorrenza viene mantenuta con successo solo dalle imprese che utilizzano le moderne tecnologie dell'informazione nelle loro attività.

Sono le tecnologie dell'informazione, insieme alle tecnologie avanzate di produzione materiale, che possono aumentare significativamente la produttività del lavoro e la qualità del prodotto e allo stesso tempo ridurre significativamente i tempi di lancio di nuovi prodotti che soddisfano le esigenze e le aspettative dei consumatori. Tutto quanto sopra si applica principalmente a prodotti complessi ad alta intensità scientifica, compresi i prodotti per scopi tecnici.

L'esperienza acquisita nel processo di attuazione di una varietà di autonomi sistemi di informazione, ha permesso di realizzare la necessità di integrare varie tecnologie dell'informazione in un unico complesso, basato sulla creazione all'interno di un'impresa o di un gruppo di imprese (impresa virtuale) di un ambiente informativo integrato che supporti tutte le fasi del ciclo di vita dei prodotti. Ambiente professionale rivela in modo più completo le opportunità di sviluppo professionale, utilizzando le nuove tecnologie dell'informazione nella scienza e nel campo della gestione dei processi produttivi. Tecnologie innovative nel campo dell'industria dell'elaborazione delle informazioni con l'introduzione della tecnologia CALS-(Continuous Acquisition and Life cycle Support) - supporto informativo continuo del ciclo di vita dell'oggetto progettato, porta l'automazione della gestione del processo produttivo a un nuovo livello.

L'uso di tecnologie informatiche basate sull'ideologia CALS è uno dei fattori che contribuiscono a un'implementazione più efficiente di un sistema di gestione aziendale automatizzato.

Le tecnologie CALS servono come mezzo per integrare i sistemi automatizzati industriali in un unico sistema multifunzionale. Lo scopo dell'integrazione di sistemi di progettazione e controllo automatizzati è quello di aumentare l'efficienza della creazione e dell'utilizzo di apparecchiature complesse.

L'essenza del concetto CALS è l'applicazione dei principi e delle tecnologie di supporto delle informazioni in tutte le fasi del ciclo di vita del prodotto, basato sull'uso di un ambiente informativo integrato che fornisce metodi uniformi per la gestione dei processi e l'interazione con tutti i partecipanti a questo ciclo : clienti del prodotto (incluse agenzie e dipartimenti governativi), fornitori (produttori) prodotti, personale operativo e di manutenzione. Questi principi e tecnologie sono implementati in conformità con i requisiti degli standard internazionali che disciplinano le regole di gestione e interazione, principalmente attraverso l'interscambio elettronico di dati.

Quando si utilizza la tecnologia CALS, la qualità dei prodotti viene migliorata grazie a una considerazione più completa delle informazioni disponibili nelle decisioni di progettazione e gestione, nonché i costi dei materiali e del tempo per la progettazione e la produzione dei prodotti vengono ridotti. Nel processo di implementazione di questa tecnologia, la validità delle decisioni prese in un sistema di gestione aziendale automatizzato (AMS) sarà maggiore se il decisore e i corrispondenti programmi di controllo hanno accesso online non solo al database AMMS, ma anche a database di altri sistemi automatizzati e, quindi, può ottimizzare i piani di lavoro, il contenuto delle domande, la distribuzione degli esecutori, l'allocazione dei finanziamenti, ecc. Allo stesso tempo, l'accesso online va inteso non solo come la possibilità di leggere i dati dal database, ma anche come la facilità della loro corretta interpretazione, cioè coerenza sintattica e semantica con i protocolli adottati nell'APCS. I sottosistemi tecnologici devono percepire accuratamente e interpretare correttamente i dati provenienti dai sottosistemi di progettazione assistita da computer. Questo non è così facile da ottenere se l'impresa principale e le organizzazioni correlate lavorano con diversi sistemi automatizzati. Inoltre, diventa rilevante il problema della protezione delle informazioni lungo l'intero perimetro di funzionamento dei sottosistemi tecnologici.

L'uso delle tecnologie CALS può ridurre significativamente la quantità di lavoro di progettazione, poiché le descrizioni degli sviluppi di successo di componenti e dispositivi completati in precedenza, molti componenti di apparecchiature, macchine e sistemi progettati in precedenza sono archiviati in database di server di rete disponibili per qualsiasi utente della tecnologia CALS . Disponibilità e protezione sono assicurate ancora una volta dalla coerenza di formati, metodi, manuali nelle diverse parti del sistema integrato complessivo. Inoltre, ci sono maggiori opportunità di specializzazione delle imprese, fino alla creazione di imprese virtuali, che aiutano anche a ridurre i costi.

Nel processo di implementazione della tecnologia CALS, i costi operativi sono notevolmente ridotti grazie all'implementazione di funzioni di supporto logistico integrato. La soluzione di problemi di manutenibilità, integrazione di prodotti in vari sistemi e ambienti, adattamento alle mutevoli condizioni operative, ecc. è notevolmente facilitata. Questi vantaggi dell'integrazione dei dati si ottengono utilizzando le moderne tecnologie CALS.

I sistemi automatizzati industriali possono funzionare autonomamente e attualmente l'organizzazione del processo di gestione della produzione avviene su questa base. Tuttavia, l'efficienza dell'automazione sarà notevolmente maggiore se i dati generati in uno dei sistemi sono disponibili in altri sistemi, poiché le decisioni prese in essi diventeranno più informate.

L'esperienza nell'implementazione della tecnologia CALS mostra che per raggiungere il giusto livello di interazione tra i sistemi automatizzati industriali, è necessario creare un unico spazio informativo sia all'interno delle singole imprese sia, cosa più importante, nell'ambito di un'associazione di imprese. Unito spazio informativoÈ garantito dall'unificazione sia della forma che del contenuto delle informazioni su prodotti specifici nelle varie fasi del loro ciclo di vita.

L'unificazione del modulo si ottiene utilizzando formati e linguaggi standard per la rappresentazione delle informazioni negli scambi tra programmi e nella documentazione.

L'unificazione dei contenuti, intesa come un'interpretazione univoca e corretta dei dati relativi a un particolare prodotto in tutte le fasi del suo ciclo di vita, è assicurata dallo sviluppo di ontologie (meta descrizioni) di applicazioni fissate nei protocolli applicativi CALS.

MINISTERO DELL'AGRICOLTURA DELLA FEDERAZIONE RUSSA

FSBEI HPE "Università agraria statale di Voronezh intitolata all'imperatore Pietro I"

Dipartimento di supporto informativo

e modellizzazione dei sistemi agroeconomici

Test

Per disciplina

"Informatica economica"

Completato: studenti EP-1

reparto corrispondenza

Mamychev D.A.

Codice UEeco-15126

Controllato:_________________

Voronezh 2016

1. Software dello strumento. Traduttori e loro tipi. Sistemi di programmazione.

2. Elaborazione dei pacchetti informazioni grafiche.

3. Computer globale rete internet: concetti basilari.

4. Elenco dei riferimenti.

Software dello strumento. Traduttori e loro tipi. Sistemi di programmazione.

Strumenti: programmi che consentono di modificare file multimediali e creare applicazioni multimediali.

Gli strumenti sono pacchetti software per la creazione di applicazioni multimediali:

− redattori di immagini grafiche fisse,

− strumenti per la creazione di GIF animate,

− mezzi di montaggio audio e video,

− mezzi per creare presentazioni,



− modalità di riconoscimento dei testi inseriti dallo scanner,

− mezzi per creare programmi di formazione,

− sistemi per la creazione di applicazioni realta virtuale e altri.

Gli strumenti espandono significativamente il controllo dei dispositivi multimediali rispetto a quelli forniti strumenti di sistema, ma si tratta sempre di prodotti a pagamento e alcuni di essi sono molto costosi, come i sistemi di editing video professionali.

Traduttori e loro tipi.

Poiché il testo scritto in un linguaggio di programmazione è incomprensibile per un computer, è necessario tradurlo in codice macchina. Tale traduzione di un programma da un linguaggio di programmazione a un linguaggio in codice macchina è chiamata traduzione ed è eseguita da programmi speciali: traduttori.

Translator - un programma di utilità che converte il programma sorgente fornito nel linguaggio di programmazione di input in programma di lavoro presentato in un linguaggio oggetto.

Attualmente, i compilatori sono divisi in tre gruppi principali: assemblatori, compilatori e interpreti.

Assembler è un'utilità di sistema che converte i costrutti simbolici in istruzioni in linguaggio macchina. Una caratteristica specifica degli assemblatori è che traducono letteralmente un'istruzione simbolica in un'istruzione macchina. Pertanto, il linguaggio assembly (chiamato anche autocode) è progettato per facilitare la percezione del set di istruzioni del computer e velocizzare la programmazione in questo set di istruzioni. Molto più facile da ricordare per un programmatore notazione mnemonica istruzioni macchina rispetto al loro codice binario Allo stesso tempo, il linguaggio assembly, oltre agli analoghi delle istruzioni macchina, contiene molte direttive aggiuntive che facilitano, in particolare, la gestione delle risorse del computer, la scrittura di frammenti ripetitivi e la costruzione di programmi multimodulo. Pertanto, l'espressività del linguaggio è molto più ricca di un semplice linguaggio di codifica simbolica, che aumenta notevolmente l'efficienza della programmazione.

Un compilatore è un programma di utilità che traduce in linguaggio macchina un programma scritto in un linguaggio di programmazione sorgente. Proprio come un assemblatore, un compilatore converte un programma da una lingua all'altra (il più delle volte, nella lingua di un particolare computer). Tuttavia, le squadre linguaggio del codice differiscono significativamente per organizzazione e potenza dai comandi in linguaggio macchina. Esistono lingue in cui un'istruzione della lingua di partenza viene tradotta in 7-10 istruzioni della macchina. Esistono però anche linguaggi in cui ogni istruzione può corrispondere a 100 o più istruzioni macchina (ad esempio Prolog). Inoltre, nelle lingue di partenza viene spesso utilizzata una rigorosa tipizzazione dei dati, che viene eseguita attraverso la loro descrizione preliminare. La programmazione potrebbe non basarsi sulla codifica di un algoritmo, ma su un'attenta riflessione sulle strutture o sulle classi di dati. Il processo di traduzione da tali linguaggi è solitamente chiamato compilazione e i linguaggi di origine sono generalmente indicati come linguaggi di programmazione di alto livello (o linguaggi di alto livello). L'astrazione di un linguaggio di programmazione dal sistema di comando del computer ha portato alla creazione indipendente di un'ampia varietà di linguaggi orientati alla soluzione. compiti specifici. Le lingue sono apparse per calcoli scientifici, calcoli economici, accesso a database e altri.

Un interprete è un programma o un dispositivo che esegue la traduzione e l'esecuzione operatore per operatore del programma originale. A differenza di un compilatore, un interprete non produce un programma in linguaggio macchina come output. Dopo aver riconosciuto il comando della lingua di origine, lo esegue immediatamente. Sia i compilatori che gli interpreti utilizzano gli stessi metodi di analisi del codice sorgente di un programma. Ma l'interprete ti consente di iniziare a elaborare i dati dopo aver scritto anche un solo comando. Ciò rende più flessibile il processo di sviluppo e debug dei programmi. Inoltre, la mancanza di codice macchina in uscita consente di non "sporcare" dispositivi esterni file aggiuntivi, e l'interprete stesso può essere facilmente adattato a qualsiasi architettura di macchina sviluppandolo solo una volta in un linguaggio di programmazione ampiamente utilizzato. Pertanto, i linguaggi interpretati come Java Script, VB Script si sono diffusi. Lo svantaggio degli interpreti è la bassa velocità di esecuzione del programma. In genere, i programmi interpretati vengono eseguiti da 50 a 100 volte più lentamente dei programmi scritti in codice macchina.

Qualsiasi traduttore svolge i seguenti compiti principali:

Analizza il programma in corso di traduzione, in particolare, determina se contiene errori di sintassi;

Genera un programma di output (spesso chiamato programma oggetto) nel linguaggio delle istruzioni della macchina;

Alloca memoria per il programma oggetto.

Sistemi di programmazione.

I sistemi di programmazione sono un insieme di strumenti software progettati per funzionare con programmi in uno dei linguaggi di programmazione. I sistemi di programmazione forniscono un servizio ai programmatori per sviluppare i propri programmi per computer.

Attualmente, lo sviluppo di qualsiasi sistema e software applicativo viene effettuato utilizzando sistemi di programmazione, che includono:

Traduttori da lingue di alto livello;

Strumenti per modificare, collegare e caricare programmi;

Macro assemblatori (linguaggi orientati alla macchina);

Debugger di programmi macchina.

I sistemi di programmazione tipicamente includono:

Editor di testo (Modifica), che svolge le funzioni di registrazione e modifica del testo sorgente del programma;

Caricatore di programma (Load), che consente di selezionare dalla directory il file di testo desiderato del programma;

Programma di avvio (Run), che esegue il processo di esecuzione del programma;

Compilatore (Compile), progettato per compilare o interpretare il codice sorgente del programma in codice macchina con la diagnosi di errori sintattici e semantici (logici);

Debugger (Debug), in esecuzione funzioni di servizio debug e test del programma;

File manager (File), che offre la possibilità di eseguire operazioni con i file: salvataggio, ricerca, distruzione, ecc.

2. Pacchetti per l'elaborazione di informazioni grafiche.

Gli strumenti software per la creazione e l'elaborazione delle informazioni grafiche si dividono in:

Editor grafici progettati principalmente per la creazione e l'elaborazione di immagini piane;

Pacchetti di computer grafica per la stampa, che consentono di integrare il testo con illustrazioni di vari formati, creare design di pagine e stampare prodotti stampati;

Programmi di animazione 2D utilizzati per creare immagini dinamiche ed effetti speciali nei film;

Pacchetti di animazione 3D utilizzati per creare spot pubblicitari, video musicali e film.

Tutte le immagini del computer sono divise in due tipi: raster e vettoriale.

Grafica raster. Le immagini grafiche raster si formano nel processo di conversione delle informazioni grafiche dalla forma analogica a quella digitale.

È possibile creare un'immagine grafica bitmap direttamente sul computer utilizzando un editor grafico, scaricarla da dischi CD-ROM o DVD-ROM o "scaricarla" da Internet.

Un'immagine bitmap viene memorizzata utilizzando punti di diversi colori (pixel) che formano righe e colonne. Ogni pixel ha una posizione e un colore specifici. Un pixel è l'area più piccola di un'immagine a cui è possibile assegnare indipendentemente un colore.

La qualità di una bitmap dipende dalla dimensione dell'immagine (numero di pixel in orizzontale e in verticale) e dal numero di colori che i pixel possono assumere. La memorizzazione di ogni pixel richiede un certo numero di bit (profondità del colore), che dipende dal numero di colori nell'immagine.

Le immagini grafiche raster di fotografie e illustrazioni multicolori sono ottenute utilizzando uno scanner. Tali immagini sono generalmente di grandi dimensioni e hanno un'elevata profondità di colore (24 o 36 bit per pixel). Di conseguenza, i file che memorizzano immagini bitmap contengono una grande quantità di informazioni.

Le immagini raster sono molto sensibili al ridimensionamento (ingrandimento o riduzione). Quando un'immagine raster viene ridotta, diversi pixel adiacenti vengono convertiti in uno, quindi l'intelligibilità dei dettagli fini dell'immagine viene persa. L'ingrandimento aumenta la dimensione di ogni punto e produce un effetto a gradini che può essere visto ad occhio nudo.

Grafica vettoriale. Le immagini grafiche vettoriali sono il supporto ottimale per la memorizzazione di oggetti grafici di alta precisione (disegni, diagrammi, ecc.), per i quali è importante la conservazione di contorni chiari e distinti. I sistemi di disegno assistito da computer e progettazione assistita da computer (CAD), i programmi di elaborazione grafica 3D si basano sulla grafica vettoriale.

Immagini vettoriali sono formati da oggetti (punto, linea, cerchio, rettangolo, ecc.), che vengono memorizzati nella memoria del computer sotto forma di primitive grafiche e formule matematiche che li descrivono.

Dignità grafica vettorialeè che i file che memorizzano la grafica vettoriale sono relativamente piccoli. È anche importante che la grafica vettoriale possa essere ingrandita o ridotta senza perdita di qualità. Ciò è possibile perché il ridimensionamento dell'immagine viene eseguito mediante semplici operazioni matematiche (moltiplicando i parametri delle primitive grafiche per il fattore di ridimensionamento).

A seconda del metodo di descrizione dei dati grafici, viene eseguita anche una divisione in tipi di editor grafici.

Un editor grafico è un programma progettato per creare vari tipi di immagini, dalle più semplici ai materiali video.

Rastrello redattore grafico(PaintBrush, PhotoShop) si basano su un metodo di trasferimento di immagini bit a bit. Elaborano immagini scansionate sufficientemente dettagliate. Eseguire ritocchi, cambiare i colori, le loro sfumature e contrasti, sfregare e sfumare, cambiare la direzione delle ombre e dei contorni. La lunghezza dei file bit è elevata a causa dell'elevato numero di punti dello schermo elaborati, che consente un gran numero di colori e un editing dettagliato delle immagini. La scansione delle immagini può essere eseguita in bianco e nero, in scala di grigi ea colori. Per gli editor grafici raster, è necessario scegliere l'angolo e il tipo di raster (blocco, linea, punto, ecc.), Risoluzione. Per le immagini a colori, regolare la luminosità e il contrasto per ciascuno dei colori che compongono la gamma dell'immagine grafica. I disegni finiti vengono archiviati in file separati e potrebbe essere disponibile per l'uso.

Editor di grafica vettoriale (Adobe Fireworks, ConceptDraw PRO, CorelDRAW)

Per creare disegni complessi con confini precisi, complessi e chiari, viene utilizzato principalmente un editor vettoriale, uno dei cui strumenti principali sono le curve di Bezier, che consentono di disegnare curve (poligonali, diritte e lisce) in segmenti con posizionamento preciso dell'ancora punti e controllo sulla forma di ciascun segmento. Una curva di Bézier può essere pensata come il risultato di un progressivo affinamento della forma di un poligono, costruito collegando successivamente i punti di controllo che definiscono la forma. La curva, andando dal punto iniziale del poligono al suo punto finale, è attratta, come una calamita, da punti di riferimento intermedi, determinanti la forma, attraverso i quali non passa. Grazie alle loro proprietà speciali, alla facilità di definizione e alla capacità di manipolazione, le curve di Bezier sono ampiamente utilizzate per modellare linee morbide nella computer grafica. Nell'arsenale di strumenti di cui dispone ogni editor di grafica vettoriale, ci sono sempre "Riempimento", "Testo", "Matita" e un insieme base di forme geometriche (le cosiddette primitive), che costituiscono la base della maggior parte dei progetti grafici.

3. Rete informatica globale internet: concetti di base.

Internet (dall'inglese inter - "tra" e rete - "rete, web") è una raccolta di reti di computer che collegano istituzioni militari, governative, educative, commerciali, nonché singoli cittadini.

Un server Internet (server web o server http) è un sistema hardware e software installato su un computer connesso a una dorsale Internet ad alta velocità. Tali computer sono anche chiamati server. La funzione principale del server è cercare e trasferire a computer dell'utente informazioni richieste dai programmi client, in particolare i browser.

Esistono diversi usi del termine server. Gli utenti di Internet chiamano un server siti Web di grandi dimensioni insieme al loro contenuto, i web designer e i programmatori comprendono un server programmi speciali trasferire dati da Internet al computer dell'utente, amministratori di sistema e professionisti al servizio reti locali, - i computer stessi su cui sono installati tali programmi.

Un browser è un programma client Internet che accede a un server, legge un documento HTML, interpreta le informazioni ricevute e visualizza il contenuto del documento. I browser più famosi in Russia sono Internet Explorer Musica lirica, Google Chrome, Mozilla Firefox e così via.

Un sito web (dall'inglese site - “area”) è un insieme di pagine web collegate da link e conservate su un unico server. Un insieme di siti Web collegati tra loro e archiviati su server diversi è chiamato portale Web.

Il funzionamento della tecnologia Internet dipende direttamente dal protocollo, un insieme di regole che regolano tutto ciò che riguarda il lavoro sulla rete. La tecnologia per la trasmissione di dati su Internet si basa sul protocollo TCP / IP (IP (Internet Protocol) - "Internet protocol", TCP (Transmission Control Protocol) - "transmission control protocol") - uno standard generalmente accettato che descrive le regole per l'invio e la ricezione di informazioni tra diversi computer collegati alle reti.

TCP/IP definisce il proprio indirizzo IP per ogni computer su Internet, costituito da quattro sequenze numeriche separate da un punto (ad esempio, 195.85.105.160). In qualsiasi posizione, ogni valore può variare da 0 a 255. Per comodità degli utenti di Internet, è stato sviluppato il Domain Name System (DNS). Il Domain Name Service converte un nome di dominio in un numero indirizzo IP. I computer che eseguono questa traduzione sono chiamati server DNS.

Secondo le specifiche DNS, l'intero spazio virtuale di Internet è suddiviso in domini, zone logiche controllate da uno o più computer speciali. La gerarchia degli indirizzi di dominio può essere sia regionale che dipendente dal tipo di attività di un'entità economica.Le unità DNS più grandi sono chiamate domini di primo livello, che coprono sezioni globali di Internet secondo le seguenti caratteristiche:

Com, .biz - imprese commerciali;

Net - originariamente assegnato alle organizzazioni responsabili del supporto di Internet, ora utilizzato anche per entità commerciali;

Edu - istituzioni educative;

Org - organizzazioni pubbliche e senza scopo di lucro;

Gov - agenzie governative;

Mil - stabilimenti militari;

Int - organizzazioni internazionali create sulla base di accordi o fanno parte dell'infrastruttura Internet;

Nome - individui;

Informazioni - non limitate;

Ru, .ua, ecc. - abbreviazioni per i paesi adottati dal comitato per gli standard ISO.

Un gradino più in basso nella gerarchia DNS sono i domini di secondo livello, che dipendono direttamente dal dominio di primo livello. I domini di secondo livello appartengono a organizzazioni municipali o commerciali (ad esempio, spb.ru, ifmo.ru).

Il dominio di secondo livello può contenere solo 22 caratteri (lettere, numeri e trattini). Tuttavia, non è possibile registrare un nome di dominio già esistente.

Esistono anche domini di terzo livello che fanno parte del dominio principale (ad esempio, il nome di dominio condizionale.spb.ru). Puoi anche incontrare il quarto, il quinto, ecc. Domini. livelli.

URL (Uniform Resource Locator) è una designazione universale della posizione della risorsa (ad esempio, www.ifmo.ru).

Pertanto, su Internet vengono utilizzati diversi tipi di indirizzi:

1) Indirizzo IP: l'indirizzo di rete principale assegnato a ciascun computer quando si accede alla rete. Questa è una numerazione globale perché un computer connesso a Internet ha il proprio indirizzo IP univoco. Gli indirizzi IP sono suddivisi in classi in base alla scala della rete a cui l'utente si connette.

2) indirizzo di dominio. La traduzione di un indirizzo di dominio in un indirizzo IP avviene automaticamente utilizzando il sistema DNS.

3) URL: un indirizzo universale utilizzato per indicare il nome di ciascun oggetto di archiviazione su Internet.

L'hosting (dall'inglese hosting) è un servizio per fornire spazio su disco per il posizionamento fisico di informazioni su un server costantemente online. Di norma, il servizio di hosting include la fornitura di spazio per la corrispondenza postale, database, DNS, archiviazione di file, ecc., nonché il supporto del funzionamento dei servizi corrispondenti.

Le bacheche elettroniche (BBS - Bulletin Board System) creano specializzati servizi di rete, le cui attività sono dedicate a un particolare argomento. BBS di solito contiene file con informazioni di interesse per determinati gruppi di utenti, nonché strumenti che consentono agli utenti della bacheca di scambiarsi informazioni su argomenti di loro interesse. La manutenzione viene effettuata attraverso il BBS: gli utenti inviano domande e lo staff risponde.

Le web community sono sostenute finanziariamente da diverse aziende e sono siti i cui membri si scambiano opinioni su temi di loro interesse sulla base di un interesse comune.

E-mail (dall'inglese. E-mail, e-mail, abbreviazione di posta elettronica) - un metodo di trasmissione di informazioni nelle reti di computer, ampiamente utilizzato su Internet. Caratteristica principale E-mailè che le informazioni non vengono inviate direttamente al destinatario, ma tramite un collegamento intermedio: una casella di posta elettronica, che è un luogo sul server in cui il messaggio viene archiviato fino a quando il destinatario non lo richiede. Nella maggior parte dei casi, l'accesso a cassetta postaleè richiesta una password. Accesso a server email possono essere forniti sia tramite appositi programmi di posta ( MicrosoftOutlook, Il pipistrello ecc.), e attraverso l'interfaccia web.

ICQ (acronimo di Ti cerco - "Ti sto cercando") è un servizio che consente agli utenti della rete di scambiare messaggi in tempo reale, nonché organizzare chat, trasferire file, ecc. Il programma funziona utilizzando il protocollo OSCAR , che fornisce messaggi di testo istantanei e offline. Il servizio è attualmente di proprietà del fondo di investimento Mail.ru Group (un gruppo di investimento russo specializzato in investimenti in progetti Internet).

IRC (dall'inglese Internet Relay Chat - "relayed Internet chat") è un servizio in cui i messaggi vengono scambiati senza indugio.

La telefonia IP è una tecnologia che consente di utilizzare Internet o qualsiasi altra rete IP come mezzo per organizzare e condurre conversazioni telefoniche.

Skype è un software proprietario gratuito e chiuso che fornisce comunicazioni vocali crittografate su Internet tra computer e servizi a pagamento per comunicare con gli abbonati regolari rete telefonica. Skype è stato creato da Niklas Zennström e Janus Friis. La prima versione del programma e del sito Web è apparsa nel settembre 2003.

Tabella 1. Calcolo del profitto dell'azienda

N. p / p Indicatori Anno Totale per l'anno
1 mq. 2 mq. 3 mq. 4 mq.
Reddito commerciale
Costi di negoziazione
Utile lordo
Spese del personale
Spese pubblicitarie
Spese generali
Costi generali
Utile operativo
Utile lordo specifico 0,099010177 0,118613565 0,074808144 0,121404967 0,4138369

Tabella 2. Struttura dei costi dell'azienda

Diagramma 1. La struttura dei costi dell'azienda

Bibliografia:

1. Risorsa Internet http://eclib.net/

2. Risorsa Internet https://ru.wikipedia.org/

3. Risorsa Internet http://studopedia.ru/

Al software dello strumento includere strumenti di sviluppo software. Si tratta di sistemi di programmazione che includono gli strumenti software necessari alla costruzione automatica del codice macchina. Sono strumenti per programmatori professionisti e consentono di sviluppare programmi in vari linguaggi di programmazione.

Gli strumenti di sviluppo software includono i seguenti programmi:

  • assemblatori - programmi per computer che convertono un programma sotto forma di testo sorgente in linguaggio assembly in istruzioni macchina sotto forma di codice oggetto;
  • traduttori - programmi che eseguono la traduzione del programma;
  • compilatori - programmi che traducono il testo di un programma in un linguaggio di alto livello in un programma equivalente in linguaggio macchina;
  • interpreti - programmi che analizzano comandi o istruzioni di programma e li eseguono immediatamente;
  • linker (linker) - programmi che eseguono il collegamento - prendono uno o più moduli oggetto come input e assemblano un modulo eseguibile da essi;
  • i preprocessori del codice sorgente sono programmi per computer che accettano e producono input per un altro programma, come ad esempio un compilatore;
  • debugger: programmi che sono un modulo dell'ambiente di sviluppo o un'applicazione separata progettata per trovare errori nel programma;
  • editor di codice sorgente specializzati - programmi necessari per creare e modificare il codice sorgente dei programmi. Un editor di codice sorgente specializzato può essere un'applicazione separata o integrato in un ambiente di sviluppo integrato, ecc.

I linguaggi che rappresentano gli algoritmi come una sequenza di istruzioni leggibili (non in codice binario) sono chiamati linguaggi algoritmici. I linguaggi algoritmici si dividono in orientati alla macchina, orientati alle procedure e orientati ai problemi.

I linguaggi orientati alla macchina sono linguaggi di programmazione di basso livello: la programmazione su di essi è la più laboriosa, ma consente di creare programmi ottimali che tengano conto il più possibile delle caratteristiche funzionali e strutturali di un particolare computer. I programmi in queste lingue, ceteris paribus, saranno più brevi e veloci. Inoltre, la conoscenza delle basi della programmazione in un linguaggio orientato alla macchina consente a uno specialista di comprendere in dettaglio l'architettura di un computer. La maggior parte dei comandi dei linguaggi orientati alla macchina, quando tradotti (tradotti) in un linguaggio macchina (binario), generano un comando macchina.

I linguaggi orientati alla procedura e specifici del dominio sono linguaggi di alto livello che utilizzano macro. Un'istruzione macro durante la traduzione genera molte istruzioni macchina (per un linguaggio orientato proceduralmente, questo rapporto è in media "da 1 a decine di istruzioni macchina" e per un linguaggio orientato al dominio - "da 1 a centinaia di istruzioni macchina". Programmazione orientata proceduralmente i linguaggi più utilizzati (Basic, Visual Basic, Pascal, Borland Delphi, C, ecc.) in questo caso il programmatore deve descrivere tutta la procedura per la risoluzione del problema, mentre i linguaggi specifici del dominio (detti anche non -procedurali) consentono solo di identificare formalmente il problema e di specificare la composizione, le strutture di rappresentazione e i formati delle informazioni di input e output per il compito.

Durante l'esecuzione delle istruzioni del programma, un computer deve convertire istruzioni leggibili dall'uomo scritte in un linguaggio di programmazione in una forma comprensibile per il computer. Il software Tool ha programmi speciali che traducono (traducono) il testo di programmi scritti in vari linguaggi di programmazione in codici macchina, che vengono poi eseguiti da un computer. Questo tipo di software si chiama compilatore O interprete. Viene chiamato il testo di un programma scritto in un linguaggio di programmazione ad alto livello, prima di essere convertito in codici macchina codice sorgente (codice sorgente). Il compilatore (compilatore) converte il codice sorgente in codici macchina, chiamati codice oggetto (codice oggetto) – un programma nella lingua di output del traduttore. Prima dell'esecuzione avviene il processo di modifica del collegamento, che consiste nel fatto che i moduli del programma di output vengono combinati con altri moduli del codice oggetto contenenti, ad esempio, dati. Il modulo di avvio risultante sono i comandi eseguiti direttamente dal computer. Alcuni linguaggi di programmazione non contengono un compilatore, ma un interprete, che converte ogni singola espressione del codice sorgente in codici macchina e li esegue immediatamente. L'interprete è conveniente nella fase di debug del programma, in quanto fornisce un rapido feedback quando viene rilevato un errore in codice sorgente. Le basi della programmazione nel linguaggio di alto livello Visual Basic sono descritte nel Cap. 12 di questo manuale.

Al software dello strumento includono anche alcuni sistemi di gestione di database (DBMS). DBMS è un insieme specializzato di programmi progettati per organizzare e mantenere i database. Poiché i sistemi di gestione del database non sono un componente richiesto sistema informatico, non sono classificati come software di sistema. E poiché i singoli DBMS svolgono solo una funzione di servizio quando sono in esecuzione altri tipi di programmi (server Web, server applicativi), non sempre possono essere attribuiti al software applicativo. Per questi motivi, vengono spesso definiti tool software.

Le principali funzioni di tale DBMS:

  • gestione dei dati in memoria esterna(su dischi);
  • gestione dei dati in memoria ad accesso casuale utilizzando la cache del disco;
  • correzione delle modifiche in registri speciali, backup e ripristino del database dopo errori;
  • supporto per linguaggi di database (linguaggio di definizione dei dati, linguaggio di manipolazione dei dati).

I fondamenti teorici del DBMS sono descritti sopra (sezione 3.2) e l'applicazione pratica è descritta nel cap. 10.

Se noti un errore, seleziona una parte di testo e premi Ctrl + Invio
CONDIVIDERE: