Linguaggi di programmazione avanzati: C++ F.S. Cafagna



Documenti analoghi
Introduzione agli strumenti di base per la programmazione in Linux

Il software del PC. Il BIOS

Linguaggi di programmazione avanzati: C++ F.S. Cafagna

Il Sistema Operativo Linux

Prima Esercitazione. Unix e GNU/Linux. GNU/Linux e linguaggio C. Stefano Monti smonti@deis.unibo.it

Grammatica di base: Pointers

Università degli Studi di Verona. Linux Ubuntue ilcompilatorec. Dicembre Sergio Marin Vargas. Dipartimento di Biotecnologie

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. "Generate debugging information"

Castelli Flavio Panoramica su Linux

Il web server Apache Lezione n. 3. Introduzione

PAD: istruzioni di laboratorio


Introduzione ecos. Agenda. Giovanni Perbellini

MODEM USB MDC525UP Guida Rapida LINUX

Usare Python in Linux

Guida di Installazione GCC

Il Software. Il software del PC. Il BIOS

Progettazione : Design Pattern Creazionali

Corso base GNU/Linux Latina Linux Group. Sito web: Mailing list:

Guida all utilizzo del compilatore lcc-win32 per creare una applicazione console

Le distrubuzioni GNU/Linux

Terza lezione: Directory e File system di Linux

NOZIONI BASE PER ESERCITAZIONI

I Metacaratteri della Shell Unix

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Mini Guida per Apple XCode. Maurizio Martinelli

Laboratorio di Programmazione

LPIC-1 Junior Level Linux Certification

Cygwin: vita su Windows, a la Linux-way.

Il sistema operativo Linux installato sul vostro computer non è un unico, grande

Introduzione al Linguaggio C

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Corsi di Formazione "Open Source & Scuola" Provincia di Pescara gennaio 2005 aprile 2005

Installare software Linux. Gruppo Linux Macerata - Corso Linux Lez. 5: Installazione dei software Linux

Guida alla documentazione italiana di Solaris Server per sistemi SPARC SMCC

Il computer: primi elementi

Ca ra tteristiche dei sistem i GN U/L inux. Struttura di un sistema GNU/Linux Il filesystem La shell

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica. Ing. Domenico De Guglielmo Vanessa Gardellin & Sara Lioba Volpi

Come valutare e scegliere un Sistema Operativo Embedded

Benvenuti/e.

I Sistemi Operativi. Confronto Windows MAC OS X Linux

Corso ForTIC C2 LEZIONE n. 1

Introduzione al Software Libero e a GNU/Linux

L Open Source un mondo che forse dovresti conoscere? Viaggio alla scoperta dell open source e le sue caratteristiche.

LICENZE D'USO E TIPOLOGIE DI SOFTWARE

SOMMARIO: INFORMAZIONI SU PARALLELS TRANSPORTER

IL LINGUAGGIO C NOSTRO APPROCCIO AL C. Sempre con esempi che illustrano le caratteristiche del linguaggio. SCRIVERE ED ESEGUIRE IL PRIMO PROGRAMMA C

L i n u B e s t a Mario Di Raimondo

Installazione del Software. per lo Sviluppo di Applicazioni Java

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

Corso di Informatica

LINUX. Che cos'e` un sistema operativo?

Linux e Open Source: Libero! Non "gratis"...

Corso Linux Corso Online Amministratore di Sistemi Linux

Drupal. E vai con un po' di Drupal for Dummies... :D. Copyright by hachreak

9-10 DICEMBRE Istitiuto Nazionale Tumori. regina Elena. introduzione a :

Progetti F.O.S.S. Ieri e Oggi

Informatica. Prof. A. Longheu. Introduzione a Java

Corso UNIX avanzato. Utente avanzato. Amministratore. Gestione proprio account Gestione dei propri processi Ricerca e manipolazione file

Librerie. Laboratorio di Informatica Antonio Monteleone 28

Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1

