Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Informatica teorica

Linguaggi e sistemi

Moderatori: Foto UtenteMassimoB, Foto UtentePaolino, Foto Utentefairyvilje

0
voti

[1] Informatica teorica

Messaggioda Foto UtenteCosimo00110 » 28 apr 2023, 21:35

Ciao a tutti, avrei una domanda, mi sta incuriosendo l’informatica è vorrei prendermi un libro per iniziare a leggere qualcosa a riguardo, però sono completamente ignorante in materia e i miei dubbi sono questi…

- Si può studiare l’informatica solo a livello teorico, senza rimanere legati ad un oggetto fisico (PC, cellulare, microcontrollore… insomma un oggetto programmabile)?

- Con i linguaggi di programmazione si può fare la stessa cosa? (Intendo imparare la cosa da un punto di vista più astratta per poter più riuscire a creare un diverso linguaggio di programmazione che un programma specifico, quindi senza mai toccare il punto di vista del componente programmabile)

Ecco la cosa che mi preme è poter conoscere la materia, senza dover mai toccare la macchina. È una richiesta fuori dal mondo o si può fare?

(Il mio sole sarebbe riuscire a comprendere come poter costruire una mente a livello teorico, ma va beh, è solo un idea un po’ bambinesca, lo ho comunque scritto per dare un idea dell’orientamento che vorrei)
Avatar utente
Foto UtenteCosimo00110
25 3
 
Messaggi: 25
Iscritto il: 27 apr 2023, 20:52

0
voti

[2] Re: Informatica teorica

Messaggioda Foto UtenteWALTERmwp » 28 apr 2023, 22:51

Ciao @Cosimo00110,
Cosimo00110 ha scritto:(...)- Si può studiare l’informatica solo (...)
penso sia possibile.

Cosimo00110 ha scritto:(...)- Con i linguaggi di programmazione si può fare la stessa cosa? (...)
non comprendo cosa intendi.

Cosimo00110 ha scritto:(...)Ecco la cosa che mi preme è poter conoscere la materia, senza dover mai toccare la macchina. È una richiesta fuori dal mondo o si può fare? (...)
non ne comprendo la ragione(immagino solo una situazione ma la tengo per me) ma penso sia possibile.

Cosimo00110 ha scritto:(...)Il mio sole sarebbe riuscire a comprendere come (...)
anche qui, non comprendo cosa intendi.
A meno che tu non sia un bot, forse dovresti essere più chiaro nell'esposizione.
Comunque presumo che qualcun altro saprà portare utili suggerimenti.

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
29,5k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8745
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

1
voti

[3] Re: Informatica teorica

Messaggioda Foto UtenteCosimo00110 » 28 apr 2023, 23:26

WALTERmwp ha scritto:Ciao @Cosimo00110,

Cosimo00110 ha scritto:(...)- Con i linguaggi di programmazione si può fare la stessa cosa? (...)
non comprendo cosa intendi.


Un linguaggio di programmazione di solito anche se ad alto livello è comunque legato alla macchina, quello che vorrei sapere e se si può non imparare un linguaggio ma più un meta linguaggio così come la linguistica si distingue dallo studio di una lingua vera e propria.

WALTERmwp ha scritto:
Cosimo00110 ha scritto:(...)Ecco la cosa che mi preme è poter conoscere la materia, senza dover mai toccare la macchina. È una richiesta fuori dal mondo o si può fare? (...)
non ne comprendo la ragione(immagino solo una situazione ma la tengo per me) ma penso sia possibile.


Ho maneggiato componentistica elettronica e studiato vari componenti per tutti gli anni di studio delle scuole superiori con il risultato di non aver compreso comunque gli argomenti e di iniziare ad odiare la fisica e le cose materiali, per cui mi piacerebbe studiare qualcosa di puramente teorico (senza dover per forza avviarmi verso la scelta che di solito fanno quelli al mio posto di studiare filosofia, perché non mi attira la materia)

WALTERmwp ha scritto:
Cosimo00110 ha scritto:(...)Il mio sole sarebbe riuscire a comprendere come (...)
anche qui, non comprendo cosa intendi.
A meno che tu non sia un bot, forse dovresti essere più chiaro nell'esposizione.
Comunque presumo che qualcun altro saprà portare utili suggerimenti.


