Gli strumenti software includono: Software di strumentazione. Esempi di programmi. Compiti e funzioni del software dello strumento

Saggio

SOFTWARE - un insieme di programmi per un sistema di elaborazione delle informazioni e documenti del programma necessario per il funzionamento di questi programmi (GOST 19781-90). Inoltre - un insieme di programmi, procedure e regole, nonché la documentazione relativa al funzionamento del sistema di elaborazione dati (ST ISO 2382/1-84).

SOFTWARE TOOL – software destinato all'uso nella progettazione, sviluppo e manutenzione di programmi. Di solito questo termine viene utilizzato per enfatizzare la differenza tra questa classe di software dall'applicazione e dal sistema Software.

COMPILATORE – un traduttore che converte un programma scritto nella lingua sorgente in un modulo oggetto.

INTERPRETE - un programma (a volte hardware) che analizza comandi o istruzioni di programma e li esegue immediatamente.

SISTEMA OPERATIVO - un insieme di programmi di controllo ed elaborazione che, da un lato, fungono da interfaccia tra i dispositivi del sistema informatico e i programmi applicativi e, dall'altro, sono progettati per controllare i dispositivi, gestire i processi informatici, distribuire efficacemente le risorse informatiche tra processi informatici e organizzare un calcolo affidabile.

PROGRAMMA APPLICATIVO - un programma progettato per eseguire determinate attività dell'utente e progettato per l'interazione diretta con l'utente.

VISUALBASIC è uno strumento di sviluppo software sviluppato da Microsoft Corporation che include un linguaggio di programmazione e un ambiente di sviluppo.

VISUALBASICFORAPPLICATION - un'implementazione leggermente semplificata del linguaggio di programmazione Visual Basic, integrato nella linea di prodotti Microsoft Office(comprese le versioni per Mac OS), così come molti altri pacchetti software come AutoCAD, SolidWorks, CorelDRAW, WordPerfect e ESRI ArcGIS.

Lo scopo del lavoro è studiare le tipologie e le funzioni del software, in particolare del software strumentale.

Classificazione del software:

Tipi di software degli strumenti:

1) Editor di testo

4) Compilatori

5) Interpreti

6) Linker

8) Assemblatori

9) Debugger

10) Profilatori

11) Generatori di documentazione

Per creare un programma nel linguaggio di programmazione prescelto è necessario disporre dei seguenti componenti:

2. Compilatore o interprete. Il testo sorgente viene tradotto in codice oggetto intermedio utilizzando un programma compilatore.

Risultato del lavoro: vengono presi in considerazione il software, le sue funzioni e tipologie, in particolare il software strumentale, la sua essenza e i compiti. Il terzo capitolo discute Microsoft Visual Basic come strumento di sviluppo software e il suo dialetto: Microsoft Visual Basic for Application. IN lavoro del corso un algoritmo per risolvere un problema finanziario ed economico è stato implementato utilizzando il linguaggio di programmazione Pascal.

introduzione

IN mondo moderno più di una persona che ha provato i benefici della civiltà non può immaginare la propria vita senza l'uso apparecchiature informatiche. Il suo utilizzo avviene in qualsiasi ambito dell'attività umana: produzione, commercio, istruzione, intrattenimento e comunicazione delle persone, le loro attività scientifiche e culturali. Tutto questo grazie alla capacità di selezionare apparecchiature informatiche per risolvere qualsiasi problema, anche il più complesso.

Tuttavia, sia la versatilità che la specializzazione della tecnologia informatica sono assicurate dall'uso di un diverso insieme di software sulla base di quasi tutti i computer che forniscono una soluzione a qualsiasi compito assegnato.

Tutti noi vediamo l'enorme varietà di programmi per computer e il ritmo sbalorditivo della loro crescita e miglioramento, e solo una piccola parte di noi comprende il lato invisibile della loro progettazione, sviluppo e creazione. Tuttavia, questa zona informaticaè, a nostro avviso, la più importante, poiché dal suo sviluppo dipenderà il futuro della tecnologia informatica.

E dallo sviluppo di qualsiasi programma per computer avviene con l'utilizzo di software Strumentali, quindi nel nostro lavoro di corso vorremmo soffermarci in dettaglio, evidenziandolo da tutti i software e rivelandone l'essenza e le caratteristiche.

Per chiarezza, esamineremo il software strumentale (oggetto di studio) utilizzando l'esempio del pacchetto software VisualBasicforApplication (oggetto di studio), utilizzato per la programmazione nell'ambiente Microsoft Office, il pacchetto office più diffuso e popolare.

1. Software

1.1 Concetto ed essenza del software

Il software è parte integrante di un sistema informatico. È una continuazione logica dei mezzi tecnici di qualsiasi computer. L'ambito di applicazione di un particolare computer è determinato dal software creato per esso. Il computer stesso non è in grado di riconoscere alcuna applicazione. Tutta questa conoscenza è concentrata in programmi eseguiti sui computer, che hanno una serie di funzionalità specifiche e sono progettati per eseguire funzioni specifiche, nella maggior parte dei casi, altamente specializzate, come la creazione e l'elaborazione immagini grafiche o file audio.

Il software attualmente comprende centinaia di migliaia di programmi progettati per elaborare un'ampia varietà di informazioni per un'ampia varietà di scopi.

Il software comprende anche l'intera area di attività nella progettazione e sviluppo di software:

1) tecnologia di progettazione del programma (ad esempio progettazione top-down, progettazione strutturata e orientata agli oggetti);

2) metodi di test dei programmi;

3) metodi per dimostrare la correttezza dei programmi;

4) analisi della qualità dei programmi;

5) documentare i programmi;

6) sviluppo e utilizzo di strumenti software che facilitino il processo di progettazione del software e molto altro.

Esistono molte definizioni diverse di software. In generale, il software è un insieme di programmi del sistema di elaborazione delle informazioni e documenti di programma necessari per il funzionamento di questi programmi (GOST 19781-90). Inoltre - un insieme di programmi, procedure e regole, nonché la documentazione relativa al funzionamento del sistema di elaborazione dati (ST ISO 2382/1-84).

Il software è uno dei tipi di supporto di un sistema informatico, insieme al supporto tecnico (hardware), matematico, informativo, linguistico, organizzativo e metodologico.

Nel gergo informatico, la parola software è spesso usata dalla parola inglese software, che in questo senso fu usata per la prima volta in un articolo sull'American Mathematical Monthly dal matematico John W. Tukey dell'Università di Princeton nel 1958.

Altre definizioni:

1) IL SOFTWARE è un insieme di programmi che consentono l'elaborazione automatizzata delle informazioni su un computer.

2) SOFTWARE (supporto matematico per un computer elettronico), un insieme di programmi per un sistema di elaborazione dati e documenti di programma necessari per implementare programmi su un computer elettronico.

3) SOFTWARE: un insieme di programmi per il controllo del processo di funzionamento del computer e l'automazione della programmazione.

4) SOFTWARE - un insieme di programmi informatici che fornisce l'elaborazione o la trasmissione dei dati.

Tutte le definizioni sono simili e riflettono l'essenza del software: organizzazione dell'interazione della parte hardware (tecnica), sotto forma di vari nodi e dispositivi periferici integrati, il loro controllo e coordinamento dell'interazione complessiva del sistema informatico tra loro e con l'utente.

1.2 Funzioni del software

I concetti di software di cui sopra determinano le funzioni eseguite dal software durante il funzionamento delle apparecchiature informatiche. L'elenco di queste funzioni è molto vario, ma possono essere suddivise approssimativamente nei seguenti cinque tipi:

1. Hardware e meccanica. Interfacciano diversi componenti del computer e garantiscono la trasmissione di un segnale hardware da un componente all'altro.

2. Logico-macchina. Elaborare e interpretare un insieme di impulsi elettromagnetici hardware in un codice di programma logicamente cosciente con una certa struttura e proprietà.

3. Informazioni e comando. Controllano la conformità del codice del programma con i principi del sistema e creano struttura logica informazioni e procedere alla sua esecuzione.

4. Interfaccia. Fornire l'elaborazione e l'interpretazione del codice del programma in un formato di visualizzazione accessibile all'utente. Crea un ambiente favorevole per l’interazione “Computer-Uomo, Uomo-Computer”.

5. Applicato. Esegue azioni matematiche, logiche, fisiche e di altro tipo con una serie di dati disponibili, in altre parole, elaborazione delle informazioni disponibili per risolvere determinati problemi.

Questo elenco è lungi dall'essere esaustivo, il che indica la diversità e l'ambiguità delle funzioni svolte dal software.

1.3 Tipi di software

A seconda delle funzioni fornite da un determinato componente del computer, è necessario creare il proprio software specializzato, che è il motivo fondamentale per creare software di vario tipo, mostrato in (Fig. 1):

a) Programmi applicativi che supportano direttamente l'esecuzione del lavoro richiesto dagli utenti;

b) i programmi di sistema, progettati per controllare il funzionamento del sistema informatico, eseguono varie funzioni ausiliarie, ad esempio:

1) gestione delle risorse informatiche;

2) creazione di copie delle informazioni utilizzate;

3) verificare la funzionalità dei dispositivi informatici;

4) rilascio di informazioni di riferimento sul computer, ecc.;

c) strumentale sistemi software, facilitando il processo di creazione di nuovi programmi per computer.

Il software di sistema garantisce il funzionamento e la manutenzione del computer, nonché l'automazione del processo di creazione di nuovi programmi. Il software di sistema include: sistema operativo e la loro interfaccia utente; strumenti software; sistemi di manutenzione.

Un sistema operativo è una parte obbligatoria di un software speciale che garantisce il funzionamento efficace di un personal computer in varie modalità, organizza l'esecuzione dei programmi e l'interazione dell'utente e dispositivi esterni con un computer.

L'interfaccia utente (programmi di servizio) sono componenti aggiuntivi software del sistema operativo (shell e ambiente) progettati per semplificare la comunicazione dell'utente con il sistema operativo.

I programmi che forniscono l'interfaccia mantengono la forma di comunicazione (dialogo) tra l'utente e il sistema operativo, ma cambiano la lingua di comunicazione (di solito la lingua dei comandi viene convertita in una lingua dei menu). I sistemi di servizio possono essere suddivisi in sistemi di interfaccia, shell del sistema operativo e utilità.

