Linguaggio R Flashcards

1
Q

Linguaggio di programmazione

A

Un algoritmo descrive una soluzione astratta e logica di un problema eseguendo, in un determinato ordine, un insieme di passi semplici. Un algoritmo può essere descritto mediante l’utilizzo di diagrammi di flusso o in pseudocodice. Un algoritmo non fornisce una rappresentazione comprensibile ad un sistema di elaborazione e deve essere codificato in modo formale con un programma scritto in un opportuno linguaggio di programmazione.
Un linguaggio di programmazione ` e costituito, come ogni altro tipo di linguaggio, da un alfabeto, con cui viene costruito un insieme di parole chiave (il vocabolario) e da un insieme di regole sintattiche per l’uso corretto delle parole del linguaggio.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Linguaggio macchina

A

Ogni sistema di elaborazione ` e in grado di comprendere un particolare linguaggio di programmazione, detto linguaggio macchina. Il linguaggio macchina deve essere facilmente rappresentabile sotto forma di segnali elettrici ed ` e quindi basato su un alfabeto binario di 0 e 1 ed il testo ` e costituito da sequenze di bit. Il processore o CPU ` e quella componente hardware di un computer che ` e in grado di eseguire i programmi scritti in linguaggio macchina. In altre parole in linguaggio macchina sono definite l’insieme di istruzioni fondamentali che un processore ` e in grado di compiere. I programmi in linguaggio macchina sono difficili da scrivere, da leggere e da manutenere, dato che ogni operazione basilare può richiedere molte istruzioni

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Linguaggi di basso livello

A

linguaggi di basso livello, come il linguaggio assembly, sono legger-mente più semplici da utilizzare dato che permettono di scrivere programmi usando codici mnemonici più semplici (sigle) piuttosto che sequenze di 0 e 1, pur rimanendo vicinissimi al linguaggio macchina. L’assembly ha lo scopo generale di consentire al programmatore di ignorare il formato binario del linguaggio macchina. Ogni codice operativo del linguaggio macchina viene sostituito nell’assembly, da una sequenza di caratteri che lo rappresenta in forma mnemonica (ad esempio, il codice operativo per la somma potrebbe essere trascritto come ADD). I programmi scritti in assembly necessitano di un apposito programma assemblatore, detto assembler, che si preoccupa di tradurre un qualsiasi pro-gramma scritto in linguaggio assembly nel programma equivalente codificato in linguaggio macchina.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Linguaggi di alto livello

A

I linguaggi di alto livello semplificano la programmazione astraendosi dalle caratteristiche fisiche del computer. Il programmatore si può astrarre dai dettagli legati all’architettura del sistema di elaborazione ed esprimere i propri algoritmi in modo simbolico. Pertanto, i linguaggi ad alto livello sono indipendenti dal computer e dall’hardware sottostante. I linguaggi di programmazione ad alto livello consentono al programmatore di trattare strutture complesse sen-za doversi preoccupare dei dettagli dello specifico sistema di calcolo sul quale il programma viene eseguito. Programmi scritti in questi linguaggi (programmi sorgente) non sono di-rettamente eseguibili, ma vengono tradotti in un linguaggio a basso livello. Richiedono un compilatore oppure un interprete che sia in grado di tradurre le istruzioni del linguaggio di alto livello in istruzioni macchina di basso livello, eseguibili dal computer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Compilatore

A

Un compilatore opera la traduzione di un programma sorgente, scritto in linguaggio di alto livello, in un programma direttamente eseguibile dal computer procedendo nel seguente modo: - traducendo l’intero programma in linguaggio macchina (senza eseguirlo) - eseguendo successivamente la versione tradotta.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Traduttore

A

Il traduttore converte il testo di un programma scritto in un particolare linguaggio di programmazione (sorgente) nella corrispondente rappresentazione in linguaggio macchina (programma eseguibile). Ogni traduttore ` e in grado di comprendere e tradurre un solo linguaggio di programmazione.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Interprete

A

L’interprete invece traduce ed esegue il programma sorgente istruzione per istruzione e traduzione ed esecuzione sono intercalate.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Differenze tra compilatore e interprete

A

Analizziamo le principali differenze tra compilatore ed interprete. Nei compilatori si ha: - traduzione e esecuzione procedono separatamente; - al termine della compilazione ` e disponibile la versione tradotta del programma; - per eseguire il programma occorre avere disponibile la versione tradotta (non ` e necessario ricompilare se si desidera rieseguire il programma). Invece, gli interpreti traducono e immediatamente eseguono il programma istruzione per istruzione e si ha: - traduzione e esecuzione procedono insieme; - al termine non si ha nessuna versione tradotta del programma sorgente; - se si vuole rieseguire il programma occorre anche ritradurlo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Pregi/difetti di compilatori e interpreti

A