La cosa che mi attira è il mondo dell’apprendimento, dell’AI e dello studio di cose che simulano o creano una mente. Non sono un bot :)

WALTERmwp ha scritto: Saluti


Altrettanto!
Avatar utente
Foto UtenteCosimo00110
25 3
 
Messaggi: 25
Iscritto il: 27 apr 2023, 20:52

7
voti

[4] Re: Informatica teorica

Messaggioda Foto Utentefairyvilje » 29 apr 2023, 2:47

Per farla breve, i computer non riguardano l'informatica più di quanto il microscopio non riguardi la biologia.
Quindi si, uno studio teorico dell'informatica e quindi dei linguaggi è del tutto possibile, ed è il modo in cui alcuni approcciano la disciplina. Informatica ed elettronica non hanno quasi nulla da spartire.

Un linguaggio di programmazione di solito anche se ad alto livello è comunque legato alla macchina

Si perché esiste un'equivalenza dimostrabile fra linguaggi ed automi, macchine astratte che operano su dati. Qualunque linguaggio può essere interpretato in relazione ad una macchina astratta che lo implementa. Quanto ho detto non è formalmente 100% accurato ma spero renda l'idea.

quello che vorrei sapere e se si può non imparare un linguaggio ma più un meta linguaggio così come la linguistica si distingue dallo studio di una lingua vera e propria.

Si, all'università è il corso generalmente chiamato linguaggi formali (che è fondamentalmente linguistica).

La cosa che mi attira è il mondo dell’apprendimento, dell’AI e dello studio di cose che simulano o creano una mente. Non sono un bot :)

In quel caso l'informatica credo che ti sarà di marginale aiuto. La maggior parte di quegli studi fanno parte di altre discipline che sono solo tangenzialmente legate all'informatica.
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...

Lo sapete che l'arroganza in informatica si misura in nanodijkstra? :D
Avatar utente
Foto Utentefairyvilje
14,9k 4 9 12
G.Master EY
G.Master EY
 
Messaggi: 3032
Iscritto il: 24 gen 2012, 19:23

0
voti

[5] Re: Informatica teorica

Messaggioda Foto UtenteCosimo00110 » 29 apr 2023, 13:02

Ti ringrazio, una cosa…

fairyvilje ha scritto:
La cosa che mi attira è il mondo dell’apprendimento, dell’AI e dello studio di cose che simulano o creano una mente. Non sono un bot :)

In quel caso l'informatica credo che ti sarà di marginale aiuto. La maggior parte di quegli studi fanno parte di altre discipline che sono solo tangenzialmente legate all'informatica.


Di quali discipline si tratta?
Avatar utente
Foto UtenteCosimo00110
25 3
 
Messaggi: 25
Iscritto il: 27 apr 2023, 20:52

1
voti

[6] Re: Informatica teorica

Messaggioda Foto Utentefairyvilje » 29 apr 2023, 14:50

Quello che cerchi te è meglio coperto dall'intersezione fra neuroscienze, una disciplina più legata alla biologia, e machine learning / data analysis, che vive a cavallo fra scienze statistiche, informatica e matematica.
Non credo ci siano percorsi universitari triennali totalmente incentrati su machine learning / AI /data analysis. Generalmente viene reso accessibile come curriculum magistrale disponibile alla maggior parte dei titoli in area scientifica.

Anche se puoi entrarvi da qualsiasi "direzione", scienze statistiche penso sia quella che copra gli elementi fondamentali in maniera più diretta e completa, a patto di personalizzare il piano di studi con specifici esami.
Ma sono stato fuori dal sistema universitario italiano negli ultimi anni, sicuramente troverai consigli migliori a questo riguardo.
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...

Lo sapete che l'arroganza in informatica si misura in nanodijkstra? :D
Avatar utente
Foto Utentefairyvilje
14,9k 4 9 12
G.Master EY
G.Master EY
 
Messaggi: 3032
Iscritto il: 24 gen 2012, 19:23

0
voti

[7] Re: Informatica teorica

