Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve
Dopo quasi un mese di utilizzo quotidiano e un viaggio medio-lungo in autostrada, raccontiamo pregi e limiti della Geely EX5: comfort premium, batteria LFP da 60,22 kWh, autonomia fino a 430 km e un prezzo che parte da 38.900 €
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Complete è un robot aspirapolvere che coniuga un'aspirazione potente e un lavaggio con rullo a logica di intelligenza artificiale che guida al meglio nella pulizia di casa: rulli e spazzole estensibili a pulire gli angoli e una base di ricarica che lava e ripristina il robot al emglio delle sue funzionalità dopo ogni azione di pulizia
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Abbiamo provato Google Pixel 11, il più accessibile della nuova gamma: chip Tensor G6 condiviso con i modelli Pro, fotocamera 48 MP con Magic Capture e Stili Fotografici, display Actua da 3000 nit e batteria da 4985 mAh. Ecco come si comporta nell'uso quotidiano, e cosa cambia davvero rispetto a Pixel 11 Pro e Pro XL
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-06-2005, 09:13   #21
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Che c'e' di strano?
Viene richiamato il costruttore oveloaded

Codice:
public Studente(int matricola){}
Non capisco cosa vuoi evidenziare.
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2005, 10:26   #22
Angus
Senior Member
 
L'Avatar di Angus
 
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
Quote:
Originariamente inviato da mjordan
In ogni caso, al di la della precedenza, sarebbe stato piu' giusto emettere almeno un warning, perche' l'ambiguita logica e' palese. Entrambi i metodi sovraccaricati potrebbero essere candidati possibili). In C, per esempio, il compilatore emette un warning quando fai una conversione di tipo automatica senza un casting esplicito.
E' tanto che non compilo C, ma sei sicuro che avvenga sempre? Io ricordo che accade solo se il casting implicito portasse a possibile perdita di informazione. Seguendo invece il tuo ragionamento il compilatore dovrebbe emettere un warning per il seguente codice, non ambiguo a mio parere:

Codice:
public static void print(int i) { System.out.println("int " + i); }
public static void print(double d) { System.out.println("double " + d); }
public static void main(String... args) { print(3); }
Quote:
In generale e' considerato "male" avere regole implicite in un linguaggio.
Dipende...

Quote:
In sostanza, quello che voglio dire io, e' che per me quello che era corretto in quel momento nella mia testa era il metodo scartato. Quindi io e il compilatore concettualmente la pensavavamo diversamente in quel momento.
Il compilatore non può preoccuparsi di cosa pensa il programmatore, al limite può sforzarsi di fargli scrivere del codice corretto e non ambiguo.

Quote:
Comunque, ho imparato qualcosa di nuovo,
...
se n'e' andata la giornata appresso a sta cagata Quando uno e' convinto che il codice che ha scritto e' giusto purtroppo ecco i risultati...
Quando non hai dubbi è il momento di andarteli a cercare... Spesso mi ritrovo a controllare con dei semplici test se le mie verità coincidono con la realtà...
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer
°SetiEmperor°| Ninja Technologies
{ qualunque cosa sia, è veloce e fa male (cit.) }

Ultima modifica di Angus : 21-06-2005 alle 10:29.
Angus è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2005, 11:54   #23
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Quote:
Originariamente inviato da Angus
E' tanto che non compilo C, ma sei sicuro che avvenga sempre? Io ricordo che accade solo se il casting implicito portasse a possibile perdita di informazione. Seguendo invece il tuo ragionamento il compilatore dovrebbe emettere un warning per il seguente codice, non ambiguo a mio parere:

Codice:
public static void print(int i) { System.out.println("int " + i); }
public static void print(double d) { System.out.println("double " + d); }
public static void main(String... args) { print(3); }
Bhe', i warning del compilatore C dipendono appunto dal compilatore e dai flag che controllano la paranoia dei warning, non c'e' un comportamento predefinito. GCC 4.0.0 rompe le balle anche quando due tipi differiscono in segno. Per quanto riguarda il mio discorso, esso si riferiva ai metodi sovraccaricati varargs. Il tuo codice in questo caso non e' ambiguo proprio perche' passare "3" come argomento e' diverso che passare "3.0", quindi l'ambiguita' non sussiste. L'ambiguita' che evidenziavo io era sul numero di parametri passato per argomento, non nella risoluzione dei tipi.