I sistemi di interfaccia sono potenti sistemi di servizi, molto spesso di tipo grafico, che migliorano non solo l'utente, ma anche l'interfaccia del programma dei sistemi operativi, in particolare implementando alcune procedure aggiuntive per la suddivisione di risorse aggiuntive.

Le shell del sistema operativo forniscono all'utente un'interfaccia qualitativamente nuova rispetto a quella implementata dal sistema operativo e rendono facoltativa la conoscenza di quest'ultimo.

Le utilità automatizzano l'esecuzione di determinate procedure standard, utilizzate di frequente, la cui implementazione richiederebbe all'utente di sviluppare programmi speciali. Molte utilità hanno un'interfaccia interattiva sviluppata con l'utente e si avvicinano al livello di comunicazione delle shell.

Gli strumenti software (sistemi di programmazione) sono una parte obbligatoria del software con cui vengono creati i programmi. Gli strumenti software includono strumenti per scrivere programmi (editor di testo); mezzi per convertire i programmi in una forma adatta all'esecuzione su un computer (assemblatori, compilatori, interpreti, caricatori ed editor di collegamenti), mezzi per monitorare ed eseguire il debug dei programmi.

Gli editor di testo consentono di modificare, formare e combinare comodamente i testi dei programmi e alcuni consentono di controllare la sintassi dei programmi creati.

Un programma scritto in linguaggio algoritmico deve essere convertito in un modulo oggetto scritto in linguaggio macchina (codice binario). Tale conversione viene eseguita dai traduttori (assemblatore - dal linguaggio Assembler e compilatori - da linguaggi di alto livello). Per alcuni linguaggi algoritmici vengono utilizzati interpreti che non creano un modulo oggetto, ma, ad ogni successiva esecuzione del programma, traducono ciascuna delle sue singole righe o istruzioni in linguaggio macchina. Il modulo oggetto viene elaborato da un caricatore, un editor di collegamenti, che lo converte in un programma macchina eseguibile.

Gli strumenti di debug consentono di tracciare i programmi (esecuzione passo passo con informazioni sui risultati dell'esecuzione), controllare la sintassi del programma e i risultati intermedi nei punti di interruzione e modificare i valori delle variabili in questi punti.

Tecnico e servizio sono strumenti software per monitorare, diagnosticare e ripristinare le prestazioni di un computer, dischi, ecc.

Il software applicativo fornisce soluzioni ai problemi dell'utente. Il concetto chiave qui è il pacchetto dell'applicazione.

Un pacchetto software applicativo è un insieme di programmi per risolvere una serie di problemi su un argomento o argomento specifico. Si distinguono i seguenti tipi di pacchetti applicativi:

1) scopo generale- focalizzato sull'automazione di un'ampia gamma di attività dell'utente (elaboratori di testi, editor di fogli di calcolo, sistemi di gestione di database, elaboratori grafici, sistemi di pubblicazione, sistemi di automazione della progettazione, ecc.);

2) orientamento al metodo - implementazione di vari metodi economici e matematici per risolvere problemi (programmazione matematica, pianificazione e gestione della rete, teoria delle code, statistica matematica, ecc.);

3) orientato ai problemi - mirato a risolvere un compito specifico (problema) in un'area tematica specifica (pacchetti bancari, pacchetti contabili, gestione finanziaria, sistemi di riferimento giuridico, ecc.).

Il software applicativo comprende software di servizio che serve a organizzare un ambiente di lavoro conveniente per l'utente, nonché a svolgere funzioni ausiliarie (gestori delle informazioni, traduttori, ecc.).

Quando si costruisce una classificazione del software, è necessario tenere conto del fatto che il rapido sviluppo della tecnologia informatica e l'espansione della portata delle applicazioni informatiche hanno accelerato drasticamente il processo di evoluzione del software. Se prima era facile elencare le principali categorie di software: sistemi operativi, traduttori, pacchetti software applicativi, ora la situazione è cambiata radicalmente. Lo sviluppo del software è andato sia in profondità (sono apparsi 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 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 precedentemente legate solo alle capacità intellettuali umane.

2. Software per utensili

2.1 L'essenza e il concetto di strumenti software

Il software strumentale (IPO) è un software destinato all'uso nella progettazione, sviluppo e manutenzione di programmi.

Gli strumenti vengono utilizzati nella fase di sviluppo. Il software di tooling è una raccolta di programmi utilizzati per assistere i programmatori nel loro lavoro, per assistere i responsabili dello sviluppo software nei loro sforzi per controllare il processo di sviluppo e i prodotti risultanti. I rappresentanti più famosi di questa parte del software sono i programmi di traduzione dei linguaggi di programmazione, che aiutano i programmatori a scrivere comandi macchina. I programmi strumentali sono traduttori delle lingue Fortran, Cobol, Joe-vial, 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 programmi strumentali; ce ne sono moltissimi.

Usare i computer per creare nuovi programmi è tutt'altro che ovvio per le persone che non sono programmatori professionisti. Accade spesso che i professionisti parlino contemporaneamente di software tool (fase di sviluppo) e di sistema (fase di utilizzo), dando per scontato che chi non è a conoscenza dei segreti del loro mestiere sia consapevole di questo ruolo del software tool. Come nella fase di utilizzo (per i programmi applicativi), anche nella fase di sviluppo il software di sistema funziona, ma solo in combinazione con il tooling. Il software tool 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 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 compilatore. Il codice sorgente di un programma di grandi dimensioni è costituito da diversi moduli (file sorgente). Ogni modulo viene compilato in un file separato con codice oggetto, che poi deve essere combinato in uno solo.

3. Un editor di collegamento o assemblatore che collega moduli oggetto e produce un'applicazione funzionante come codice eseguibile in output.

Il 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) volti a creare applicazioni Windows. Questo processo è automatizzato in ambienti di progettazione rapida. In questo caso vengono utilizzati componenti visivi già pronti, configurati utilizzando editor speciali.

Gli editor più popolari (sistemi di programmazione di programmi che utilizzano strumenti visivi) per la progettazione visiva:

1) Borland Delphi: progettato per risolvere quasi tutti i problemi di programmazione delle applicazioni.

2) Borland C++ Builder è un ottimo strumento per sviluppare applicazioni DOS e Windows.

3) Microsoft Visual Basic è uno strumento popolare per creare programmi Windows.

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

Pertanto, l'essenza del software strumentale è creare qualsiasi programma eseguibile convertendo le espressioni logiche formali in codice macchina eseguibile, nonché il suo controllo e regolazione.

2.2 Compiti e funzioni del software dello strumento

Il software strumentale, in quanto tipo speciale di software, è caratterizzato da generale e privato

funzioni, come per tutti i software in generale. Le funzioni generali sono discusse sopra, mentre le funzioni specializzate inerenti solo a questo tipo di programmi sono:

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

2. Traduzione del testo programma creato in codice orientato alla macchina accessibile per il riconoscimento del computer. Se il volume del programma creato è significativo, viene suddiviso 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. Testare e monitorare il programma creato, identificando ed eliminando errori formali, logici e sintattici, controllando i programmi per la presenza di codici proibiti, nonché valutando le prestazioni e le potenzialità del programma creato.

2.3 Tipologie di strumenti software

In base ai compiti assegnati al software strumentale possiamo distinguere un gran numero di tipologie di software strumentali per vari scopi:

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) Profilatori

11) Generatori di documentazione

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 strumento e pertanto possono essere classificate come programmi applicativi. Consideriamo brevemente le finalità di alcuni programmi strumentali.

Editor di testo.

Un editor di testo è un programma per computer progettato per elaborare file di testo, ad esempio creando e apportando modifiche.

Tipi di editor di testo.

Convenzionalmente, esistono due tipi di editor: editor di testo in streaming e editor interattivi.

Gli editor di testo in flusso sono programmi per computer progettati per elaborare automaticamente i dati di testo in ingresso ricevuti da un file di testo in conformità con le regole predefinite dagli utenti. Nella maggior parte dei casi, le regole sono espressioni regolari, in un dialetto specifico di un determinato editor di testo. Un esempio di tale editor di testo è l'editor Sed.

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

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

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

1) lavorare con frammenti di documenti,

2) inserimento di oggetti creati in altri programmi

3) suddividere il testo del documento in pagine

4) inserimento e modifica tabelle

5) inserimento e modifica delle formule

6) formattazione del paragrafo

7) creazione automatica di elenchi

8) creazione automatica di un sommario.

Si conoscono dozzine di editor di testo. I più accessibili sono NOTEPAD (blocco note), WORDPAD, WORD. Il funzionamento di un particolare editor di testo è solitamente determinato da funzioni, il cui scopo si riflette nelle voci di menu e nel sistema di guida.

Ambiente di sviluppo integrato

L'ambiente di sviluppo integrato, ISD, è un sistema software utilizzato dai programmatori per sviluppare software. In genere l'ambiente di sviluppo 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 sistemi di controllo della versione e vari strumenti per semplificare la progettazione di un'interfaccia utente grafica. Molti ambienti di sviluppo moderni includono anche un browser di classi, un ispettore di oggetti e un diagramma della gerarchia di classi da utilizzare nello sviluppo di software orientato agli oggetti. Tuttavia, esistono ambienti di sviluppo progettati per diversi linguaggi di programmazione, come Eclipse, NetBeans, Embarcadero Studio RAD, Qt Creator o Microsoft Visual Studio, solitamente l'ambiente di sviluppo è destinato a un linguaggio di programmazione specifico, come Visual Basic, Delphi, Dev-C++.

Un caso speciale di ISR ​​è un ambiente di sviluppo visivo, che include la possibilità di modificare visivamente l'interfaccia del programma.

SDK.

SDK (dall'inglese SoftwareDevelopmentKit) o ​​"devkit" è un kit di sviluppo che consente agli specialisti di software di creare applicazioni per un pacchetto software specifico, software di sviluppo principale, piattaforma hardware, sistema informatico, console per videogiochi, sistemi operativi e altre piattaforme.

Il programmatore, di norma, riceve l'SDK direttamente dallo sviluppatore della tecnologia o del sistema di destinazione. Spesso l'SDK viene distribuito su Internet. Molti SDK sono distribuiti gratuitamente per incoraggiare gli sviluppatori a utilizzare una determinata tecnologia o piattaforma.

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

Esempi di SDK :

5) Kit di sviluppo Java

