Discussion:
inquiétude sur la norme à venir
(trop ancien pour répondre)
Mehdi Saada
2017-12-09 01:23:40 UTC
Permalink
J'ai vu un diaporama de Altran sur la nouvelle norme(https://fr.slideshare.net/AdaCore/ada-202x-a-broad-overview-of-relevant-news). J'espère avoir mal compris, mais est-ce bien prévu de faire d'en faire un langage FONCTIONNEL (let, let rec) ? Je ne sais même pas si c'est censé être une bonne ou mauvaise chose, mais n'est-ce pas aux antipodes des paradigmes de la norme actuelle ?
Mehdi Saada
2017-12-09 01:28:11 UTC
Permalink
J'allais oublier, les lambda fonctions aussi. Partie qui découragera tous les étudiants ayants eu moins 18 au Bac de math...
g***@hotmail.com
2017-12-09 10:43:10 UTC
Permalink
Jusqu'à présent la compatibilité a été soigneusement préservée (à part un ou deux défauts de jeunesse de Ada 83). En supposant que cela continue ainsi, si les nouvelles fonctionnalités sont trop ésotériques, ce sont juste d'autres outils dans la boîte à outils que tu peux ignorer.
Pascal Obry
2017-12-09 14:49:18 UTC
Permalink
Post by Mehdi Saada
J'ai vu un diaporama de Altran sur la nouvelle
norme(https://fr.slideshare.net/AdaCore/ada-202x-a-broad-overview-of-
relevant-news). J'espère avoir mal compris, mais est-ce bien prévu de
faire d'en faire un langage FONCTIONNEL (let, let rec) ?
Je n'ai pas vu cela dans les slides!
--
Pascal Obry / Magny Les Hameaux (78)

The best way to travel is by means of imagination

http://www.obry.net

gpg --keyserver keys.gnupg.net --recv-key F949BD3B
Mehdi Saada
2017-12-09 15:44:00 UTC
Permalink
Le synopsis est juste en dessous.

12. Ada 202x Expressions Delta aggregates replace Spark update expressions:
procedure Adjust (R: in out Record_T; Fudge: Float) with Post => R = (R’Old with delta Low_Bound => Fudge * R’Old.Low_Bound , Hi_Bound => Fudge * R’Old.Hi_Bound );
All_Zero : constant Array_T := (others => 0); Mask : constant Array_T := (All_Zero with delta A .. B => 1, C .. D => 1); 8

14. Ada 202x Other possible features Let expressions Lambda functions 10
15. Ada 202x Other possible features Let expressions Lambda functions Generator subprograms (a limited form of co-routines) yield 0; −− Return to calling subprogram, resume execution here yield X; These are iterable: for Values of My_Generator loop −− First we get 0, then we get X, ... 10
16. Ada 202x Other possible features Let expressions Lambda functions Generator subprograms (a limited form of co-routines) yield 0; −− Return to calling subprogram, resume execution here yield X; These are iterable: for Values of My_Generator loop −− First we get 0, then we get X, ... Container aggregates and displays S : Hash_Set := (X, Y, Z); P : Hash_Set := (for N in Positive if Is_Prime (N) => N); 10

Les delta expressions sont juste des expressions pour dire "ne change que ça", si j'ai bien compris ?
Mehdi Saada
2017-12-09 15:49:00 UTC
Permalink
Par contre j'ai du rêvé let rec.
Sinon, le block "paralell" sert juste à faire simplement plusieurs choses à la fois, des sortes de tâches anonymes et simplifiées ?
J-P. Rosen
2017-12-11 12:04:46 UTC
Permalink
Post by Mehdi Saada
Sinon, le block "paralell" sert juste à faire simplement plusieurs
choses à la fois, des sortes de tâches anonymes et simplifiées ?
En gros, oui. Il signifie d'abord que l'ordre d'itération est sans
importance, et donc que deux itérations peuvent même se produire "en
même temps".
--
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
Tel: +33 1 45 29 21 52, Fax: +33 1 45 29 25 00
http://www.adalog.fr
Mehdi Saada
2017-12-11 23:13:09 UTC
Permalink
Mais même sans cette construction, les compilateurs ne s'occupent-il pas déjà de paralléliser tant que possible les boucles, si elles ne se passent pas de valeurs ? Quel intérêt ajouter cette information a-t-il, à part d'empêcher explicitement tout échange entre les itérations ? Aussi, il y a le risque d'accès simultanné aux variables globales du cadre d'exécution englobant (je me souviens du terme technique), de ceux d'au-dessus ? Comment pense-t-on éviter ses problèmes, sans obliger l'utilisateur à soupoudrer tout de "protected", et sans ajouter des tests coûteux à l'exécution ?

(je suis délibérément provocateur, comme avec tous mes profs ;-) ).
Continuer la lecture sur narkive:
Loading...