Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

cross language programming

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] cross language programming

Messaggioda Foto Utentespacemoses00 » 31 ott 2020, 20:46

buonasera,
stavo vendendo un video dove un tizio senza la minima esperienza di python è riuscito, googlando un attimo la sintassi necessaria e sufficiente, a scrivere un programma abbastanza complicato e addirittura a livello di sintassi molto ottimizzato, questo perché, a quanto pare, esiste una logica di fondo base su tutti i linguaggi, infatti prima di scrivere il vero codice effettivo a scritto una sorta di pseudo codice che poi ha trasformato rendendolo commestibile all' ide di python, in tutto ciò si parlava inoltre di complessità algoritmi ecc.. quindi dopo questa premessa la questione è: come fate voi quando dovete passare da un linguaggio ad un altro? lo studiate e basta? e se questi due linguaggi devono comunicare come si ragiona? avete dei consigli, trucchi, letture da consigliare che sviluppano questa "logica di fondo" senza doversi prendere una laurea triennale in informatica?
inoltre a questo tread vorrei aggiungere un sotto-paragrafo: fino ad ora ho sentito/combattuto con molti microcontrollori, ma ognuno di essi aveva una sintassi diversa! ora, è possibile specchiare questo ragionamento anche nei linguaggi dei microcontrollori? ( questo sotto paragrafo non lo volevo mettere, perché pensandoci un attimo un PIC "non comunica con l'esterno" come farebbe un arduino o un stm"ma tentar non nuoce :D :D )

ringrazio in anticipo chi risponderà spero che questo non sia un banale repost
Avatar utente
Foto Utentespacemoses00
30 2
 
Messaggi: 34
Iscritto il: 24 mar 2020, 20:03

0
voti

[2] Re: cross language programming

Messaggioda Foto UtenteWALTERmwp » 12 nov 2020, 16:21

Ciao Foto Utentespacemoses00.

spacemoses00 ha scritto:(...) questo perché, a quanto pare, esiste una logica di fondo base su tutti i linguaggi (...)
si, opportunamente drogato, è il silicio.

spacemoses00 ha scritto:(...) come fate voi quando dovete passare da un linguaggio ad un altro? lo studiate e basta? (...)
un linguaggio di programmazione lo si usa in funzione delle circostanze, non si passa da uno all'altro. Non so che verbo sia "basta", è invece noto "studiate": un minimo di studio ci vuole e l'eventuale approfondimento dipende dalle circostanze(quelle di prima).

spacemoses00 ha scritto:(...) e se questi due linguaggi devono comunicare come si ragiona? (...)
i linguaggi non hanno la necessità di comunicare tra loro, è una esigenza che appartiene alle applicazioni, quindi dipende dalle circostanze(quelle di prima).

spacemoses00 ha scritto:(...) avete dei consigli, trucchi, letture da consigliare che sviluppano questa "logica di fondo" senza doversi prendere una laurea triennale in informatica?
no, però puoi studiare senza ambire all'alloro.

Forse non sono il più indicato a risponderti ma la vaghezza è reciproca.

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

4
voti

[3] Re: cross language programming

Messaggioda Foto Utentefairyvilje » 12 nov 2020, 16:35

Come per i linguaggi umani, anche quelli di programmazione sono più o meno collegati fra di loro, alle volte come semplice ispirazione nei loro concetti fondanti, altre si tratta di una chiara derivazione che porta a replicare ed espandere la base di un linguaggio genitore.
Il risultato è che salvo alcuni linguaggi dominio specifici per i quali trasferire concetti diventa praticamente impossibile, la maggior parte dei linguaggi di programmazione ricadono in un numero limitato di famiglie ed esibiscono un insieme di caratteristiche comuni molto sovrapponibili. Vuol dire che passivamente una persona con abbastanza esperienza è in grado di comprendere anche programmi relativamente complessi scritti in un linguaggio mai studiato formalmente. Scriverci è generalmente più complesso, ma se sei disposto ad ignorare le best practices ed alcune feature più peculiari, nel giro di un'ora puoi assorbire abbastanza della sintassi da riuscire a lavorarci col supporto dell'internet. A patto di avere abbastanza esperienza :mrgreen: .

Questo è molto simile a quello che un nativo che parla italiano può esperenziare parlando con uno spagnolo od un portoghese. E se parli un po' di tedesco riuscirai a comprendere a grandi linee un testo in danese, magari recuperandoti un po' di vocabolario. Una volta che parli inglese, tedesco, latino ed italiano vedi come siano di fatto lingue che al netto di differenze fonetiche ed un lessico che nel tempo è andato a divergere e svilupparsi in modo più o meno indipendente, condividono un sacco degli aspetti grammaticali. Poi ti trovi il giapponese che equivale al linguaggio funzionale di turno (tipo LISP), e scopri di dover imparare tutto da zero o quasi. Diciamo che è lo stesso con i linguaggi di programmazione.

Nel mio caso mi capita di continuo di fare questi salti da un linguaggio ad un altro. Ce ne sono una mezza dozzina che conosco molto bene, il resto li uso in riferimento all'esperienza che ho riportato di sopra.
Il mio consiglio è di imparare bene alcuni linguaggi rappresentativi di classi estremamente diverse. Questo aiuta moltissimo nel mappare i concetti quando ritrovati in uno nuovo :).

Non serve una laurea triennale, tuttavia ci sono dei corsi che spiegano i fondamenti teorici dei linguaggi e dei linguaggi di programmazione. Sono estremamente utili nel trasferire concetti da un dominio all'altro e permettono di velocizzare questo processo di interiorizzazione che altrimenti richiederebbe probabilmente anni :).
Se hai una propensione per i linguaggi naturali probabilmente troverai tutto questo facilitato, e anche di molto.
"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
13,3k 4 9 12
G.Master EY
G.Master EY
 
Messaggi: 2741
Iscritto il: 24 gen 2012, 19:23

2
voti

[4] Re: cross language programming

Messaggioda Foto Utentefairyvilje » 12 nov 2020, 16:52

inoltre a questo tread vorrei aggiungere un sotto-paragrafo: fino ad ora ho sentito/combattuto con molti microcontrollori, ma ognuno di essi aveva una sintassi diversa! ora, è possibile specchiare questo ragionamento anche nei linguaggi dei microcontrollori?

Risulta più complicato. A questo punto usi linguaggi di basso livello, o librerie specifiche per una certa architettura. Il risultato nel caso migliore è come parlare in italiano tecnico per un'area che non ti compete. Puoi cogliere la lingua, ma non il contenuto perché ti manca il contesto. Immagina un medico che voglia parlare in modo specifico del suo lavoro con un fisico che si occupa di gravità quantistica e vice versa.
Tuttavia anche per i microcontrollori, le diverse architetture sono molto simili fra di loro, quindi, come per i linguaggi puoi riconoscere patterns e strutture regolari, lo stesso vale per le caratteristiche architetturali delle diverse piattaforme. Esiste la possiblità di trasferire concetti e codice, specialmente se questo è stato scritto supponendo un livello di astrazione hardware sul quale è basato. Ovviamente più i due target divergono a livello architetturale, più questo trasferimento è reso improbabile, o per lo meno nel farlo lasci sul tavolo molte delle potenziali prestazioni.
Questo perché per lavorare su multiple piattaforme il tuo codice deve spesso limitarsi a sfruttare il sottoinsieme delle features in qualche modo supportate da tutte le architetture target.
"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
13,3k 4 9 12
G.Master EY
G.Master EY
 
Messaggi: 2741
Iscritto il: 24 gen 2012, 19:23

0
voti

[5] Re: cross language programming

Messaggioda Foto UtenteWALTERmwp » 12 nov 2020, 16:54

Mi ero scordato il pezzo finale
spacemoses00 ha scritto:(...) fino ad ora ho sentito/combattuto con molti microcontrollori, ma ognuno di essi aveva una sintassi diversa! ora, è possibile specchiare questo ragionamento anche nei linguaggi dei microcontrollori? ( questo sotto paragrafo non lo volevo mettere, perché pensandoci un attimo un PIC "non comunica con l'esterno" come farebbe un arduino o un stm"ma tentar non nuoce (...)
in cosa consisterebbe o come sarebbe rappresentata la differenza tra un PIC, un Arduino o un stm(categorie differenti, ma va beh) ?

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


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti