Autore Topic: Static control flow analysis  (Letto 4268 volte)

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Static control flow analysis
« il: 05 Dicembre 2014, 17:02:35 »
Come vi sembra questa soluzione Java? http://blog.jetbrains.com/idea/2013/10/better-control-flow-analysis-with-contract-annotations-and-intellij-idea-13/
La cosa che ho trovato utile è la presenza di warning che rompono le scatole se fai cose tipo:
Codice: [Seleziona]
getSomething().doSomeMore(); // genera un warning: Method invocation 'getSomething().doSomeMore()' may produce 'java.lang.NullPointerException.

La presenza di questi warning non risolve da sola i problemi del codice, ma è utile quantomeno per attirare la mia attenzione e fixare potenziali futuri errori a runtime con appositi check.

Offline Z80Fan

  • Administrator
  • Guru
  • *****
  • Post: 1671
  • Karma: +13/-2
    • Mostra profilo
    • http://z80fan.altervista.org
Re:Static control flow analysis
« Risposta #1 il: 05 Dicembre 2014, 17:18:56 »
Io sono sempre favorevole allo static analysis. In questo caso è un po' più fastidioso in quanto bisogna annotare correttamente le funzioni, ma bisognerebbe farlo lo stesso come documentazione del codice (nel javadoc per esempio), quindi non è un gran problema.

IntelliJ non è anche alla base di Android Studio? Mi son sempre ripromesso di provarlo, ma con la scusa che ancora non supporta l'NDK non mi permette di usarlo in un mio progetto corrente. Chissà quando arriverà il giorno in cui potremmo buttar via Eclipse... :(

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Static control flow analysis
« Risposta #2 il: 05 Dicembre 2014, 17:35:38 »
Spero presto, ormai siamo alla Release Candidate 4 :)

qui alcune info, ci sta lavorando anche Intel a quanto pare: https://software.intel.com/en-us/videos/using-the-ndk-with-android-studio

Offline Z80Fan

  • Administrator
  • Guru
  • *****
  • Post: 1671
  • Karma: +13/-2
    • Mostra profilo
    • http://z80fan.altervista.org
Re:Static control flow analysis
« Risposta #3 il: 05 Dicembre 2014, 17:53:48 »
Buone notizie. :D

Offline cdimauro

  • Human Debugger
  • *****
  • Post: 4291
  • Karma: +7/-95
    • Mostra profilo
Re:Static control flow analysis
« Risposta #4 il: 05 Dicembre 2014, 18:09:58 »
Come vi sembra questa soluzione Java? http://blog.jetbrains.com/idea/2013/10/better-control-flow-analysis-with-contract-annotations-and-intellij-idea-13/
La cosa che ho trovato utile è la presenza di warning che rompono le scatole se fai cose tipo:
Codice: [Seleziona]
getSomething().doSomeMore(); // genera un warning: Method invocation 'getSomething().doSomeMore()' may produce 'java.lang.NullPointerException.

La presenza di questi warning non risolve da sola i problemi del codice, ma è utile quantomeno per attirare la mia attenzione e fixare potenziali futuri errori a runtime con appositi check.
L'idea è interessante, e si potrebbe sfruttare anche per i linguaggi dinamici. Però non risolve tutte le problematiche relative all'utilizzo di un null pointer, o in generale al tracciamento dei risultati a partire dai valori di input (compito che, comunque, sarebbe abbastanza arduo e costoso computazionalmente).

Chissà quando arriverà il giorno in cui potremmo buttar via Eclipse... :(
Devi aspettare un po'. ::)

Spero presto, ormai siamo alla Release Candidate 4 :)

qui alcune info, ci sta lavorando anche Intel a quanto pare: https://software.intel.com/en-us/videos/using-the-ndk-with-android-studio
Ma questo è basato ancora su Eclipse. Z80Fan parlava di buttare Eclipse, invece. ::) ::) ::)

Offline Z80Fan

  • Administrator
  • Guru
  • *****
  • Post: 1671
  • Karma: +13/-2
    • Mostra profilo
    • http://z80fan.altervista.org
Re:Static control flow analysis
« Risposta #5 il: 05 Dicembre 2014, 18:22:19 »
Ma questo è basato ancora su Eclipse. Z80Fan parlava di buttare Eclipse, invece. ::) ::) ::)

Nel video usa solo IntelliJ; cosa intendi dire con "basato ancora su Eclipse"? ???
L'NDK stesso viene scaricato separatamente dal SDK principale; non credo che abbia dipendenze da Eclipse...

Offline cdimauro

  • Human Debugger
  • *****
  • Post: 4291
  • Karma: +7/-95
    • Mostra profilo
Re:Static control flow analysis
« Risposta #6 il: 05 Dicembre 2014, 18:25:40 »
Android Studio / IntelliJ non sono basati su Eclipse?

Offline Z80Fan

  • Administrator
  • Guru
  • *****
  • Post: 1671
  • Karma: +13/-2
    • Mostra profilo
    • http://z80fan.altervista.org
Re:Static control flow analysis
« Risposta #7 il: 05 Dicembre 2014, 18:30:53 »
Android Studio / IntelliJ non sono basati su Eclipse?

Android Studio è basato su IntelliJ, ma IntelliJ non è basato su Eclipse.
Se lo fosse, non avrebbe senso creare Android Studio, visto che già l'SDK gira su Eclipse.

Offline cdimauro

  • Human Debugger
  • *****
  • Post: 4291
  • Karma: +7/-95
    • Mostra profilo
Re:Static control flow analysis
« Risposta #8 il: 05 Dicembre 2014, 18:31:25 »
Amen. Comunque... aspetta. ::)

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Static control flow analysis
« Risposta #9 il: 05 Dicembre 2014, 18:34:15 »
Android Studio / IntelliJ non sono basati su Eclipse?

Per fortuna no!
IntelliJ IDEA è un progetto nato quasi contemporaneamente ad Eclipse, più o meno inizio 2000 quando Eclipse non esisteva ancora con questo nome e non era ancora Open Source.

Offline cdimauro

  • Human Debugger
  • *****
  • Post: 4291
  • Karma: +7/-95
    • Mostra profilo
Re:Static control flow analysis
« Risposta #10 il: 05 Dicembre 2014, 18:35:36 »
Capito. Ma perché si diffondono sempre le soluzioni peggiori? :-\

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Static control flow analysis
« Risposta #11 il: 05 Dicembre 2014, 18:35:56 »
Amen. Comunque... aspetta. ::)

cosa vuoi tentare di comunicarci?  ???

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Static control flow analysis
« Risposta #12 il: 05 Dicembre 2014, 18:36:30 »
Capito. Ma perché si diffondono sempre le soluzioni peggiori? :-\

ah boh! per il VHS la colpa fu dell'industria del porno, ma su Eclipse non ci giurerei :D

Offline cdimauro

  • Human Debugger
  • *****
  • Post: 4291
  • Karma: +7/-95
    • Mostra profilo
Re:Static control flow analysis
« Risposta #13 il: 05 Dicembre 2014, 18:37:04 »
Amen. Comunque... aspetta. ::)

cosa vuoi tentare di comunicarci?  ???
Eh. Magari potessi. :-X

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Static control flow analysis
« Risposta #14 il: 05 Dicembre 2014, 18:38:32 »
uff.... tu sai cose che noi umani....  >:(
Per ora da Intel ho visto un bel po' di roba sfornata. Tipo questo: https://software.intel.com/en-us/intel-inde
Si interfaccia con Visual Studio, Eclipse o IntelliJ IDEA, ma scommetto che non era quello che volevi NON-comunicarci :D

Tags: