mercoledì 6 novembre 2013

Esercizio di laboratorio

# include <stdio.h>
using namespace std;

     int main()
     {
         char a;
         a='3';
       
         printf("%c,%d,%x",a,a,a);
       
         return 0;
     }

stringa

# include<stdio.h>
# include<stdlib.h>
# include<string.h>
 
 char dati();
 int main()
 {
     char dati( );

     char nome[15];
     char cognome[15];
   
     printf("Inserisce il tuo nome \n");
     scanf("%s",nome);
     printf("Il nome e :%s \n",nome);
     printf("Inserice il Cognome\n");
     scanf("%s",cognome);
      printf("il Cognome e :%s\n",cognome);
      system("pause");
   return 0;
   
 }

Compilatori e interpreti

Compilatori e interpreti



traduttori sono quei programmi che permettono di effettuare la traduzione dal codice sorgente (non eseguibile dalla CPU) al linguaggio macchina.
Essi sono:
  • gli assemblatori (che traducono ogni istruzione dal linguaggio assembler in linguaggio macchina);
  • gli interpreti;
  • compilatori.
L'interprete di un linguaggio è un programma che
  • legge una alla volta le istruzioni di un programma sorgente;
  • verifica la correttezza sintattica della istruzione, sulla base della sintassi del linguaggio;
  • in caso positivo (assenza di errori), sulla base della semantica del linguaggio, la traduce nella corrispondente sequenza di istruzioni in linguaggio macchina e
  • la esegue.
Il compilatore di un linguaggio è un programma che
  • verifica la correttezza sintattica del programma sorgente, sulla base della sintassi del linguaggio;
  • traduce il programma sorgente nel programma oggetto (sulla base della semantica del linguaggio), il quale potrà successivamente essere eseguito.


Quindi per eseguire un programma scritto con un linguaggio ad alto livello occorre tradurlo nel linguaggio macchina dello specifico processore che si sta usando.
Vediamo adesso più in dettaglio le due modalità possibili:
• compilazione (con linguaggi come C,C++, FORTRAN, Pascal, ecc.)
• interpretazione ( con linguaggi come Basic, Perl, Java, ecc.)
compilatori traducono un intero programma dal linguaggio L al linguaggio macchina della macchina prescelta, considerando che:
  • traduzione e esecuzione procedono separatamente;
  • al termine della compilazione è disponibile la versione tradotta del programma;
  • la versione tradotta è però specifica di quella macchina;
  • per eseguire il programma basta avere disponibile la versione tradotta (non è necessario ricompilare).
Gli interpreti invece traducono e immediatamente eseguono il programma istruzione per istruzione, infatti:
  • traduzione ed esecuzione procedono insieme;
  • al termine non vi è alcuna versione tradotta del programma originale;
  • se si vuole rieseguire il programma occorre anche ritradurlo.

Sistema Operativo

Il Sistema Operativo

Una definizione esemplificativa del sistema operativo può essere la seguente:
il sistema operativo è una sorta di strato che si pone sopra la macchina fisica e permette di fare richieste ad una macchina virtuale ma che l’utente crede vera, inoltre il compito del sistema operativo, oltre a quello di controllare l’esecuzione degli altri programmi, consiste nell’impedire alle applicazioni di eseguire dei comandi che potrebbero rivelarsi dannosi
Senza Sistema Operativo (SO) un computer è solo un “macchinario inutile”.  Il SO rende possibile la gestione, l'elaborazione e l'immagazinamento dell'INFORMAZIONE.
• L’hw fornisce potenza di calcolo, il SO la rende disponibile agli utenti, gestendo l’hw in modo efficiente.
• Il SO controlla l’esecuzione di tutti gli altri programmi.
• Il SO è l’intermediario tra l’utente/i e la macchina.

Il SO è il software che gestisce le risorse (hardware e software) della macchina.

Struttura del Sistema Operativo


Il SO permette alle applicazioni di astrarre dal dettaglio hardware e di operare in termini di richieste di servizi al SO stesso.

Funzioni del Sistema Operativo


La descrizione precisa di cosa faccia parte o meno del SO non è universalmente definita (vedi caso IE)
• Gestione dei Processi (multitasking)
• Gestione della memoria (scheduler)
• Gestione dei files (file system)
• Gestione degli utenti (multiutenza)
• Gestione dell’ I/O (stampanti, video, tastiera, ...)
• Gestione servizi di Rete
• Protezione del sistema
• Interprete di comandi


Hardware e Software

Con hardware si intende qualsiasi componente fisico di una periferica o di un’apparecchiatura elettronica. Ad esempio sono hardware gli hard disk, i lettori ottici, le schede madri i collegamenti, le USB, le chiavette di memoria, gli schermi e i dispositivi di input. Insomma l’intera struttura meccanicaotticamagnetica ecc… che permette ad un qualsiasi dispositivo elettronico di funzionare e di far funzionare il software a dovere. Se una volta l’hardware costava più del software si va ora verso una situazione che almeno metta i due componenti sullo stesso piano in termini di valore. Spesso sul un dispositivo la somma del valore di tutti i software supera di gran lunga il costo di quello hardware.

Con software si intende  ogni programma, semplice o complesso, che permette di svolgere operazioni montato su un supporto hardware. Il software, a differenza dell’hardware, non è qualcosa di fisico e deve essere memorizzato su supporti appositi. L’esempio migliore di software è il sistema operativo del PC o degli smartphone. I software nel tempo sono diventati, grazie a diverse tecnologie e sviluppi in materia, multi-piattaforma e sono in grado di essere distribuiti su diversi dispositivi nonostante le caratteristiche hardware differenti: ne sono un esempio i sistemi operativi Android e Windows. Anche un sistema operativo come iOS si adatta alle diverse strutture hardware delle diverse versioni di iPhone. Aziende che operano nello sviluppo di software hanno conosciuto un grandissimo successo (e conseguente speculazione) soprattutto negli anni ’90.