I pregi e i difetti dei compilatori e degli interpreti sono: - l’esecuzione di un programma compilato ` e più veloce dell’esecuzione di un programma interpretato; - i linguaggi interpretati sono più semplici da utilizzare (nei linguaggi compilati esistono maggiori limitazioni sulla semantica dei costrutti); - per distribuire un programma interpretato si deve necessariamente distribuire il codice sorgente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Linguaggio Java

A

Di solito un linguaggio di programmazione ` e di tipo interpretato o compilato, ma esistono delle eccezioni, come il linguaggio Java, che applica un ibrido tra le due soluzioni, utilizzando un compilatore per produrre un codice macchina chiamato “bytecode”. Bytecode ` e costituito da una serie di istruzioni altamente ottimizzate, create per essere interpretate dalla Java Virtual Machine (JVM) e convertite nel codice macchina specifico per il processore. Quindi, la Java Virtual Machine ` e un interprete per il bytecode. Ogni ambiente che supporta Java deve avere un interprete progettato appositamente per il proprio sistema operativo e per il proprio processore.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Paradigma di programmazione

A

Esistono numerose famiglie di linguaggi di programmazione, riconducibili a diversi paradigmi di programmazione. In informatica, un paradigma di programmazione ` e uno stile fondamentale di programmazione, ovvero un insieme di strumenti concettuali forniti da un linguaggio di programmazione per la stesura del codice sorgente di un programma, definendo dunque il modo in cui il programmatore concepisce e percepisce il programma stesso.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Programmazione procedurale

A

La programmazione procedurale ` e un paradigma di programmazione secondo cui un programma viene inteso come un insieme di istruzioni eseguite in sequenza. I linguaggi procedurali (come Fortran, C, Basic, Pascal) mimano il modo con cui un computer porta a termine le istruzioni; quindi, i programmi sono strutturati su misura pensando a come il computer esegue le diverse operazioni. Un programmatore che utilizza linguaggi procedurali, in primo luogo apprende come suddividere un problema in una serie di passi o di procedure più semplici.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Programmazione OOP

A

La programmazione orientata agli oggetti (OOP, Object Oriented Pro-gramming) ` e un paradigma di programmazione che si concentra sul compito per il quale si utilizza il computer, invece di porre attenzione su come il computer esegue il compito. Nei linguaggi orientati agli oggetti (come Java, C++, Python, R), un programma ` e strutturato come un insieme di oggetti dotati di propriet a (dati) e metodi (procedure) che comunicano tramite scambio di messaggi e che lavorano insieme per eseguire un compito. Ogni oggetto e un elemento auto-nomo contenuto in un programma per computer che rappresenta un gruppo di funzionalit` a correlate, progettato per eseguire operazioni specifiche. Nella programmazione orientata agli oggetti si struttura un programma combinando oggetti creati appositamente e oggetti preesistenti mediante metodi standard.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

R

A

R ` e un ambiente integrato, che ` e contemporaneamente un linguaggio di programmazione ed un software, costituito da una varietà di strumenti per l’analisi statistica dei dati e per la loro visualizzazione. R permette di scrivere programmi, elaborare dati, eseguire calcoli e produrre grafici.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

R: storia

A

La versione iniziale di R ` e stata realizzata nel 1996 da Ross Ihaka e Robert Gentleman 1 del Dipartimento di Statistica dell’Universit a di Auckland in Nuova Zelanda. Successivamente, un nutrito gruppo di ricercatori operanti in ambito statistico e informatico hanno iniziato a fornire il loro contributo, dando cos ı vita al “R Development Core Team”, che dal 1997 si occupa dei codici sorgenti di R. Nel 2003 ` e stata costituita l’organizzazione non profit “R Foundation for Statistical Computing” avente come obiettivo quello di promuovere lo sviluppo e la diffusione del software, di gestire e tutelare il copyright di R e della relativa documentazione.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

R: caratteristiche generali

A

Le caratteristiche principali di R possono essere cos ı sintetizzate: 1. e un software open source; 2. ` e un linguaggio di programmazione object-oriented (come C++ e Ja-va); l’utente pu o avere accesso al codice interno di R ed eventualmente proporne modifiche; 3. e un linguaggio di programmazione interpretato e quindi il sistema ` e in grado di elaborare le istruzioni inserite immediatamente, senza dover passare attraverso un processo di compilazione; 4. ` e un software multipiattaforma, ossia può essere installato su Linux, Windows o Mac; 5. fornisce la possibilità di programmare, creando funzioni e programmi ad hoc definiti dall’utente; 6. ` e semplice da utilizzare nella gestione e nella manipolazione dei dati; 7. ` e dotato di notevoli e particolarmente flessibili potenzialità grafiche 2D e 3D consentendo la rappresentazione grafica di dati; 8. dispone di un vasto insieme di strumenti per il calcolo su vettori, matrici e per altre operazioni complesse; 9. consente l’accesso a un vasto insieme di strumenti integrati per analisi statistiche; 10. ` e dotato di una funzione di help in linea per ciascun comando facilmente richiamabile dal programma;