Questions marquées «language-design»

Questions concernant la conception et la structure des langages de programmation.





2
Comment la sécurité des threads pourrait-elle être assurée par un langage de programmation similaire à la façon dont la sécurité de la mémoire est assurée par Java et C #?
Java et C # assurent la sécurité de la mémoire en vérifiant les limites des tableaux et les déréférences des pointeurs. Quels mécanismes pourraient être mis en œuvre dans un langage de programmation pour éviter la possibilité de conditions de concurrence et de blocages?

1
Pourquoi Swift a-t-il besoin de tables de témoins?
J'essaie de lire les détails de l'implémentation de Swift, et une chose que je ne peux pas comprendre, ce sont ses "tables témoins". Il semble que ce soit un pointeur vtable distinct utilisé pour les structures. Mais pourquoi en auriez-vous besoin? Les structures sont copiées par valeur, donc vous savez …

1
Les continuations de première classe sont-elles utiles dans les langages de programmation orientés objet modernes?
Les continuations sont extrêmement utiles dans les langages de programmation fonctionnels (par exemple la Contmonade dans Haskell) car elles permettent une notation simple et régulière pour le code de style impératif. Ils sont également utiles dans certains anciens langages impératifs car ils peuvent être utilisés pour implémenter des fonctionnalités de …


3
Comment implémenter l'évaluation paresseuse de if ()
J'implémente actuellement un évaluateur d'expressions (expressions sur une seule ligne, comme des formules) basé sur les éléments suivants: l'expression entrée est symbolisée pour séparer les booléens littéraux, les entiers, les décimales, les chaînes, les fonctions, les identificateurs (variables) J'ai implémenté l'algorithme Shunting-yard (légèrement modifié pour gérer les fonctions avec un …





1
Nom de la technique pour déduire les arguments de type d'un paramètre de type?
Configuration: Supposons que nous avons un type appelé Iteratorqui a un paramètre de type Element: interface Iterator<Element> {} Ensuite, nous avons une interface Iterablequi a une méthode qui retournera un Iterator. // T has an upper bound of Iterator interface Iterable<T: Iterator> { getIterator(): T } Le problème d' Iteratorêtre …

4
Est-ce une bonne idée d'utiliser un langage de générateur tel que «yield»?
PHP, C #, Python et probablement quelques autres langages ont un yieldmot-clé qui est utilisé pour créer des fonctions de générateur. En PHP: http://php.net/manual/en/language.generators.syntax.php En Python: https://www.pythoncentral.io/python-generators-and-yield-keyword/ En C #: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/yield Je suis préoccupé par le fait qu'en tant que fonctionnalité / fonctionnalité de langue, cela yieldbrise certaines conventions. L'un …

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.