6) SDK dei dispositivi Opera

Compilatori.

Compilatore -

1) Programma o mezzi tecnici, 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 il linguaggio di alto livello in codice assoluto o, talvolta, in linguaggio assembly. Informazioni di input per il compilatore ( fonte) è una descrizione dell'algoritmo o del programma in un linguaggio orientato ai problemi e l'output del compilatore è una descrizione equivalente dell'algoritmo in un linguaggio orientato alla macchina (codice oggetto).

Compilazione -

1) Traduzione di un programma in un linguaggio vicino al linguaggio macchina.

2) Traduzione di un programma scritto nella lingua sorgente in un modulo oggetto. Eseguito dal compilatore.

Compilare: tradurre un programma macchina da un linguaggio orientato ai problemi in un linguaggio orientato alla macchina.

Tipi di compilatori :

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

2) Flessibile. Modulare, basato su tabelle e programmato in un linguaggio di alto livello o implementato utilizzando un compilatore di compilatori.

3) Dialogo.

4) Incrementale. Ritrasmette frammenti di programma e aggiunte ad esso senza ricompilare l'intero programma.

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

6) Compilatore di compilatori. 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 permanentemente nella memoria principale e accessibile a riutilizzo molti compiti.

9) Autocompilazione. 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 un tale compilatore sono: il kernel, i caricatori sintattici e semantici.

Tipi di compilazione :

1) Lotto. Compilazione di più moduli sorgente in un unico 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 una determinata costante, è possibile attivare o disattivare la traduzione di parte del testo del programma.

Struttura del compilatore.

Il processo di compilazione prevede i seguenti passaggi:

1) Analisi lessicale. In questa fase, 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 stabilirne la semantica (significato), ad esempio legando gli identificatori alle loro dichiarazioni, tipi, verificando la compatibilità, determinando i tipi di espressione, ecc. Il risultato è solitamente chiamato "rappresentazione/codice intermedio" e può essere esteso da l'albero di analisi, un nuovo albero, un insieme astratto di comandi o qualcos'altro utile per un'ulteriore elaborazione.

4) Ottimizzazione. Rimuovere le strutture non necessarie e semplificare il codice mantenendone il significato. L'ottimizzazione può avvenire a diversi livelli e fasi, 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.

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

Trasmissione e post-produzione.

Un'importante caratteristica storica del compilatore, riflessa nel suo nome (inglese: compilare - mettere insieme, comporre), era che poteva anche eseguire il collegamento (cioè conteneva due parti: un traduttore e un linker). Ciò è dovuto al fatto che la compilazione separata e il collegamento come fase di assemblaggio separata sono emersi molto più tardi rispetto all'avvento dei compilatori. A questo proposito, al posto del termine “compilatore”, viene talvolta utilizzato come sinonimo il termine “traduttore”: sia nella vecchia letteratura, sia quando si vuole sottolineare la sua capacità di tradurre un programma in codice macchina (e viceversa, il Il termine “compilatore” è usato per enfatizzare la capacità di compilare da molti file (uno).

Interpreti.

Interprete (linguaggio di programmazione) -

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

2) Un tipo di traduttore che esegue l'elaborazione e l'esecuzione istruzione per istruzione (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 comandi o istruzioni di programma e li esegue immediatamente.

4) Un processore del linguaggio che analizza il programma sorgente riga per riga e contemporaneamente esegue le azioni prescritte, anziché generare un programma compilato in linguaggio macchina che viene successivamente eseguito.

Tipologie di interpreti.

Un semplice interprete analizza ed esegue immediatamente (l'interpretazione vera e propria) il programma comando per comando (o riga per riga) non appena 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 una riga) con un errore.

Un interprete di tipo compilatore è un sistema costituito da un compilatore che traduce il codice sorgente di un programma in una rappresentazione intermedia, ad esempio in bytecode o p-code, e dall'interprete stesso, che esegue il codice intermedio risultante (il così- chiamata macchina virtuale). Il vantaggio di tali sistemi è la maggiore velocità di esecuzione del programma (grazie alla rimozione dell'analisi del codice sorgente in un passaggio separato e una tantum e alla minimizzazione di questa analisi nell'interprete). Gli svantaggi sono un maggiore requisito di risorse e un requisito per la correttezza del codice sorgente. 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 p-code).

Se l'interprete del tipo compilatore viene diviso in componenti, il risultato è un compilatore del linguaggio e un semplice interprete con un'analisi minima del codice sorgente. Inoltre, il codice sorgente per un tale interprete non deve necessariamente avere formato testo o essere bytecode comprensibile solo da un determinato interprete, potrebbe essere il codice macchina di qualche piattaforma hardware esistente. Ad esempio, le macchine virtuali come QEMU, Bochs e VMware includono interpreti di codice macchina per processori della famiglia x86.

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

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

Va inoltre notato che le modalità di interpretazione si possono trovare non solo nel software, ma anche nell'hardware. Pertanto, molti microprocessori interpretano il codice macchina utilizzando il firmware integrato e i processori della famiglia x86, a partire dal Pentium (ad esempio, sull'architettura Intel P6), durante l'esecuzione del codice macchina, lo pre-traducono in un formato interno (in una sequenza di microoperazioni).

Algoritmo per un semplice interprete :

2. analizzare le istruzioni e determinare le azioni appropriate;

3. intraprendere azioni appropriate;

4. Se la condizione di conclusione del programma non viene raggiunta, leggere le seguenti istruzioni e andare al passo 2.

Vantaggi e svantaggi degli interpreti.

1) Maggiore portabilità dei programmi interpretati: il programma funzionerà 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 debug dei codici sorgente dei programmi.

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

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

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

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

Collegamento.

Linker (anche link editor, linker) - un programma che esegue il collegamento - prende uno o più moduli oggetto come input e assembla da essi 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 rese disponibili per l'uso da altri moduli.

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

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

Il linker generalmente non controlla i tipi e il numero di parametri di procedure e funzioni. Se è necessario combinare moduli oggetto di programmi scritti in linguaggi con digitazione forte, i controlli necessari devono essere eseguiti da un'utilità aggiuntiva prima di avviare l'editor dei collegamenti.

Assemblatore.

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

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

L'assemblaggio potrebbe non essere il primo o l'ultimo passo 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 disparate e non correlate di codice macchina e dati di programma, da cui (o da diversi moduli oggetto) può essere successivamente assemblato utilizzando 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 tracciare, monitorare, impostare o modificare passo passo i valori delle variabili durante l'esecuzione del programma, impostare e rimuovere punti di interruzione o condizioni di arresto e così via.

Elenco dei debugger.

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

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

3) Recinto elettrico: debugger della memoria.

4) GNU Debugger (GDB) - un debugger di programmi dal progetto GNU.

5) IDA è un potente disassemblatore e debugger di basso livello per 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 sistemi operativi Windows.

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

9) Sun Studio - ambiente di sviluppo software, incluso 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.

Il generatore di documentazione è un programma o pacchetto software che consente di ottenere documentazione destinata ai programmatori (documentazione API) e/o agli utenti finali del sistema, codice sorgente appositamente commentato e, in alcuni casi, moduli eseguibili (ottenuti in uscita del compilatore).

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

Documentare i commenti.

Un commento di documentazione è un commento con formato speciale su un oggetto programma destinato all'uso da parte di uno specifico generatore di documentazione. La sintassi dei costrutti utilizzati nella documentazione dei commenti dipende dal generatore di documentazione utilizzato.

I commenti di documentazione possono contenere informazioni sull'autore del codice, descrivere lo scopo dell'oggetto programma, il significato dei parametri di input e output per una funzione/procedura, esempi di utilizzo, possibili situazioni di eccezione e caratteristiche di implementazione.

I commenti di documentazione sono in genere formattati come commenti multilinea in stile C. In ogni caso il commento deve precedere l'elemento da documentare. Il primo carattere in un commento (e all'inizio delle righe di commento) deve essere *. I blocchi sono separati da righe vuote.

3. Visual Basic per le applicazioni

sistema operativo software

3.1 L'essenza di VisualBasic e la sua breve storia

Microsoft Visual Basic (VB) è uno strumento di sviluppo software sviluppato da Microsoft Corporation che include un linguaggio di programmazione e un ambiente di sviluppo. Il linguaggio Visual Basic ha ereditato lo spirito, lo stile e in parte la sintassi del suo antenato, il linguaggio BASIC, che ha molti dialetti. Allo stesso tempo, Visual Basic combina le procedure e gli elementi dei linguaggi di programmazione orientati agli oggetti e ai componenti. L'ambiente di sviluppo VB include strumenti per la progettazione visiva delle interfacce utente. (Vedi la tabella).

Visual Basic (funzionalità principali)

Visual Basic è considerato un buon strumento per sviluppare rapidamente prototipi di programmi, per sviluppare applicazioni di database e in generale per un metodo basato su componenti per creare programmi eseguiti su sistemi operativi della famiglia Microsoft Windows.

Nel processo di evoluzione, Visual Basic ha attraversato una serie di fasi successive che gli hanno permesso di diventare uno dei linguaggi di programmazione più popolari oggi. Quindi evoluzione VisualBasic è andato nel modo seguente:

1. Maggio 1991: viene rilasciato Visual Basic 1.0 per Microsoft Windows. La sintassi QBasic fu presa come base del linguaggio e l'innovazione che in seguito portò al linguaggio un'enorme popolarità fu il principio di connessione tra il linguaggio e l'interfaccia grafica.

2. Settembre 1992: viene rilasciato Visual Basic 1.0 per DOS. Non era completamente compatibile con la versione Windows di VB, poiché era una versione successiva di QuickBASIC e funzionava in modalità schermo basata su testo.

3. Novembre 1992: rilascio di Visual Basic 2.0. L'ambiente di sviluppo è diventato più facile da usare e più veloce.

4. nell'estate del 1993 - Visual Basic 3.0 fu rilasciato nelle versioni Standard e Professional. Inoltre, al pacchetto è stato aggiunto un motore per lavorare con i database di Access.

5. Agosto 1995 - Visual Basic 4.0 - una versione in grado di creare programmi Windows sia a 32 che a 16 bit.