Quote:
Il compilatore non può preoccuparsi di cosa pensa il programmatore, al limite può sforzarsi di fargli scrivere del codice corretto e non ambiguo.
Quindi sostituirsi al programmatore Il compilatore non e' soltanto uno strumento per generare codice. Un buon compilatore e' il primo strumento di testing. I metri di qualita' di un compilatore sono anche l'utilita' dei messaggi che e' in grado di generare. Tanto piu' e' loquace (purche' coerente) tanto piu' aiuta nella stesura del codice. L'esempio che ho dato io prima e' un codice "corretto in sintassi" ma "scorretto in logica" perche' presenta piu' di un caso valido. Siccome non mi vengono possibili circostanze in cui avere due metodi varargs sovraccaricati in quel modo possa risultare utile (e comunque realizzabili in modo diverso e sicuramente piu' chiaro), per come la penso io dovrebbe generare almeno un warning, anche in vista del fatto che il codice presentato da cisc addirittura abortisce con un errore. Le differenze sono molto sottili, ma presenti. Se stavamo parlando di C o C++ probabilmente la questione non sarebbe sorta. Ma Java nelle sue specifiche sottolinea la parola "robusto" nella descrizione del linguaggio. Chiaramente un programmatore non puo' essere sempre in grado di garantire la robustezza di quello che scrive e qui il compilatore e' un valido aiuto.

Voglio provare a sollevare la questione sul JCP, voglio vedere cosa mi dicono
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2005, 12:46   #24
Angus
Senior Member
 
L'Avatar di Angus
 
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
Quote:
Originariamente inviato da mjordan
GCC 4.0.0 rompe le balle anche quando due tipi differiscono in segno.
intendi signed/unsigned? Non ci sarebbe possibile perdita di informazione?

Quote:
Per quanto riguarda il mio discorso, esso si riferiva ai metodi sovraccaricati varargs. Il tuo codice in questo caso non e' ambiguo proprio perche' passare "3" come argomento e' diverso che passare "3.0", quindi l'ambiguita' non sussiste. L'ambiguita' che evidenziavo io era sul numero di parametri passato per argomento, non nella risoluzione dei tipi.
Intendevo fare un paragone proprio a livello logico ma non ho reso l'idea.
Ti sei chiesto cosa succede se dichiari un metodo m(int... interi) e lo invochi come m()? Succede che il compilatore effettua la chiamata come m(x) dove x è un'istanza di int[], e non NULL come si potrebbe anche pensare. Quindi nel caso da te citato, è logico che a fronte della chiamata m(1) il compilatore scelga di invocare il metodo m(int i) piuttosto che m(int i, int... x) che comporterebbe la creazione ad hoc di un'istanza di int[].

Quote:
Il compilatore non e' soltanto uno strumento per generare codice. Un buon compilatore e' il primo strumento di testing. I metri di qualita' di un compilatore sono anche l'utilita' dei messaggi che e' in grado di generare. Tanto piu' e' loquace (purche' coerente) tanto piu' aiuta nella stesura del codice.
Sono d'accordo, anche se ci sono altre correnti di pensiero che preferiscono affibbiare l'onere della correttezza logica del codice ad appositi framework di test, rendendo più 'accomodante' il compilatore...

Quote:
L'esempio che ho dato io prima e' un codice "corretto in sintassi" ma "scorretto in logica" perche' presenta piu' di un caso valido.
E' qui che non ti capisco... Per me è alla stessa strega del casting implicito se necessario e sicuro. Con la tua logica anche m(int i) e m(double d) potrebbero rendere ambigua la chiamata m(3).


Quote:
per come la penso io dovrebbe generare almeno un warning, anche in vista del fatto che il codice presentato da cisc addirittura abortisce con un errore.
Il codice di cisc da un errore in fase di compilazione, non di esecuzione. Quindi direi che il compilatore ti avvisa eccome!

Quote:
Voglio provare a sollevare la questione sul JCP, voglio vedere cosa mi dicono
Facci sapere
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer
°SetiEmperor°| Ninja Technologies
{ qualunque cosa sia, è veloce e fa male (cit.) }
Angus è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Un satellite della Space Force e lo stad...
Il telescopio spaziale Swift torna opera...
S-Transistors sviluppa i transistor a su...
Sostituire gli sviluppatori con l'IA è u...
Robot aspirapolvere usato come telecamer...
Crawler AI fuori controllo: il 98% del t...
PCB dalla Cina venduti come prodotti di ...
"Porca miseria, reader è ADM...
Un nuovo rinvio per Squadron 42, il nuov...
I 'cani robot' di Boston Dynamics in pri...
Volkswagen rilancia il nome Up: la city ...
Privacy: cosa succede quando chiedi i da...
Meta brevetta un interruttore hardware c...
Il chip che stacca la batteria in 5 micr...
Qualcosa sta cambiando nello spazio: Tru...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:03.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v