Messaggioda Foto UtenteCosimo00110 » 29 apr 2023, 15:14

Grazie
Avatar utente
Foto UtenteCosimo00110
25 3
 
Messaggi: 25
Iscritto il: 27 apr 2023, 20:52

0
voti

[8] Re: Informatica teorica

Messaggioda Foto Utentelelerelele » 30 apr 2023, 10:40

Va bene che impari un "metodo" di programmazione che sia slegato da tutti i processori esistenti, (la vedrei piu come una logica di programmazione), ma da elettronico, sto pensando che poi alla fine, il tuo cervello elettronico dovrà avere qualcosa che funziona, per leggere dati e fornire informazioni, alla fine credo che devi comunque orientarti su qualcosa di fisico perforza, a meno che tui voglia implementere una "coscienza" :? Pura energia di calcolo. Sarebbe un bel botto.

saluti.
Avatar utente
Foto Utentelelerelele
4.227 3 7 9
Master
Master
 
Messaggi: 4886
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

2
voti

[9] Re: Informatica teorica

Messaggioda Foto Utentedjnz » 1 mag 2023, 12:12

Cosimo00110 ha scritto:Ecco la cosa che mi preme è poter conoscere la materia, senza dover mai toccare la macchina. È una richiesta fuori dal mondo o si può fare?


Beh, tecnicamente ciò di cui si occupa l'informatica è racchiuso nella sua definizione: scienza che si occupa dell'elaborazione automatica dell'informazione.

Abbiamo quindi tre "attori": l'informazione, l'elaborazione e l'automatica.

L'informazione sono i nostri "significati simbolici", rappresentati tramite stati di materia codificati secondo una qualche convenzione comune (che chiamiamo dati).

L'elaborazione al livello più basso sono le singole micro manipolazioni che si possono realizzare su questi stati (tipicamente le operazioni logiche elementari AND OR NOT e per estensione/composizione tutto il resto che chiamiamo operazioni aritmetiche, confronti ecc)

L'automazione di tutto questo si ottiene tramite un sistema fisico in grado di "indirizzare" i (accedere ai) dati desiderati, ed eseguire su di loro le operazioni volute, il tutto guidato da un altro insieme di dati chiamato programma.

Una CPU fisicamente fa solo quattro cose: memorizza/sposta dati, effettua operazioni su di essi, comunica elettricamente con l'esterno, salta da un punto all'altro del programma (esegue cose differenti) a seconda che si verifichino oppure no determinate condizioni (tipicamente se il risultato di un'operazione è zero o diverso da zero).

Ogni linguaggio di programmazione crea un'astrazione sulla CPU e sulla codifica fisica dei dati, ma comunque fa sempre le stesse quatto cose, solo in modo più astratto e vicino al modo di pensare umano, per simboli, oggetti, interazioni, decisioni.

Così abbiamo una gerarchia di linguaggi di livello sempre più "alto", nel senso di sempre più astratto da ciò che eseguirà le istruzioni, con paradigmi di programmazione anche molto diversi, ad esempio programmazione logica vs programmazione imperativa vs programmazione funzionale, linguaggi più vecchi non orientati agli oggetti, e linguaggi recenti in cui tutto è modellato/pensato come un oggetto.

Ad esempio in Python, uno dei linguaggi recenti totalmente ad oggetti, quando mi serve lavorare con un "numero" (il concetto di numero è un puro significato umano, per la macchina non esiste) semplicemente assegno un numero (espresso in modo sintatticamente valido) a un nome/etichetta (scritto in modo sintatticamente valido), non ci sono limiti di grandezza dei valori se non quanto l'intera memoria del computer è in grado di contenere:

Codice: Seleziona tutto
il_mio_numero = 8273

Se scendo di livello e uso il linguaggio C, devo occuparmi anche di specificare esplicitamente il tipo di dato con cui voglio lavorare (intero? con la virgola? con o senza segno? quanto grande al massimo?):

Codice: Seleziona tutto
uint16_t il_mio_numero = 8273;  // intero senza segno, max 65535

Se scendo ancora di livello, e ad esempio scrivo in assembly Z80, mi devo occupare anche della posizione fisica in memoria (indirizzo) in cui quel valore verrà salvato, e quindi devo anche conoscere i dettagli elettronici del sistema:

Codice: Seleziona tutto
il_mio_numero  EQU  25000  ; indirizzo fisico di memoria

ld  hl, 8273               ; carica registro HL, max 65535
ld  (il_mio_numero),hl     ; copia registro in memoria

Ma tutto questo non riguarda ancora in alcun modo l' IA (o qualsiasi altra applicazione). Un linguaggio è solo un modo per codificare concretamente un processo, e renderlo così eseguibile/realizzabile da un sistema fisico). È solo un modo per codificare in modo formale e non ambiguo frasi e pensieri come: "se succede questo allora faccio questo", ad esempio in sintassi C:

Codice: Seleziona tutto
if (succede questo)
{
    faccio questo;
}

Un linguaggio si può certamente imparare solo teoricamente, per capire cosa permette di fare, come si descrivono i dati, ma questo non significa saperlo usare, cioè passare dall'idea di ciò che si vorrebbe fare alla sua formalizzazione nello specifico linguaggio, né significa capire se è adatto o meno per lo scopo che ci interessa. In mezzo ci sono diagrammi di flusso, stato, interazione, struttura, peculiarità specifiche del linguaggio, un intero universo di "design" che richiede inevitabilmente anni di esperienza pratica.

I processi in senso astratto invece, di qualsiasi natura siano, possono essere studiati indipendentemente da qualsiasi linguaggio o implementazione tecnica, anche se la conoscenza dei linguaggi e dei limiti fisici delle macchine reali (tipicamente occupazione di memoria e velocità) permette di capire se sono concretamente realizzabili oppure no.

Dopo di che, se si parla di IA, abbiamo minimo tre macro categorie:
  • processi con intelligenza "cablata", praticamente tutti i programmi/app di uso corrente e i sistemi automatici
  • processi in grado di "apprendere" tramite regole esplicitamente codificate (vedi expert system e motori inferenziali)
  • processi in grado di "apprendere" senza regole esplicitamente codificate, e allora si parla di deep learning, tipicamente realizzato tramite modelli simulati di reti neurali

Ma, di nuovo, tutto questo non riguarda ancora lontanamente una "mente", che non solo non si sa come "funziona", ma c'è di mezzo lo spinosissimo "problema" della coscienza, che non solo non si sa cosa sia, ma non si sa neppure se può essere considerata una cosa (come fai a progettare una sensazione?). Per ora semplicemente si ignora la cosa, bollandola come epifenomeno, "user illusion" della materia organizzata, e l' IA mira molto ma molto più in basso, semplicemente a simulare/ricreare alcune funzioni percettive e cognitive, sempre e comunque incosce e inconsapevoli, fondamentalmente a trattare enormi quantità di dati e correlazioni tra di loro.
Una domanda ben posta è già mezza risposta.
Avatar utente
Foto Utentedjnz
1.105 1 4 5
Expert
Expert
 
Messaggi: 597
Iscritto il: 26 lug 2020, 14:52

0
voti

[10] Re: Informatica teorica

Messaggioda Foto UtenteCosimo00110 » 2 mag 2023, 19:50

djnz ha scritto:Ma, di nuovo, tutto questo non riguarda ancora lontanamente una "mente", che non solo non si sa come "funziona", ma c'è di mezzo lo spinosissimo "problema" della coscienza, che non solo non si sa cosa sia, ma non si sa neppure se può essere considerata una cosa (come fai a progettare una sensazione?). Per ora semplicemente si ignora la cosa, bollandola come epifenomeno, "user illusion" della materia organizzata, e l' IA mira molto ma molto più in basso, semplicemente a simulare/ricreare alcune funzioni percettive e cognitive, sempre e comunque incosce e inconsapevoli, fondamentalmente a trattare enormi quantità di dati e correlazioni tra di loro.


Si, ho scritto nel mio primo post quello è “il mio sole” per intendere la direzione non la meta
Avatar utente
Foto UtenteCosimo00110
25 3
 
Messaggi: 25
Iscritto il: 27 apr 2023, 20:52

Prossimo

Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 20 ospiti