Le command line di Java

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

Linux. Linux. Paolo Zatelli. Dipartimento di Ingegneria Civile ed Ambientale Università di Trento. Paolo Zatelli Università di Trento 1 / 24

Corso Eclipse. Prerequisiti. 1 Introduzione


Guida informatica per l associazione #IDEA

GNU/Linux e *BSD: filosofia del software libero ed open source

01/05/2013 Istruzioni per l installazione

Introduzione a Linux. Storia di UNIX

Compilatori GNU in Linux: gcc e g++


Licenze d uso libere. Rossetto Stefano Seminario di Commercio Elettronico

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Corso amministratore di sistema Linux. Corso amministratore di sistema Linux Programma

Codifica: dal diagramma a blocchi al linguaggio C++

VPN RETI PRIVATE VIRTUALI: ACCESSO REMOTO

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza

Reti di Calcolatori PROTOCOLLO FTP. File. File Transfer Protocol Modello FTP Operazioni FTP Comandi del protocollo Esempi di Client FTP avanzati

Le Interfacce Grafiche

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

Reti di Calcolatori PROTOCOLLO FTP

GDB. The GNU Debugger

Funzioni in C. Violetta Lonati

AMBIENTE GRAFICO DI FEDORA: ATTIVITA ESEGUIBILI DA TUTTI GLI UTENTI


I programmi applicativi

Introduzione a Dev-C++

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C

API e socket per lo sviluppo di applicazioni Web Based

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

CONFIGURARE SAMBA 3 SU SUSE LINUX 9.1/9.2

Corso ForTIC C2 LEZIONE n. 3

Concetto di Funzione e Procedura METODI in Java

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Il Web Server e il protocollo HTTP

POLINUX. Linux for Polimi people

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo

Transcript:

Linguaggi di programmazione avanzati: C++ F.S. Cafagna

Layout La "grammatica di base" del C++: Cenni storici ed introduzione agli strumenti di base per la programmazione in Linux echo e #include <iostream> \n int main(){std::cout << Ciao << std::endl; return 0;} > my_first.cpp; make my_first;./my_first I tipi di base int, float, double, char, fscaf, facsf etc. etc. Le espressioni e gli "statements int a=b=c=d=0; d++; --d; a+=c; Le funzioni int do_nothing(int a){return int(a++);} I puntatori e le "reference Argh!!!!!!!!!!!!! XXII ciclo 2

Layout Funzionalita' avanzate I tipi aggregati: Structures e Union Ma perche non posso avere tutto a portata di mano? Function overloading void Voglio_la_millefoglie(fragole *f) void Voglio_la_millefoglie(frutti_di_bosco *f) void Voglio_la_millefoglie(cigliege *f) void Voglio_la_millefoglie(pesche *f, bool no_chantilly) XXII ciclo 3

Layout Namespaces namespace Girls{ void Print(){ std::cout << "Il mio regno per quello che sta' nel pigiama di Brad Pitt" << std::endl;} } namespace Boys{ void Print(){std::cout << "Il mio regno per quello che copre l accappatoio di Halle Berry " << std::endl;} } using namespace Girls; int main(){ Print(); Boys::Print(); return 0; } Introduzione alle classi User-Definited Types!!!!!!!!!!!! XXII ciclo 4

Layout Le classi Generalita Grammatica di base Membri delle classi: cereatori, distruttori, metodi ed "helper functions Metto assieme dati ed operazioni sui dati in un tipo definito dall utente. Controllo di accesso ai dati e metodi: public, private. Se non sai dove mettere le mani, non toccare!!! Operatori e "overloading Pera c,b,a; a=b+c;????????????? for(int i=0;i<10;++i) o for(int i=0;i<10;i++)? Templates Possiamo scrivere delle classi generiche? Valide per ogni tipo? Esempi ed esercizi Funzionalita' avanzata delle classi (4 ore) Classi derivate Pere, Mele, Albicocche!!!! Sono tutti tipi Frutta! Ereditarieta' e polimorfismo Tutto diventa virtuale! Una Disneyland per gli amanti di punatori e reference!!!! Esempi ed esercizi XXII ciclo 5