6. Febbraio 1997 - Visual Basic 5.0 - a partire da questa versione è diventato possibile, insieme a applicazioni regolari, sviluppare componenti COM.

7. A metà del 1998 fu rilasciato Visual Basic 6.0. Successivamente, Microsoft ha cambiato radicalmente la sua politica riguardo ai linguaggi Basic. Invece di sviluppare Visual Basic, è stato creato un linguaggio completamente nuovo, Visual Basic .NET.

8. Nel 2005 è stata rilasciata una nuova versione di Visual Basic, in bundle con Visual Studio. Era soddisfatta della nuova interfaccia e delle nuove funzionalità. Il linguaggio è basato su Visual Basic.NET.

9. Alla fine del 2007 Microsoft ha rilasciato nuova versione Visual Basic - Visual Basic 2008, anch'esso basato su Visual Basic.NET.

In base alla funzionalità e alle specifiche dell'applicazione, si possono distinguere i seguenti tipi di questo programma:

1. Visual Basic classico (versioni 5-6) Questo linguaggio è fortemente legato al suo ambiente di sviluppo e al sistema operativo Windows, essendo esclusivamente uno strumento per scrivere applicazioni Windows

2. VisualBasicforApplications (VBA) Si tratta di uno strumento di programmazione, praticamente non diverso dal classico Visual Basic, progettato per scrivere macro e altri programmi applicativi per applicazioni specifiche. Ha ottenuto la massima popolarità grazie al suo utilizzo in Pacchetto Microsoft Ufficio. L'uso diffuso di Visual Basic for Applications, combinato con un'iniziale mancanza di attenzione ai problemi di sicurezza, ha portato all'uso diffuso di virus macro.

3. VisualBasicScriptingEdition (VBScript) Un linguaggio di scripting, che è una versione un po' troncata del solito Visual Basic. Utilizzato principalmente per automatizzare l'amministrazione Sistemi Windows, nonché per creare pagine ASP e script per Internet Explorer.

3.2 Interfaccia VisualBasicforApplication, principali funzioni e capacità

Creando VisualBasicforApplication, Microsoft Corporation si è posta come obiettivo principale la creazione di strumenti accessibili a utenti che non sono programmatori professionisti, ma allo stesso tempo sufficientemente qualificati per sviluppare e progettare programmi applicativi e applicazioni basati su Microsoft Office. È stato per risolvere questo problema che gli sviluppatori hanno creato VBA, dotandolo di una serie di funzionalità uniche. Uno di questi, il più prezioso per l'utente, è la possibilità di creare e utilizzare finestre di dialogo non standard (personalizzate) nei programmi aggiungendo un oggetto UserForm al progetto, nonché una comoda interfaccia utente.

L'interfaccia del programma VisualBasicforApplication è costituita da un complesso varie finestre e schede utilizzate in fase di progettazione dell'applicazione in fase di creazione, le principali delle quali sono:

1) Finestra Progetto (Fig. 2), che visualizza la struttura del progetto creato.

2) Finestra Codice programma (Fig. 3), che visualizza il codice programma del progetto creato e permette di scrivere un programma nel modo classico utilizzando l'editor di parole in codice integrato, di cui ce ne sono più di 16mila in VBA. Questa finestra consente anche di modificare il codice e verificarne la presenza di errori.

3) la scheda Proprietà (Fig. 4), che visualizza i parametri impostati per l'oggetto specificato e consente di modificare le impostazioni specificate.

Spostandosi tra finestre e schede, l'utente può personalizzare facilmente il progetto creato.

Utilizzando i moduli VBA creati dall'utente, è possibile creare finestre di dialogo personalizzate per visualizzare dati o ricevere valori dall'utente del programma nel modo che meglio si adatta alle esigenze del programma. Ad esempio, puoi creare un test, visualizzare una finestra di dialogo per visualizzare domande a scelta multipla e consentire all'utente di selezionare una delle opzioni di risposta che ritiene corretta.

Le finestre di dialogo non standard consentono al programma di interagire con l'utente nel modo più complesso e forniscono una varia forma di input e output di dati.

Una finestra di dialogo personalizzata viene creata in VBA aggiungendo un oggetto UserForm al progetto. Questo oggetto rappresenta una finestra di dialogo vuota; ha una barra del titolo e un pulsante di chiusura, ma manca di altri controlli. Una finestra di dialogo personalizzata viene creata aggiungendo controlli a un oggetto UserForm e in genere viene chiamata semplicemente modulo (Figura 5).

Ogni oggetto UserForm dispone di proprietà, metodi ed eventi che eredita dalla classe di oggetti UserForm.

Ogni oggetto UserForm contiene anche un modulo di classe in cui l'utente aggiunge i propri metodi e proprietà o scrive procedure di gestione degli eventi per un determinato modulo.

La possibilità di creare la propria interfaccia, indipendente dall'ambiente applicativo, come Excel, utilizzando moduli di visualizzazione è una delle funzionalità più preziose di VBA.

Le videate sono finestre di vario scopo e tipologia create dall'utente per la sua applicazione. Contengono controlli che consentono all'utente di scambiare informazioni con l'applicazione.

VBA utilizza il design grafico creato del modulo - con le impostazioni per le proprietà e i controlli del modulo - per ottenere tutte le informazioni necessarie per visualizzare la finestra di dialogo: le dimensioni della finestra di dialogo, i controlli in essa contenuti, ecc. Di conseguenza, VBA consente di visualizzare un modulo di finestra di dialogo con una singola istruzione.

Per visualizzare una finestra di dialogo personalizzata, utilizzare il metodo Show dell'oggetto UserForm. Se il modulo non è attualmente caricato in memoria, il metodo Show carica il modulo e lo visualizza. Se il modulo è già caricato, il metodo Show lo visualizza semplicemente.

La visualizzazione di una singola finestra di dialogo in genere non è sufficiente per completare un'attività. Quasi sempre si desidera determinare lo stato dei controlli di una finestra di dialogo per scoprire quali dati o opzioni ha selezionato l'utente. Ad esempio, se una finestra di dialogo viene utilizzata per ottenere informazioni dall'utente su quali colonne e righe deve essere ordinato un foglio di lavoro, è necessario essere in grado di scoprire quali valori l'utente ha immesso dopo la chiusura della finestra di dialogo e prima inizia effettivamente l'operazione di ordinazione.

In altri casi, potresti voler modificare dinamicamente i titoli dei pulsanti (o altri controlli) in una finestra di dialogo, aggiornare dinamicamente un'etichetta o un campo associato a un contatore o convalidare dinamicamente i dati immessi in una finestra di dialogo.

In VBA diventa possibile espandere in modo significativo l'insieme di funzioni integrate in un'applicazione standard, come Microsoft Excel, nonché creare funzioni i cui valori dipendono da determinate condizioni ed eventi.

VBA consente di programmare le funzioni della tabella. Per creare un foglio di lavoro separato per modulo software, è presente una scheda Inserisci modulo dal menu Visuale e un comando Modulo dal menu Inserisci macro. Successivamente apparirà un nuovo foglio di lavoro "Modele1". In un modulo di programma è necessario descrivere una funzione in VBA. Puoi lavorare nella finestra del modulo del programma come se fossi in una piccola finestra di editor di testo.

L'incorporamento delle funzioni viene effettuato dal comando Visualizzatore oggetti dal menu Visualizza. Le funzioni definite dall'utente vengono trattate come oggetti indipendenti nel programma. VBA ha un insieme significativo di funzioni integrate, dividendole in tipi.

Visual Basic consente di riservare variabili, con o senza dimensione, lavorare con vari tipi di dati, utilizzare costanti, lavorare con operatori e funzioni matematici e utilizzare operatori aggiuntivi. Viene fornito l'uso degli operatori di loop For Next, Do e oggetti del tipo "timer" (un cronometro invisibile nel programma). La precisione dell'impostazione dell'ora nel programma è di 1 millisecondo o 1/1000 di secondo. Il timer avviato è costantemente in funzione, ad es. la corrispondente procedura di gestione degli interrupt viene eseguita a un intervallo di tempo specificato, finché l'utente non arresta il timer o disabilita il programma.

In VBA è possibile impostare qualsiasi proprietà per un modulo, inclusi titolo, dimensione, tipo di bordo, colori di sfondo e carattere, carattere del testo e immagine di sfondo.

Se riassumiamo tutte le funzioni del programma, Visual Basic forApplication ti consente di:

1) lavorare con i controlli

Vantaggi :

1. Alta velocità di creazione di applicazioni con interfaccia grafica per MS Windows.

2. Sintassi semplice che ti consente di padroneggiare la lingua molto rapidamente.

3. Possibilità di compilazione sia in codice macchina che in codice P (a scelta del programmatore). In modalità debug, il programma è sempre (indipendentemente dalla scelta) compilato in codice P, che consente di mettere in pausa il programma, apportare modifiche significative al codice sorgente e quindi continuare l'esecuzione senza la necessità di una ricompilazione completa e di un riavvio del programma. .

4. Protezione contro gli errori associati all'uso dei puntatori e all'accesso alla memoria. Questo aspetto rende le applicazioni Visual Basic più stabili, ma è anche oggetto di critiche.

5. Possibilità di utilizzare la maggior parte delle funzioni WinAPI per espandere le funzionalità dell'applicazione. Questo problema è stato studiato in modo più approfondito da Dan Appleman, che ha scritto il libro "Visual Basic Programmer's Guide to the Win32 API".

Critica :

1. Gli aspetti di Visual Basic sono spesso criticati, come la possibilità di disabilitare il tracciamento delle variabili dichiarate, la capacità di convertire implicitamente le variabili e la presenza del tipo di dati “Variant”. Secondo i critici, ciò rende possibile scrivere codice estremamente pessimo. D'altra parte, questo può essere considerato un vantaggio, poiché VB non impone un “buon stile”, ma dà più libertà al programmatore.

2. Mancanza di puntatori, accesso alla memoria di basso livello, inserti ASM. Nonostante il paradigma Visual Basic permetta al programmatore VB medio di fare a meno di tutto ciò, anche queste cose diventano spesso oggetto di critica. E sebbene, utilizzando funzionalità non documentate e alcuni trucchi, tutto ciò possa essere implementato in VB (ad esempio, utilizzando funzioni per ottenere puntatori VarPtr(), StrPtr() e ObjPtr()); Usare questi trucchi è molto più difficile che, ad esempio, in C++.