Layout Standard Template Library: STL e cenni di programmazione Object Oriented Introduzione e generalita' Panoramica degli oggetti della STL piu' usati: string and containers Esempi di "structural pattern" piu' usati Applicazioni alla fisica delle alte energie Framework di analisi: ROOT XXII ciclo 6

Introduzione agli strumenti di base per la programmazione in Linux

Linux: Cenni Breve introduzione a Linux Cosa è? Dove si trova? Come si usa? Che me ne faccio? Breve introduzione agli strumenti di programmazione Quali sono gli strumenti per compilare? Quali sono gli strumenti per controllare? Dove sono le librerie? Dove sono tutte le altre diavolerie? XXII ciclo 8

Come si fa cosa? Linux: Cenni Come faccio a sapere dove sono le cose? Come faccio a sapere cosa stà combinando il mio programma? Come creo un codice sorgente? Come lo compilo? Come lo lancio? Come lo debuggo? XXII ciclo 9

Breve introduzione: Cosa e? Cosa è? Linux is a free Unix type operating system originally created by Linus Torvalds with the assistance of developers around the world. Developed under the GNU General Public License, the source code for Linux is freely available to everyone XXII ciclo 10

Breve introduzione: Cosa e? La prima versione del kernel risale al 1994 E POSIX compliant POSIX??? Portable Operating System Interface è una standardizzazione di Unix. ANSI C IEEE POSIX FIPS X/Open Ogni standard definisce l interfaccia ( flavour ) XXII ciclo 11

Breve introduzione: Cosa e? GNU GPL??? E la licenza che permette il libero utilizzo del software a patto di fornirlo con la sorgente. Il software è libero ma non gratuito, l utente ha la libertà di modificarlo GNU???? Gnu is Not Unix!!!! Fondata nel 1984 per sviluppare un sistema operativo Unix-like completamente libero Non è Linux. L associazione, sotto l egida della Free Software Foundation (FSF), mantiene il kernel di Linux ed una serie di applicativi fondamentali, ma non distribuisce il sistema. XXII ciclo 12

Breve introduzione: Dove si trova? Oramai anche nelle macchinette del caffè Data la complicazione del sistema è stato tradizionalmente organizzato in distribuzioni. La prima a diffondersi è stata la Slackware. Ce ne sono di libere e proprietarie, ognuna con caratteristiche diverse ed orientate ad un mercato particolare. Le più diffuse: Debian Slackware RedHat (Fedora Core, Enterprise) Suse Mandrake Scientifc Linux Gentoo XXII ciclo 13

Breve introduzione: Dove si trova? Di solito si posso scaricare le immagini ISO dalla rete La facilità di installazione dipende dalla distribuzione così come il sopporto per l hardware XXII ciclo 14

Breve Intro.: Che me ne faccio? Pros: Posso avere un server a poco prezzo. Sviluppatori ovunque Diffusione di applicativi e documentazione Cons: Manutenzione ed installazione da esperti Continue release Difficoltà a tener dietro agli upgrade hardware se non c e una politica di supporto dell azienda Causa assuefazione XXII ciclo 15

Breve Intro: Come si usa? Seguire le istruzioni della distribuzione! Immettere username e password... Le interfacce sono diverse. Essenzialmente: X-windows Terminale ANSI XXII ciclo 16

Breve Intro: Come si usa? X-windows XFree86. Disponibile per varie piattaforme. Open source implemetazione del protocollo Vi serve un windows manager : Twm Fwm Enlightenment AfterStep. Sarebbe meglio avere un desktop manager (Windows insegna.): KDE GNOME. XXII ciclo 17

Breve Intro: Come si usa? Ci serve una shell E una command line interpreter che legge l user input ed esegue il comando richiesto. user input??? Puo essere il terminale o un file: script E la nostra interfaccia di base con il sistema operativo. Le shell più diffuse: sh: Bourne shell csh: C shell ksh: Korn shell tcsh: Enanched C shell bash: Bourne Again shell XXII ciclo 18

Breve Intro: Come si usa? Dove sono i files? In un filesystem organizzato gerarchicamente in direttori e files. L albero gerarchico ( tree ) nasce da una radice ( root ). Il nome della root è un singolo carattere: / I direttori sono files che contengono altri direttori e files. Sono dei files che contengono le informazioni sul loro contenuto: filenames Filenames. Sono i nomi (files) in una directory. I nomi possono contenere tutti i caratteri tranne lo slash : /, ed il blanck (non è più così ma sarebbe meglio evitarlo: /usr/local/bin/mio_eseguibile_.exe /home/corsovme/.filenascosto /home/corsovme/prova.exe.old_version Il punto iniziale definisce rende invisibile il file XXII ciclo 19

Breve intro: Come si usa? Come è fatto l albero del filesystem? / - - /bin -- Ci sono tutti gli eseguibili indispensabili - /boot -- Files necessari al boot del sistema - /home -- Le home directories - /usr -- Tutto quello che serve ad un utente - /usr/local binari, librerie, include files etc. etc. etc. - /usr/bin - /usr/lib - /usr/include - /include -- Include files di sistema - /lib -- Librerie di sistema e moduli dei driver - /etc -- Files di configurazione del sistema -. XXII ciclo 20

Breve intro: Come si usa? Come mi muovo nel filesystem? cd : change directory ls : list directory Come posso sapere cosa c è nei files? cat : mostra tutto il contenuto di un file sullo standard output more, less: mostra il contenuto di un file sullo standard output in pagine del formato del terminale editandoli!!! XXII ciclo 21

Breve intro: Come si usa? Editors: nano, pico : semplici editors alfanumerici emacs, xemacs: more than editors: a way of life vi: no comment! Manualistica Tutta online, arriva con il sistema: man : il manuale di unix, diviso in 8 capitoli omnicomprensivo info : il sistema di documentazione per ipertesti della GNU. XXII ciclo 22

Breve intro: Come si usa? Cominciamo!!!! Collegatevi a: asterix.ba.infn.it Username: corsocpp Password: corsocpp Spostatevi in: studenti Create dei direttori con i vostri cognomi: mkdir my_last_name XXII ciclo 23

Breve intro. Alla programmazione Quali sono gli strumenti per compilare? gcc. La suite di compilazione della GNU: GNU Compiler Collection cpp: il precompilatore as : l assemblatore ld : il linker. XXII ciclo 24

Breve intro. Alla programmazione Quali sono gli strumenti per controllare? gdb: Il debugger gnu ddd: Front end grafico al gdb.. gprof: profiler della GNU XXII ciclo 25

Breve intro. Alla programmazione Dove sono le librerie? Di solito in /lib, /usr/lib, /usr/local/lib Possono essere ovunque. (parameteri -L l). E gli include? Idem come sopra, nei corrispettivi direttori: include XXII ciclo 26

Breve intro. Alla programmazione Due parole su make: Determina automaticamente cosa va compilato e come, sulla base di dipendenze e regole che sono contenute in un file ASCII. L azione da effettuare è chiamata target Un target deve essere seguito da : Per ogni target è possibile specificare altri target da cui dipende. L azione da effettuare deve essere preceduta da un simbolo di tabulazione Ci sono delle regole implicite. Proviamo con: info make XXII ciclo 27

Breve intro. Alternative E per chi ama Windows????? Tutti i tools sono disponibili anche per Win Provate cygwin: www.cygwin.com Fate prima, avrete a disposizione una completa suite di tools unix Xemacs: www.xemacs.org Dev-c++, IDE (Integrate Development Enviromnent) per C++ in Win: www.bloodshed.net XXII ciclo 28