Tuttavia, vale la pena notare che tutti gli svantaggi del linguaggio derivano dal suo vantaggio principale: la facilità di sviluppare un'interfaccia grafica. Pertanto, molti programmatori utilizzano Visual Basic per sviluppare l'interfaccia utente e implementare la funzionalità del programma sotto forma di librerie a collegamento dinamico (DLL) scritte in un altro linguaggio (molto spesso C++).

4. Parte pratica

4.1 Dichiarazione del problema

Disegna uno schema a blocchi e scrivi un programma in Pascal. Calcolare il valore intrinseco dei titoli. Il valore intrinseco di un bene è determinato dal futuro flusso di reddito derivante da quel bene.

pv – valore intrinseco attuale del titolo

c – ricavo atteso dal bene in questione

r – tasso di rendimento atteso dall'investitore per il reddito con il corrispondente livello di rischio

n – fattore tempo (in mesi).

Esegui analisi di mercato e ordina i risultati in ordine crescente rispetto ai dati ottenuti.

4.2 Testo del programma in linguaggio Pascal

pv: array di reali;

writeLn('Inserisci l'incasso previsto dal ',i,'esimo bene c:');

writeLn('Inserisci il tasso di rendimento atteso dall'investitore r:');

pv:=c/exp(ln(1+r)*i);

writeLn('il valore intrinseco attuale dell'asset è', pv[i]:1:3);

writeLn('Il valore intrinseco del bene è', s);

per j:=da 1 a 4 do

se pv[j] > pv allora

writeLn('Valore del bene ordinato in ordine crescente');

per i:=da 1 a 5 fai

scriviLn(pv[i]:1:3);

4.3 Caso di prova

4.4 Risultato dell'esecuzione del programma su un esempio di test

Conclusione

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

Tuttavia, essendo un tipo di software altamente specializzato, dispone di un certo insieme di proprietà e funzioni uniche che forniscono soluzioni ai suoi problemi specifici.

È necessario notare la tendenza emergente verso la semplificazione del processo di programmazione e la creazione di una certa sottoclasse: programmazione semi-professionale per scopi applicati.

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

È a questo scopo che Microsoft ha sviluppato il pacchetto software VisualBasicforApplication, che semplifica il processo di programmazione e consente agli utenti, piuttosto che ai programmatori, di impegnarsi nella programmazione delle applicazioni. Questa opportunitàè stato implementato principalmente creando una sezione del programma - "Script Editor" e la possibilità di registrare ed eseguire "Macro" come un tipo separato di moduli graficamente programmabili. È stata implementata la possibilità di creare applicazioni con interfaccia grafica per MS Windows. Un altro vantaggio di questo tipo di software è la sua sintassi semplice, che consente di padroneggiare rapidamente la lingua e di utilizzarla per la programmazione in tutte le applicazioni standard di Microsoft Office.

Pertanto, è difficile sopravvalutare l'importanza degli strumenti in generale, e di VisualBasicforApplication in particolare, sebbene esistano anche i difetti, come menzionato sopra. Ma questi non sono nemmeno aspetti negativi del prodotto, ma piuttosto linee guida per un ulteriore miglioramento del software sotto forma di VisualBasicforApplication.

1. Linguaggi algoritmici in tempo reale / Ed. Yanga S. / 2004

2. PC Magazine Edizione russa n. 2 2008 L'informatica oggi.

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

4. Informatica e tecnologie dell'informazione: Libro di testo / Ed. Romanova D.Yu. / Casa editrice Eksmo LLC, 2007.

5. L'ultima enciclopedia del personal computer / Ed. Leontyeva V. /Mosca, 1999. – 271 pag.

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

7. Pedagogia / Ed. Pidkasistogo P.I./ – M.: Società Pedagogica Russia, 2000.

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

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

10. Nessun problema con Excel 2000. /Ed. Kowalski/ – M.: Binom, 2000.

11. "Lavoro efficace in Windows 98" / Ed. Stinson K. / 2000. – 247 pag.

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 di informatica. Alekseev E.G. http://www.stf.mrsu.ru/economic/lib/Informatics/text/Progr.html\

Inviare il tuo buon lavoro nella knowledge base è semplice. Utilizza il modulo sottostante

Studenti, dottorandi, giovani scienziati che utilizzano la base di conoscenze nei loro studi e nel loro lavoro ti saranno molto grati.

Pubblicato su http://www.allbest.ru/

Esercizio 1

Software strumentale, suo scopo e composizione

Compito 2

La prima fase è l'affermazione del problema

La seconda fase è una descrizione economica e matematica del problema e la scelta di un metodo per risolverlo

La terza fase: l'algoritmo

La quarta fase è la programmazione

Quinta fase: debug

Bibliografia

Esercizio 1

Software strumentale, suo scopo e composizione

Software

Un insieme di programmi progettati per risolvere i problemi su un PC è chiamato software. La composizione del software per PC è chiamata configurazione software.

I software possono essere suddivisi in tre categorie:

software di sistema (programmi di uso generale) che eseguono varie funzioni ausiliarie, come la creazione di copie delle informazioni utilizzate, la fornitura di informazioni di aiuto sul computer, il controllo della funzionalità dei dispositivi informatici, ecc.

software applicativo che fornisce il lavoro necessario su un PC: modifica di documenti di testo, creazione di disegni o immagini, elaborazione di matrici di informazioni, ecc.

strumento software (sistemi di programmazione) che garantisce lo sviluppo di nuovi programmi per computer in un linguaggio di programmazione.

Software di sistema

Questi programmi di uso generale non sono associati ad un'applicazione specifica del PC e svolgono funzioni tradizionali: pianificazione e gestione delle attività, gestione degli I/O, ecc.

In altre parole, i programmi di sistema eseguono varie funzioni ausiliarie, ad esempio creando copie delle informazioni utilizzate, fornendo informazioni di aiuto sul computer, controllando la funzionalità dei dispositivi informatici, ecc.

Il software di sistema include:

sistemi operativi (questo programma viene caricato nella RAM quando il computer è acceso) metodo utilizza il programma applicativo

programmi shell (forniscono un modo più comodo e visivo per comunicare con un computer rispetto all'utilizzo riga di comando DOS, ad esempio Norton Commander)

le shell operative sono sistemi di interfaccia utilizzati per creare interfacce grafiche, multiprogrammazione, ecc.

I driver (i programmi progettati per controllare le porte dei dispositivi periferici vengono solitamente caricati in RAM all'avvio del computer)

utilità (programmi di supporto o di utilità che presentano all'utente una serie di servizi aggiuntivi)
Le utilità includono:

file manager o gestori di file

strumenti di compressione dinamica dei dati (consentono di aumentare la quantità di informazioni sul disco grazie alla sua compressione dinamica)

strumenti di visualizzazione e riproduzione

Strumenti diagnostici; gli strumenti di monitoraggio consentono di controllare la configurazione del computer e verificare la funzionalità dei dispositivi informatici, principalmente dei dischi rigidi

gli strumenti di comunicazione (programmi di comunicazione) sono progettati per organizzare lo scambio di informazioni tra computer

strumenti di sicurezza informatica ( backup, programma antivirus).

Va notato che alcune utilità sono incluse nel sistema operativo, mentre l'altra parte funziona in modo autonomo. La maggior parte del software generale (di sistema) è inclusa nel sistema operativo. Parte del software generale è inclusa nel computer stesso (alcuni programmi del sistema operativo e test di controllo sono registrati nella ROM o PROM installata sul computer) sistema di bordo). Alcuni dei software comuni sono programmi autonomi e vengono forniti separatamente.

Software applicativo

I programmi applicativi possono essere utilizzati indipendentemente o come parte di sistemi software o pacchetti. Software applicativo: programmi che forniscono direttamente il lavoro necessario su un PC: modifica di documenti di testo, creazione di disegni o immagini, creazione fogli di calcolo eccetera.

I pacchetti software applicativi sono un sistema di programmi che, a seconda del campo di applicazione, si suddividono in pacchetti orientati ai problemi, di uso generale e pacchetti integrati. I moderni pacchetti integrati contengono fino a cinque componenti funzionali: processore di test e tabelle, DBMS, redattore grafico, impianti di telecomunicazioni.

Il software applicativo, ad esempio, include:

Suite MS OFFICE di applicazioni per ufficio

Sistemi contabili

Sistemi analitici finanziari

Pacchetti di gestione integrata dell'ufficio

Sistemi CAD (sistemi di progettazione assistita da computer)

Editor HTML o Web

Browser: visualizzatori di pagine Web

Redattore grafico

Software dello strumento

Il software tool 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 creare un file con il testo sorgente del programma.

2. Compilatore o interprete. Il testo sorgente viene tradotto in codice oggetto intermedio utilizzando un programma compilatore. Il codice sorgente di un programma di grandi dimensioni è composto da diversi moduli (file sorgenti). Ogni modulo viene compilato in un file separato con codice oggetto, che poi deve essere combinato in uno solo.
3. Un editor di collegamento o assemblatore che collega moduli oggetto e produce un'applicazione funzionante come codice eseguibile in output.

Il 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) volti a creare applicazioni Windows. Questo processo è automatizzato in ambienti di progettazione rapida. In questo caso vengono utilizzati componenti visivi già pronti, configurati utilizzando editor speciali.

Gli editor più popolari (sistemi di programmazione di programmi che utilizzano strumenti visivi) per la progettazione visiva:

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.

Compito 2

Creare e compilare una dichiarazione cumulativa di competenza dei pagamenti per le camere dello Start Hotel per il marzo 2004. Le camere singole dell'hotel costano 750 rubli per ogni cliente. al giorno, camere doppie - 650 rub. da ciascun cliente. La stanza può essere prenotata. Le prenotazioni alberghiere possono essere di due tipologie: di gruppo e individuali e si pagano separatamente. In caso di prenotazione di gruppo il pagamento del primo giorno di soggiorno aumenta del 25% del prezzo della camera; nei casi in cui non vi sia prenotazione o sia individuale non è previsto alcun pagamento aggiuntivo;

Nella tabella sono presentati la tipologia di prenotazione ed il numero di giorni di permanenza in ciascuna camera.

Calcolare il costo di prenotazione per ogni camera, se presente. Calcola il pagamento di tutti i giorni di soggiorno per ogni camera d'albergo. Calcolare i dati finali dell'hotel: pagamento della prenotazione, numero di giorni di soggiorno al mese, pagamento completo dell'hotel per il mese. Determinare il numero medio di giorni di permanenza, il pagamento massimo e minimo per i giorni di permanenza.

Dichiarazione di competenza del pagamento per le camere dell'hotel "Start" perMarzo 2004

Numero di Camera

Tipo di numero occupato

Tipo di armatura

Pagamento per la prenotazione (RUB)

Numero di giorni di permanenza

1 posto

1 posto

1 posto

2 posti

2 posti

2 posti

2 posti

Totale:

Costruisci diagrammi:

· Grafico a torta per la colonna “Numero di giorni di permanenza”.

· Istogramma per la colonna “Pagamento per giorni di soggiorno”.

Prospetto di competenza del pagamento delle camere dello Start Hotel per il mese di marzo 2004.

È necessario generare e compilare una dichiarazione di competenza del pagamento per le camere dello Start Hotel per il marzo 2004.

Consideriamo le fasi della preparazione di una soluzione a un problema su un PC.

La prima fase è l'affermazione del problema

Lo scopo di risolvere questo problema è calcolare il pagamento delle prenotazioni e dei giorni di soggiorno degli ospiti dello Start Hotel per il mese di marzo 2004.

Per risolvere il problema vengono utilizzati i seguenti indicatori (informazioni di input): numero di camera, tipologia di camera occupata, tipo di prenotazione, costo della camera per persona al giorno, numero di giorni di permanenza. Informazioni in uscita: pagamento della prenotazione, pagamento dei giorni di soggiorno.

La seconda fase è una descrizione economica e matematica del problema e la scelta di un metodo per risolverlo

Il problema in esame viene risolto con il metodo del conteggio diretto.

Indichiamo i dati iniziali:

OB - pagamento per la prenotazione;

TB: tipo di armatura;

SNChD - tariffa a camera per persona al giorno;

KDP - numero di giorni di permanenza;

ODP - pagamento dei giorni di soggiorno;

Il costo della prenotazione è calcolato come segue:

OB = 0,25*SNCHD,

se TB = “gruppo”, altrimenti 0.

Il pagamento dei giorni di soggiorno viene calcolato come segue:

ODP = OB + SNCHD*KDP.

Per risolvere questo problema utilizzeremo Microsoft Excel.

La terza fase: l'algoritmo

Lanciamo Programma Excel. Eseguiremo il lavoro sul Foglio 1.

Nell'intervallo di celle A1:G1 inseriamo il nome del grafico. Per dare all'intestazione della tabella un aspetto estetico, posizioneremo i nomi dei grafici al centro della cella verticalmente e orizzontalmente con il ritorno a capo. Per fare ciò, seleziona l'intervallo di celle A1:G1, richiama il menu contestuale (fai clic sull'area selezionata fare clic con il tasto destro mouse), seleziona il comando Formato celle dal menu. Nella finestra di dialogo che appare, seleziona la scheda Allineamento, imposta le opzioni: Orizzontale - centrato; Verticale - centrato; Avvolgi le parole e fai clic su OK.

Nelle colonne A, B, C, D e F inseriamo i dati specificati nell'attività. Successivamente, effettueremo i calcoli necessari utilizzando le formule. Di seguito è riportata una tabella di calcolo in forma formulaica e numerica.

Tabella in forma di formula.

Numero di Camera

Tipo di numero occupato

Costo della camera per persona al giorno (RUB)

Tipo di armatura

Pagamento per la prenotazione (RUB)

Numero di giorni di permanenza

Pagamento per giorni di soggiorno (RUB)

1 posto

SE(D2="gruppo";0,25*C2;0)

1 posto

SE(D3="gruppo";0,25*C3;0)

1 posto

SE(D4="gruppo";0,25*C4;0)

2 posti

SE(D5="gruppo";0,25*C5;0)

2 posti

SE(D6="gruppo";0,25*C6;0)

2 posti

SE(D7="gruppo";0,25*C7;0)

2 posti

SE(D8="gruppo";0,25*C8;0)

Totale:

=SOMMA(E2:E8)

=SOMMA(F2:F8)

=SOMMA(G2:G8)

Di conseguenza, otteniamo i seguenti risultati.

Numero di Camera

Tipo di numero occupato

Costo della camera per persona al giorno (RUB)

Tipo di armatura

Pagamento per la prenotazione (RUB)

Numero di giorni di permanenza

Pagamento per giorni di soggiorno (RUB)

1 posto

1 posto

1 posto

2 posti

2 posti

2 posti

2 posti

Totale:

537,50 rubli.

RUB 18.737,50

Determiniamo il numero medio di giorni di permanenza, l'importo del pagamento massimo e minimo per i giorni di permanenza. Per fare ciò, utilizzeremo rispettivamente le funzioni statistiche AVERAGE(), MAX() e MIN(). Di seguito è riportata una tabella con calcoli aggiuntivi in ​​forma formulaica e numerica.

Di seguito viene presentata una tabella con calcoli aggiuntivi sotto forma di formula.

Sotto ci sono Grafico a torta secondo la colonna “Numero di giorni di soggiorno” e un istogramma secondo la colonna “Pagamento per giorni di soggiorno”.

La quarta fase è la programmazione

Non è necessaria alcuna programmazione per risolvere questo problema.

Quinta fase: debug

Per verificare il corretto funzionamento delle formule inserite è necessario calcolare manualmente i valori di controllo.

Calcoliamo i valori di controllo per la stanza 31.

OB = 0,25*750 = 187,5, poiché TB = “gruppo”.

PRODOTTO = 187,5 + 750*4 = 3187,5.

Calcoliamo i valori di controllo per la stanza 35.

OB = 0, poiché TB non è uguale a “gruppo”.

PRODOTTO = 650*1 = 650.

Questi valori di controllo coincidono con i valori calcolati nella tabella, pertanto l'attività è stata completata correttamente.

Bibliografia

1. Ilyushechkin V., Kostin A. Software di sistema - M .: Scuola superiore, 2008. 127 p.

2. Rudenko V.D. Corso di informatica. - K.: Phoenix, 2008. - 368 pag.

3. Stepanov A. Informatica: libro di testo per le università. 3a edizione. 2003. - 768 pag.

Pubblicato su Allbest.ru

Documenti simili

    Software di sistema, applicativi e strumentali. I pacchetti software applicativi più comuni. Scopo e struttura programmi di sistema. Compilare una tabella e lavorare con i risultati in Excel, filtrare i dati e costruire un grafico.

    test, aggiunto il 29/01/2014

    L'essenza del concetto di "software". Tipi di programmi applicativi. Moderni sistemi di programmazione per computer personale. Livelli software: base, sistema, servizio. Classificazione del software di utilità.

    abstract, aggiunto il 01/04/2010

    Definizione del concetto ed essenza del software. Ripassa i fondamenti dei programmi interpretati e compilati. Caratteristiche dei programmi proprietari, aperti, gratuiti, di sistema, applicativi e strumentali; principi fondamentali della loro applicazione.

    abstract, aggiunto il 06/11/2014

    L'essenza e lo scopo del software è un insieme di programmi che controllano il funzionamento di un computer o sistema automatizzato. Funzioni di un sistema operativo: un insieme di programmi interagenti che garantiscono il funzionamento (funzionamento) di un computer.

    test, aggiunto il 18/01/2011

    Sviluppo di pacchetti software applicativi integrati, meccanismi come OLE e OpenDoc, garantendo il loro funzionamento congiunto. Analisi dei complessi più noti costituiti da programmi applicativi che funzionano sia in modo indipendente che integrato.

    abstract, aggiunto il 03/03/2012

    Un insieme di programmi utilizzati per funzionare su un computer. Scopo funzionale del software, norme legali per il suo utilizzo. Sistema operativo e programmi di servizio. Sviluppo di programmi per computer in un linguaggio di programmazione.

    presentazione, aggiunta il 10/10/2016

    Scopi e obiettivi dell'ingegneria del software. Concetto di software. Sei principi per utilizzare il software in modo efficace. Tipi di software: a livello di sistema, di rete e applicativo. Principi di costruzione del software.

    lavoro del corso, aggiunto il 29/06/2010

    Revisione e caratteristiche del software per computer come insieme di programmi per un sistema di elaborazione delle informazioni. Caratteristiche dell'hardware come complesso di dispositivi elettrici e meccanici inclusi in un computer. Interazione dei sistemi.

    presentazione, aggiunta il 23/12/2010

    Principali tipologie di software. Caratteristiche dei pacchetti software applicativi. Tipi e gruppi di sistemi di numerazione. Conversione di numeri interi e frazionari da un sistema numerico a un altro. Operazioni aritmetiche nel sistema binario. Crimini informatici.

    foglio informativo, aggiunto il 19/01/2014

    Classificazione del software, sue caratteristiche, scopo. Software per lavorare con testo, immagini, applicazioni, ufficio, per lavorare su Internet. Sistemi di programmazione, specifiche del software, cosa sono i virus.

Il software per strumenti è un software destinato all'uso nella progettazione, nello sviluppo e nella manutenzione di programmi, in contrapposizione al software applicativo e di sistema.

Il livello strumentale (traduttori e compilatori di linguaggi di programmazione, sistemi di programmazione) garantisce la creazione di nuovi programmi per un personal computer.

Linguaggio di programmazione- un sistema di segni formale progettato per descrivere algoritmi in una forma conveniente per l'esecutore (ad esempio, un computer). Un linguaggio di programmazione definisce un insieme di regole lessicali, sintattiche e semantiche utilizzate per comporre un programma per computer. Consente al programmatore di determinare esattamente a quali eventi reagirà il computer, come i dati verranno archiviati e trasmessi e quali azioni dovrebbero essere eseguite su questi dati in varie circostanze.

I linguaggi di programmazione sono suddivisi in basso livello E alto livello le lingue.

Linguaggio di programmazione di basso livello- un linguaggio di programmazione vicino alla programmazione diretta nei codici macchina.

Di norma, utilizza le funzionalità di una specifica famiglia di processori. Un noto esempio di linguaggio di basso livello è la lingua assemblatore.

Linguaggio di programmazione di alto livello- un linguaggio di programmazione progettato per la velocità e la facilità d'uso da parte del programmatore. La parola “alto livello” qui significa che il linguaggio è progettato per risolvere problemi astratti di alto livello e funziona non con istruzioni per apparecchiature, ma con concetti logici e astrazione di dati. Ciò consente di programmare rapidamente attività complesse e garantisce una relativa indipendenza dall'hardware. L'uso di una varietà di traduttori e interpreti garantisce che i programmi scritti in linguaggi di alto livello comunichino con diversi sistemi operativi e hardware, mentre il loro codice sorgente rimane sostanzialmente invariato.

Questo tipo di isolamento dei linguaggi di alto livello dall'implementazione hardware del computer, oltre a molti vantaggi, presenta anche degli svantaggi. In particolare non consente di creare istruzioni semplici e precise per l'attrezzatura utilizzata. I programmi scritti in linguaggi di alto livello sono più facili da comprendere per un programmatore, ma sono molto meno efficienti rispetto ai loro omologhi creati utilizzando linguaggi di basso livello. Una conseguenza di ciò è stata l'aggiunta del supporto per l'uno o l'altro linguaggio di basso livello (linguaggio assembly) alla maggior parte dei moderni linguaggi di programmazione professionali di alto livello.

Le lingue più comuni di questo tipo sono C++, Visual Basic, Giava, Pitone, Rubino, Perl, Delfi, PHP.


Anche i linguaggi di programmazione possono essere suddivisi in compilato E interpretabile.

Programmare in un linguaggio compilato utilizzando un programma speciale compilatore convertito (compilato) in una serie di istruzioni per di questo tipo processore (codice macchina) e viene quindi scritto in un file eseguibile, che può essere avviato per l'esecuzione come programma separato. In altre parole, il compilatore traduce un programma da un linguaggio di alto livello a un linguaggio di basso livello che il processore può comprendere.

Se il programma è scritto in un linguaggio interpretato, allora interprete esegue (interpreta) direttamente il suo testo senza previa traduzione. In questo caso il programma rimane nella lingua originale e non può essere avviato senza interprete. Possiamo dire che il processore di un computer è un interprete del codice macchina.

In breve, compilatore traduce il programma in linguaggio macchina immediatamente e nella sua interezza, creando allo stesso tempo un programma separato, e interprete si traduce in linguaggio macchina direttamente durante l'esecuzione del programma.

La divisione in lingue compilate e interpretate è alquanto arbitraria. Quindi, per qualsiasi linguaggio compilato tradizionalmente, come Pascal, puoi scrivere un interprete. Inoltre, la maggior parte degli interpreti “puri” moderni non esegue direttamente i costrutti linguistici, ma li compila in una rappresentazione intermedia di alto livello (ad esempio, con dereferenziazione di variabili ed espansione di macro).

È possibile creare un compilatore per qualsiasi linguaggio interpretato, ad esempio il linguaggio Lisp, interpretato in modo nativo, può essere compilato senza alcuna restrizione. Il codice generato durante l'esecuzione del programma può anche essere compilato dinamicamente durante l'esecuzione.

In generale, i programmi compilati vengono eseguiti più velocemente e non richiedono programmi aggiuntivi, poiché sono già stati tradotti in linguaggio macchina. Allo stesso tempo, ogni volta che il testo del programma viene modificato, è necessario ricompilarlo, il che crea difficoltà durante lo sviluppo. Inoltre il programma compilato può essere eseguito solo sullo stesso tipo di computer e solitamente sullo stesso sistema operativo per il quale è stato progettato il compilatore. Per creare un eseguibile per un diverso tipo di macchina, è necessaria una nuova compilazione.

Le lingue interpretate hanno alcune specificità caratteristiche aggiuntive, inoltre, i programmi su di essi possono essere avviati immediatamente dopo le modifiche, il che facilita lo sviluppo. Un programma in un linguaggio interpretato può spesso essere eseguito su diversi tipi di macchine e sistemi operativi senza ulteriori sforzi. Tuttavia, i programmi interpretati vengono eseguiti notevolmente più lentamente di quelli compilati e non possono essere eseguiti senza un programma interprete aggiuntivo.

Alcune lingue, ad es. Giava E C#, sono tra compilato e interpretato. Vale a dire, il programma non è compilato in linguaggio macchina, ma in codice di basso livello indipendente dalla macchina, codice byte. Il bytecode viene quindi eseguito macchina virtuale. L'interpretazione viene solitamente utilizzata per eseguire il bytecode, sebbene singole parti di esso possano essere tradotte in codice macchina direttamente durante l'esecuzione del programma utilizzando la tecnologia di compilazione al volo per accelerare il programma ( Compilazione just-in-time). Per Giava il bytecode viene eseguito dalla macchina virtuale Giava (macchina virtuale Java), Per C# - Runtime del linguaggio comune.

Lezioni di linguaggio di programmazione. Convenzionalmente, i linguaggi di programmazione possono essere suddivisi nelle seguenti classi (Fig. 2.).

IN linguaggi di programmazione funzionale Gli elementi principali del design sono le funzioni. I testi dei programmi nei linguaggi di programmazione funzionale descrivono "come risolvere un problema", ma non prescrivono una sequenza di azioni per risolverlo.

Le seguenti sono generalmente considerate le principali proprietà dei linguaggi di programmazione funzionale:

· brevità e semplicità;

· tipizzazione rigorosa;

· modularità;

· funzioni - oggetti di calcolo;

· purezza (nessun effetto collaterale);

· calcoli ritardati (pigri).


Riso. 2. Classi di linguaggi di programmazione

Esempi di linguaggi di programmazione funzionale: Lisp, Haskell, Clean, ML, ecc.

Programmazione proceduraleè un paradigma di programmazione basato sul concetto chiamata di procedura. Le procedure sono note anche come subroutine, metodi o funzioni (non lo sono funzioni matematiche, ma funzioni simili a quelle utilizzate nella programmazione funzionale). Le procedure contengono semplicemente una sequenza di passaggi da eseguire. Durante l'esecuzione del programma, qualsiasi procedura può essere chiamata da qualsiasi luogo, inclusa la procedura stessa.

Esempi di linguaggi di programmazione procedurale: Ada, BASIC, C, C++, Pascal, Visual Basic, Dilphi, ecc.

Linguaggio di descrizione dell'interfaccia O IDL(Inglese) Linguaggio di descrizione dell'interfaccia) è un linguaggio informatico puramente descrittivo, sintatticamente simile al C++.

Esempi di linguaggi di descrizione dell'interfaccia: CORBA IDL (sviluppato da Oh mio Dio per descrivere le interfacce degli oggetti distribuiti - nomi dei metodi e tipi di variabili argomento), COM IDL (uno sviluppo Microsoft simile a CORBA IDL, creato per descrivere le interfacce tra i moduli COM).

Linguaggio di programmazione orientato agli oggetti(Linguaggio OO) - un linguaggio che favorisce la programmazione orientata agli oggetti. I metodi utilizzati nei moderni linguaggi OO sono:

Eredità. Creazione di una nuova classe di oggetti aggiungendo nuovi elementi (metodi). Attualmente, i linguaggi OO consentono l'ereditarietà multipla, ad es. combinare le capacità di diverse altre classi in un'unica classe.

Incapsulamento. Nascondere i dati, che (se implementato correttamente) consente di apportare modifiche a parti del programma in modo indolore per le altre parti. Ciò semplifica notevolmente la manutenzione e l'aggiornamento del software.

Polimorfismo. Quando si eredita, alcune parti (metodi) della classe genitore vengono sostituite da nuove che implementano azioni specifiche per un dato discendente. Pertanto, l'interfaccia della classe rimane la stessa, ma l'implementazione dei metodi con lo stesso nome e insieme di parametri differisce.

Digitando. Permette di eliminare molti errori al momento della compilazione; le operazioni vengono eseguite solo su oggetti del tipo appropriato.

Esempi di linguaggi di programmazione OO: C++, Delphi (Object Pascal), C#, Java, ecc.

Programmazione logica- un paradigma di programmazione, nonché una sezione di matematica discreta che studia i metodi e le capacità di questo paradigma, basato sulla derivazione di fatti nuovi da fatti dati secondo regole logiche date. La programmazione logica si basa sulla teoria della logica matematica. Il linguaggio di programmazione logica più famoso è Prologo, che è essenzialmente un motore di inferenza universale, che opera presupponendo un mondo chiuso di fatti.

Linguaggio di scrittura(Inglese) linguaggio di scripting, chiamato anche linguaggio di scripting listen)) è un linguaggio di programmazione progettato per scrivere "script", sequenze di operazioni che un utente può eseguire su un computer. Un tempo venivano spesso chiamati semplici linguaggi di scripting linguaggi di elaborazione batch (lingue batch). Gli script vengono sempre interpretati, non compilati.

Nel programma applicativo, scenario (sceneggiatura) è un programma che automatizza alcune attività che, senza uno script, l'utente eseguirebbe manualmente utilizzando l'interfaccia del programma.

Esempi di linguaggi di programmazione di scripting: VBA (Visual Basic Application), AutoLISP, 3DMAX Script, JCL, JavaScript, ecc.

Attualmente, uso diffuso sistemi informatici con architetture cluster e GRID si sono posti il ​​compito di creare linguaggi di programmazione di alto livello, potenti e di facile utilizzo che consentissero la creazione di linguaggi di programmazione complessi, ma allo stesso tempo app veloci, utilizzando in modo efficace calcolo parallelo. Uno di questi linguaggi è attualmente MC# (un linguaggio di programmazione orientato agli oggetti di alto livello per la piattaforma .NET che supporta la creazione di programmi che funzionano in un ambiente distribuito con chiamate asincrone).

Domande di autotest:

1. Software.

2. Livello base.

3. Livello di sistema software.

4. Livello di servizio del software.

5. Livello applicativo del software.

6. Cosa sono i cosiddetti driver di dispositivo?

7. Cosa sono le utenze?

8. Definire un linguaggio di programmazione.

9. Cos'è un interprete?

10. Cos'è un compilatore?

11. Fornisci esempi di linguaggi di programmazione di basso e alto livello, qual è la loro differenza?

12. Quali classi di linguaggi di programmazione si possono distinguere? Fornisci esempi per ogni classe.

13. Nominare le principali proprietà dei linguaggi di programmazione funzionale

14. Indica quali metodi vengono utilizzati nei moderni linguaggi di programmazione orientati agli oggetti.

15. Cos'è uno script (script)?

Un sistema strumentale è un sistema software (è meglio parlare di un ambiente software, in cui includiamo l'utente, poiché è l'utente, le sue conoscenze, abilità, competenze che rendono questo sistema meno o più efficace) per il sistema accelerato e a basso sviluppo delle risorse di alcuni altri programmi (o elaborazione dati), sia di sistema che applicativi, e di nuove strumentali.

Esempio. Consideriamo un ambiente strumento: un editor grafico che consente di visualizzare oggetti grafici in due modi principali: vettoriale o raster. L'approccio vettoriale forma dinamicamente e gradualmente un oggetto sullo schermo (che è considerato come uno spazio di coordinate) secondo la sua rappresentazione, composta da primitive grafiche. L'approccio raster forma l'intero oggetto sullo schermo in base al suo layout (modello, primitive grafiche nella memoria video), costituito da singoli gruppi di pixel in una matrice bidimensionale di pixel (analoga a un foglio di disegno con un sistema di coordinate cartesiane). Questa matrice registra informazioni sulla luminosità e il colore del cluster di immagini (a volte 1-2 byte o più per pixel) e la matrice stessa può avere una dimensione di 1024x1024 pixel o più. L'immagine generata nella matrice di pixel viene archiviata nella memoria video del display e visualizzata sullo schermo in modalità di rigenerazione dei fotogrammi. Un'immagine a colori (disegno a colori) è la manipolazione dei pixel di questa matrice. Gli editor di immagini grafiche 3D consentono non solo di progettare oggetti 3D, ma anche di spostarli lungo un percorso specificato, ovvero di eseguire animazioni. Uno dei potenti ambienti grafici è il pacchetto 3D-Studio Max di Autodesk. Oltre a questo pacchetto, sono ampiamente utilizzati i pacchetti grafici:

GRAFLotus Freelance – per lavorare con la grafica aziendale e computerizzata;

Splash e Fanta – per lavori nel campo del design e filmati al computer;

AutoCAD – per l'automazione dei lavori di progettazione e costruzione;

CorelDraw, PaintBrush, AdobeIllustrator: per una varietà di applicazioni.

I traduttori sono discussi in dettaglio di seguito.

Consideriamo i sistemi di interfaccia per fornire un'interfaccia amichevole tra utenti e programmi).

Esempio. Il primo sistema di interfaccia è Norton Commander (Norton Commander, autore - Peter Norton). Sistemi come Norton Commander (NC) sono chiamati shell operative e possono essere classificati come ambienti di strumenti (strumenti per un'interfaccia più comoda e confortevole con il sistema operativo, con file system, bypassando il noioso linguaggio di comando del sistema operativo). Tale sistema consente di copiare, creare, eliminare, rinominare, spostare, visualizzare e cercare file in modo visivo e conveniente, ecc. NC utilizza tasti di controllo e funzione che corrispondono a operazioni e risposte specifiche del sistema:

Esc – annulla la funzione eseguita;

Invio – esecuzione della funzione;

Tab – cambia il pannello corrente (attivo) con un altro (precedentemente passivo);

PgUp (PgDn) – sposta una pagina avanti (indietro);

Home (Fine) – imposta l'inizio (fine) della directory;

, , , – tasti per spostare il cursore a sinistra, in alto, a destra, in basso;

Ctrl-S (pressione simultanea dei tasti Ctrl e S) - un carattere a sinistra;

Ctr-D (Ctr-A,Сtrl-F) – un carattere a destra (una parola a sinistra, una parola a destra);

F1 – tasto di aiuto, suggerimenti sullo stato attivo (tasto di aiuto);

F2 – scrive il file attivo su disco;

F3 – visualizza il contenuto del file attivo;

F4 – modifica del file attivo;

F5 – copia del file attivo nella directory attiva su un altro pannello;

F6 – rinomina (sposta) il file attivo;

F7 – crea una nuova directory (sottodirectory);

F8 – cancella il file attivo;

F9 – attivazione comandi da pannello (menù di sistema) NC;

F10 – esci dall'NC.

Un analogo domestico più sviluppato dell'NC per i sistemi Windows è, ad esempio, la shell del manager FAR.

I sistemi strumentali orientati ai problemi vengono utilizzati per risolvere una classe abbastanza ampia di problemi di alcuni professionisti, orientamento ai problemi: CAD - sistemi di automazione della progettazione, ACS - sistemi di controllo automatizzati, luoghi di lavoro automatizzati - stazioni di lavoro automatizzate, DBMS - un sistema che fornisce un'interfaccia per l'utente programmi e dati dal database, ES – sistemi esperti, sistemi per accumulare, archiviare e aggiornare esperienze, conoscenze, abilità, abilità (giudizi di esperti) di esperti, ecc.

I programmi autonomi sono quei programmi che vengono sviluppati ogni giorno in gran numero e utilizzati per vari scopi applicativi (formazione, elaborazione, modellazione, ecc.).

Le librerie di programmi sono un insieme di programmi per la risoluzione di problemi di un certo focus (ad esempio, la risoluzione di sistemi di equazioni algebriche), con una descrizione, un catalogo, istruzioni e posizionati su supporti esterni in modo tale da potersi collegare facilmente al problema risolto (al programma in esecuzione) man mano che viene risolto.

Il pacchetto software applicativo (APP) è composto dalle seguenti parti necessarie:

descrizione, rappresentazione della classe di problemi risolti utilizzando PPP;

un insieme di programmi che assicurano la costruzione di programmi applicativi PPP (catena di processo);

una serie di programmi applicativi che forniscono soluzioni ai problemi dell'area tematica del PPP;

lingua di input (linguaggio di query) PPP;

database per la memorizzazione dei dati, trasferimento ai moduli PPP;

monitor (programma di controllo) PPP, che fornisce l'input di un compito (richiesta), la sua decodifica e la costruzione di una catena tecnologica di moduli PPP per cercare una risposta.

Esempio. Un pacchetto studente semplice e versatile per l'analisi statistica dei dati è SPSS. L'interfaccia utente con SPSS per Windows è implementata utilizzando semplici menu e finestre di dialogo, ovvero SPSS è esente dall'uso di un linguaggio di comando del pacchetto appositamente studiato. È disponibile un editor di dati per il controllo visivo dei dati immessi, funzionalmente simile agli editor di fogli di calcolo, ad esempio Excel. Le variabili variabili vengono visualizzate in colonne e gli insiemi delle loro variazioni vengono visualizzati in righe e ciascuna variabile può essere trovata chiamandone il nome. L'immissione dei dati è simile all'immissione dei dati tabellari (ad esempio, in Excel). IN finestre di dialogoÈ possibile definire (immettere o valutare) espressioni complesse utilizzate successivamente nei calcoli. È possibile applicare varie leggi di distribuzione casuale. Più potente (ma anche più difficile da apprendere e utilizzare) è il pacchetto matematico MathCAD.

Il sistema funzionale di un pacchetto software integrato non è costituito da moduli (come nel PPP), ma dal PPP.

Esempio. Il pacchetto applicativo integrato più comune è MS Office (pacchetto di automazione dell'ufficio). Il suo nucleo include i seguenti pacchetti: Word - editor di testo, Excel - foglio di calcolo, Access - DBMS, PowerPoint - sistema di presentazione, ecc.

Un software speciale (o unico) viene sviluppato per risolvere problemi unici e molto importanti.

Esempio. Questa classe di software include il sistema software di controllo della nave Buran.

Anche con centinaia di migliaia di programmi per PC, gli utenti potrebbero aver bisogno di qualcosa che i programmi esistenti non fanno (o fanno, ma non sono corretti). In questi casi, il software dello strumento viene utilizzato per creare nuovi programmi, consentendo lo sviluppo sia di software di sistema che applicativo. Di conseguenza, svolge il ruolo di mezzi di produzione nella programmazione.

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

Il sistema di programmazione solitamente include editor di testo programmi, traduttore programmi, biblioteche subroutine e editor di collegamenti, debugger, sistemi di aiuto e talvolta vari programmi di supporto.

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

Esistono molti linguaggi di programmazione e ognuno può avere decine di versioni. Ogni programmatore scrive programmi nella lingua che gli conviene 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, cioè convertito in codice macchina. Questa traduzione viene eseguita da programmi di traduttore speciali. In inglese si chiama “traduzione”. traduzione), quindi vengono chiamati i programmi che traducono i programmi in linguaggio di codice macchina emittenti.

Sul palco trasmissioni avviene la trasformazione codice sorgente programmi dentro codice oggetto, che viene ulteriormente elaborato redattore di comunicazione. L'editor di collegamenti è un programma speciale che ti consente di creare modulo di caricamento, adatto per l'implementazione (Fig. 6.2).

Riso. 6.2. Schema del processo di creazione di un modulo del programma di avvio

Esistono i seguenti tipi di traduttori: interprete, compilatore.

Interprete prende l'operatore linguistico successivo dal testo del programma, ne analizza la struttura e lo esegue immediatamente. Poi passa a all'operatore successivo. Compilatore traduce l'intero programma in istruzioni macchina.

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

Per ciascuno di questi linguaggi di programmazione oggi esistono numerosi sistemi di programmazione prodotti da varie aziende e rivolti a vari modelli di PC e sistemi operativi. Gli ambienti visivi più popolari per la progettazione rapida di programmi per Windows sono: Microsoft Visual Basic; Borland Delfi; Borland C++Builder; Microsoft Visual Studio (Visual Basic.net, C++, C#, J#).

I moderni sistemi di programmazione consentono di creare programmi che vengono chiamati 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 dipartimenti e anche grandi imprese. Contengono strumenti per creare un'interfaccia utente, descrivere le procedure di elaborazione dei dati, modelli per eseguire azioni tipiche di elaborazione dei dati, ecc. Questi sistemi, di norma, 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 si concentrano solo su questo DBMS.