38 lines
35 KiB
JSON
38 lines
35 KiB
JSON
[
|
||
{"id":"abelsonStructureInterpretationComputer1996","accessed":{"date-parts":[["2024",3,29]]},"author":[{"family":"Abelson","given":"Harold"},{"family":"Sussman","given":"Gerald Jay"},{"family":"Sussman","given":"Julie"}],"citation-key":"abelsonStructureInterpretationComputer1996","edition":"2","event-place":"Cambridge, Massachusetts, London, England","issued":{"date-parts":[["1996"]]},"language":"en","publisher":"MIT Press","publisher-place":"Cambridge, Massachusetts, London, England","source":"Zotero","title":"Structure and Interpretation of Computer Programs","type":"book","URL":"http://mitpress.mit.edu/sicp"},
|
||
{"id":"AutomatePile2021","abstract":"Un automate à pile est une machine abstraite utilisée en informatique théorique et, plus précisément, en théorie des automates.\nUn automate à pile est une généralisation des automates finis : il dispose en plus d'une mémoire infinie organisée en pile (last-in/first-out ou LIFO). Un automate à pile prend en entrée un mot et réalise une série de transitions. Il effectue pour chaque lettre du mot une transition, dont le choix dépend de la lettre, de l'état de l'automate et du sommet de la pile ; il peut aussi modifier le contenu de la pile. Selon l'état de l'automate et de la pile à la fin du calcul, le mot est accepté ou refusé.\nLes langages reconnus par les automates à piles sont exactement les langages algébriques, c'est-à-dire ceux engendrés par une grammaire algébrique.\nL'importance des automates à pile vient de leur emploi en analyse syntaxique des langages de programmation, et plus généralement dans la transformation de définitions ou d'algorithmes récursifs en leurs analogues itératifs.","accessed":{"date-parts":[["2024",3,31]]},"citation-key":"AutomatePile2021","container-title":"Wikipédia","issued":{"date-parts":[["2021",10,29]]},"language":"fr","license":"Creative Commons Attribution-ShareAlike License","note":"Page Version ID: 187552887","source":"Wikipedia","title":"Automate à pile","type":"entry-encyclopedia","URL":"https://fr.wikipedia.org/w/index.php?title=Automate_%C3%A0_pile&oldid=187552887"},
|
||
{"id":"billaudProgrammationFonctionnelleSymbolique1989","accessed":{"date-parts":[["2024",3,28]]},"author":[{"family":"Billaud","given":"Michel"}],"citation-key":"billaudProgrammationFonctionnelleSymbolique1989","container-title":"Page personnelle de Michel Billaud","issued":{"date-parts":[["1989"]]},"title":"Programmation Fonctionnelle et Symbolique - Introduction","type":"webpage","URL":"https://www.mbillaud.fr/SITE-PERSO-LABRI/travaux/lisp89/1intro.html"},
|
||
{"id":"brown10ThingsSoftware2023","abstract":"Understanding how human memory and learning works, the differences between beginners and experts, and practical steps developers can take to improve their learning, training, and recruitment.","accessed":{"date-parts":[["2024",3,14]]},"author":[{"family":"Brown","given":"Neil C. C."},{"family":"Hermans","given":"Felienne F. J."},{"family":"Margulieux","given":"Lauren E."}],"citation-key":"brown10ThingsSoftware2023","container-title":"Communications of the ACM","container-title-short":"Commun. ACM","DOI":"10.1145/3584859","ISSN":"0001-0782","issue":"1","issued":{"date-parts":[["2023",12,21]]},"page":"78–87","source":"ACM Digital Library","title":"10 Things Software Developers Should Learn about Learning","type":"article-journal","URL":"https://dl.acm.org/doi/10.1145/3584859","volume":"67"},
|
||
{"id":"cainLectureProgrammingParadigms2018","accessed":{"date-parts":[["2024",2,20]]},"author":[{"family":"Cain","given":"Jerry"}],"citation-key":"cainLectureProgrammingParadigms2018","event-place":"Stanford","issued":{"date-parts":[["2018",7,19]]},"language":"English","publisher-place":"Stanford","title":"Lecture 1 | Programming Paradigms","type":"speech","URL":"https://www.youtube.com/watch?v=Ps8jOj7diA0&list=PL9D558D49CA734A02"},
|
||
{"id":"ComparisonMultiparadigmProgramming2024","abstract":"Programming languages can be grouped by the number and types of paradigms supported.","accessed":{"date-parts":[["2024",2,20]]},"citation-key":"ComparisonMultiparadigmProgramming2024","container-title":"Wikipedia","issued":{"date-parts":[["2024",2,1]]},"language":"en","license":"Creative Commons Attribution-ShareAlike License","note":"Page Version ID: 1202029082","source":"Wikipedia","title":"Comparison of multi-paradigm programming languages","type":"entry-encyclopedia","URL":"https://en.wikipedia.org/w/index.php?title=Comparison_of_multi-paradigm_programming_languages&oldid=1202029082"},
|
||
{"id":"ComparisonProgrammingParadigms2024","abstract":"This article attempts to set out the various similarities and differences between the various programming paradigms as a summary in both graphical and tabular format with links to the separate discussions concerning these similarities and differences in extant Wikipedia articles.","accessed":{"date-parts":[["2024",2,26]]},"citation-key":"ComparisonProgrammingParadigms2024","container-title":"Wikipedia","issued":{"date-parts":[["2024",2,1]]},"language":"en","license":"Creative Commons Attribution-ShareAlike License","note":"Page Version ID: 1202049782","source":"Wikipedia","title":"Comparison of programming paradigms","type":"entry-encyclopedia","URL":"https://en.wikipedia.org/w/index.php?title=Comparison_of_programming_paradigms&oldid=1202049782"},
|
||
{"id":"dijkstraChapterNotesStructured1972","accessed":{"date-parts":[["2024",4,1]]},"author":[{"family":"Dijkstra","given":"Edsger W."}],"citation-key":"dijkstraChapterNotesStructured1972","container-title":"Structured programming","event-place":"GBR","ISBN":"978-0-12-200550-3","issued":{"date-parts":[["1972",1,1]]},"page":"1–82","publisher":"Academic Press Ltd.","publisher-place":"GBR","source":"ACM Digital Library","title":"Chapter I: Notes on structured programming","title-short":"Chapter I","type":"chapter"},
|
||
{"id":"EffetBordInformatique2023","abstract":"En informatique, une fonction est dite à effet de bord (traduction mot à mot de l'anglais side effect, dont le sens est plus proche d'effet secondaire) si elle modifie un état en dehors de son environnement local, c'est-à-dire a une interaction observable avec le monde extérieur autre que retourner une valeur. Par exemple, les fonctions qui modifient une variable locale statique, une variable non locale ou un argument mutable passé par référence, les fonctions qui effectuent des opérations d'entrées-sorties ou les fonctions appelant d'autres fonctions à effet de bord. Souvent, ces effets compliquent la lisibilité du comportement des programmes et/ou nuisent à la réutilisabilité des fonctions et procédures. Un langage comme Haskell les restreint délibérément dans des composants nommés monades.\nPlus communément, un effet de bord apparaît la plupart du temps lorsqu'une modification d'un programme cohérent (valeurs et états pris conformes aux spécifications) aboutit à des valeurs ou des comportements non prévus, à cause de la non prise en compte de la portée, de l'ensemble de définition de variables, ou du contrat des fonctions.","accessed":{"date-parts":[["2024",3,28]]},"citation-key":"EffetBordInformatique2023","container-title":"Wikipédia","issued":{"date-parts":[["2023",8,30]]},"language":"fr","license":"Creative Commons Attribution-ShareAlike License","note":"Page Version ID: 207397507","source":"Wikipedia","title":"Effet de bord (informatique)","type":"entry-encyclopedia","URL":"https://fr.wikipedia.org/w/index.php?title=Effet_de_bord_(informatique)&oldid=207397507"},
|
||
{"id":"EnregistrementStructureDonnees2023","abstract":"En programmation, un enregistrement est une structure de données qui rassemble plusieurs champs, ceux-ci contenant des valeurs qui peuvent être de types différents. Typiquement, le nombre de champ et leur séquence sont fixés. Les champs d'un enregistrement peuvent aussi être nommés \"membres\", en particulier dans la programmation orientée objet. Les champs peuvent encore être appelés \"éléments\", mais cela entraîne un risque de confusion avec les éléments d'une collection.\nPar exemple, une date peut être stockée en mémoire comme un enregistrement avec un champ numérique année, le mois représenté comme une chaîne de caractères, et un champ numérique pour le jour-du-mois.\nLes enregistrements se distinguent des tableaux (arrays) par le fait que le nombre de leurs champs est généralement fixé, que chaque champ a un nom et que chaque champ peut être de type différent.\nUn type enregistrement est un type de donnée qui décrit de telles variables. La majorité des langages de programmation utilisés aujourd'hui donne au programmeur la capacité de définir de nouveaux types d'enregistrements. La définition comprend la spécification du type de données de chaque champ et un identifiant (nom ou étiquette) par lequel on peut y accéder.\nLes enregistrements peuvent exister dans n'importe quelle forme de stockage de données (mémoire vive, bandes magnétiques, disques durs...). Les enregistrements sont fondamentaux pour la majorité des structures de données, en particulier les structures de données liées.\nUn objet dans la programmation orientée objet est essentiellement un enregistrement qui contient les procédures spécialisées pour cet enregistrement. Dans la majorité des langages orientés objet, les enregistrements sont des cas spécifiques des objets, et sont nommés plain old data structures, ou passive data structures.\nUn enregistrement peut être considéré comme l'équivalent informatique d'un n-uplet mathématique. Dans la même veine, il peut aussi être vu comme une version technologique d'un produit cartésien de deux ou plusieurs ensembles mathématiques.","accessed":{"date-parts":[["2024",3,28]]},"citation-key":"EnregistrementStructureDonnees2023","container-title":"Wikipédia","issued":{"date-parts":[["2023",9,12]]},"language":"fr","license":"Creative Commons Attribution-ShareAlike License","note":"Page Version ID: 207783466","source":"Wikipedia","title":"Enregistrement (structure de données)","type":"entry-encyclopedia","URL":"https://fr.wikipedia.org/w/index.php?title=Enregistrement_(structure_de_donn%C3%A9es)&oldid=207783466"},
|
||
{"id":"ExpressivePowerComputer2023","abstract":"In computer science, the expressive power (also called expressiveness or expressivity) of a language is the breadth of ideas that can be represented and communicated in that language. The more expressive a language is, the greater the variety and quantity of ideas it can be used to represent.\nFor example, the Web Ontology Language expression language profile (OWL2 EL) lacks ideas (such as negation) that can be expressed in OWL2 RL (rule language). OWL2 EL may therefore be said to have less expressive power than OWL2 RL. These restrictions allow for more efficient (polynomial time) reasoning in OWL2 EL than in OWL2 RL. So OWL2 EL trades some expressive power for more efficient reasoning (processing of the knowledge representation language).","accessed":{"date-parts":[["2024",3,28]]},"citation-key":"ExpressivePowerComputer2023","container-title":"Wikipedia","issued":{"date-parts":[["2023",8,26]]},"language":"en","license":"Creative Commons Attribution-ShareAlike License","note":"Page Version ID: 1172391643","source":"Wikipedia","title":"Expressive power (computer science)","type":"entry-encyclopedia","URL":"https://en.wikipedia.org/w/index.php?title=Expressive_power_(computer_science)&oldid=1172391643"},
|
||
{"id":"felleisenExpressivePowerProgramming1990","accessed":{"date-parts":[["2024",2,20]]},"author":[{"family":"Felleisen","given":"Matthias"}],"citation-key":"felleisenExpressivePowerProgramming1990","collection-editor":[{"family":"Goos","given":"G."},{"family":"Hartmanis","given":"J."},{"family":"Barstow","given":"D."},{"family":"Brauer","given":"W."},{"family":"Brinch Hansen","given":"P."},{"family":"Gries","given":"D."},{"family":"Luckham","given":"D."},{"family":"Moler","given":"C."},{"family":"Pnueli","given":"A."},{"family":"Seegmüller","given":"G."},{"family":"Stoer","given":"J."},{"family":"Wirth","given":"N."}],"container-title":"ESOP '90","DOI":"10.1007/3-540-52592-0_60","editor":[{"family":"Jones","given":"Neil"}],"event-place":"Berlin, Heidelberg","ISBN":"978-3-540-52592-9 978-3-540-47045-8","issued":{"date-parts":[["1990"]]},"page":"134-151","publisher":"Springer Berlin Heidelberg","publisher-place":"Berlin, Heidelberg","source":"DOI.org (Crossref)","title":"On the expressive power of programming languages","type":"chapter","URL":"http://link.springer.com/10.1007/3-540-52592-0_60","volume":"432"},
|
||
{"id":"felleisenProgrammableProgrammingLanguage2018","abstract":"As the software industry enters the era of language-oriented programming, it needs programmable programming languages.","accessed":{"date-parts":[["2024",2,26]]},"author":[{"family":"Felleisen","given":"Matthias"},{"family":"Findler","given":"Robert Bruce"},{"family":"Flatt","given":"Matthew"},{"family":"Krishnamurthi","given":"Shriram"},{"family":"Barzilay","given":"Eli"},{"family":"McCarthy","given":"Jay"},{"family":"Tobin-Hochstadt","given":"Sam"}],"citation-key":"felleisenProgrammableProgrammingLanguage2018","container-title":"Communications of the ACM","container-title-short":"Commun. ACM","DOI":"10.1145/3127323","ISSN":"0001-0782, 1557-7317","issue":"3","issued":{"date-parts":[["2018",2,21]]},"language":"en","page":"62-71","source":"DOI.org (Crossref)","title":"A programmable programming language","type":"article-journal","URL":"https://dl.acm.org/doi/10.1145/3127323","volume":"61"},
|
||
{"id":"FermetureInformatique2024","abstract":"Dans un langage de programmation, une fermeture ou clôture (en anglais : closure) est une fonction accompagnée de son environnement lexical. L'environnement lexical d'une fonction est l'ensemble des variables non locales qu'elle a capturées, soit par valeur (c'est-à-dire par copie des valeurs des variables), soit par référence (c'est-à-dire par copie des adresses mémoires des variables). Une fermeture est donc créée, entre autres, lorsqu'une fonction est définie dans le corps d'une autre fonction et utilise des paramètres ou des variables locales de cette dernière.\nUne fermeture peut être passée en argument d'une fonction dans l'environnement où elle a été créée (passée vers le bas) ou renvoyée comme valeur de retour (passée vers le haut). Dans ce cas, le problème posé alors par la fermeture est qu'elle fait référence à des données qui auraient typiquement été allouées sur la pile d'exécution et libérées à la sortie de l'environnement. Hors optimisations par le compilateur, le problème est généralement résolu par une allocation sur le tas de l'environnement.","accessed":{"date-parts":[["2024",3,31]]},"citation-key":"FermetureInformatique2024","container-title":"Wikipédia","issued":{"date-parts":[["2024",2,26]]},"language":"fr","license":"Creative Commons Attribution-ShareAlike License","note":"Page Version ID: 212836844","source":"Wikipedia","title":"Fermeture (informatique)","type":"entry-encyclopedia","URL":"https://fr.wikipedia.org/w/index.php?title=Fermeture_(informatique)&oldid=212836844"},
|
||
{"id":"floydParadigmsProgramming1979a","author":[{"family":"Floyd","given":"Robert W"}],"citation-key":"floydParadigmsProgramming1979a","issue":"8","issued":{"date-parts":[["1979"]]},"language":"en","source":"Zotero","title":"The paradigms of programming","type":"article-journal","volume":"22"},
|
||
{"id":"FonctionOrdreSuperieur2023","abstract":"En mathématiques et en informatique, les fonctions d'ordre supérieur sont des fonctions qui ont au moins une des propriétés suivantes :\n\nelles prennent une ou plusieurs fonctions en entrée ;\nelles renvoient une fonction.En mathématiques, on les appelle des opérateurs ou des fonctionnelles.\nL'opérateur de dérivation en calcul infinitésimal est un exemple classique, car elle associe une fonction (la dérivée) à une autre fonction (la fonction que l'on dérive).\nDans le lambda-calcul non typé, toutes les fonctions sont d'ordre supérieur. Dans le lambda-calcul typé, dont la plupart des langages de programmation fonctionnels sont issus, les fonctions d'ordre supérieur sont généralement celles dont le type contient\nplus d'une flèche (Flèches dans la programmation fonctionnelle).\nEn programmation fonctionnelle, les fonctions d'ordre supérieur qui retournent d'autres fonctions sont dites curryfiées.\nLa fonction map présente dans de nombreux langages de programmation fonctionnelle est un exemple de fonction d'ordre supérieur. Elle prend une fonction f comme argument, et retourne une nouvelle fonction qui prend une liste comme argument et applique f à chaque élément. Un autre exemple très courant est celui d'une fonction de tri qui prend en argument une fonction de comparaison ; on sépare ainsi l'algorithme de tri de la comparaison des éléments à trier.\nD'autres exemples de fonction d'ordre supérieur sont la composition de fonctions et l'intégration.","accessed":{"date-parts":[["2024",3,31]]},"citation-key":"FonctionOrdreSuperieur2023","container-title":"Wikipédia","issued":{"date-parts":[["2023",6,22]]},"language":"fr","license":"Creative Commons Attribution-ShareAlike License","note":"Page Version ID: 205383055","source":"Wikipedia","title":"Fonction d'ordre supérieur","type":"entry-encyclopedia","URL":"https://fr.wikipedia.org/w/index.php?title=Fonction_d%27ordre_sup%C3%A9rieur&oldid=205383055"},
|
||
{"id":"FunctionComputerProgramming2024","abstract":"In computer programming, a function, subprogram, procedure, method, routine or subroutine is a callable unit that has a well-defined behavior and can be invoked by other software units to exhibit that behavior.\nCallable units provide a powerful programming tool. The primary purpose is to allow for the decomposition of a large and/or complicated problem into chunks that have relatively low cognitive load and to assign the chunks meaningful names (unless they are anonymous). Judicious application can reduce the cost of developing and maintaining software, while increasing its quality and reliability.Callable units are present at multiple levels of abstraction in the programming environment. For example, a programmer may write a function in source code that is compiled to machine code that implements similar semantics. There is a callable unit in the source code and an associated one in the machine code, but they are different kinds of callable units – with different implications and features.","accessed":{"date-parts":[["2024",4,1]]},"citation-key":"FunctionComputerProgramming2024","container-title":"Wikipedia","issued":{"date-parts":[["2024",2,26]]},"language":"en","license":"Creative Commons Attribution-ShareAlike License","note":"Page Version ID: 1210403496","source":"Wikipedia","title":"Function (computer programming)","type":"entry-encyclopedia","URL":"https://en.wikipedia.org/w/index.php?title=Function_(computer_programming)&oldid=1210403496"},
|
||
{"id":"Gcode2023","abstract":"G-code (also RS-274) is the most widely used computer numerical control (CNC) and 3D printing programming language. It is used mainly in computer-aided manufacturing to control automated machine tools, as well as for 3D-printer slicer applications. The G stands for geometry. G-code has many variants.\nG-code instructions are provided to a machine controller (industrial computer) that tells the motors where to move, how fast to move, and what path to follow. The two most common situations are that, within a machine tool such as a lathe or mill, a cutting tool is moved according to these instructions through a toolpath cutting away material to leave only the finished workpiece and/or an unfinished workpiece is precisely positioned in any of up to nine axes around the three dimensions relative to a toolpath and, either or both can move relative to each other. The same concept also extends to noncutting tools such as forming or burnishing tools, photoplotting, additive methods such as 3D printing, and measuring instruments.","accessed":{"date-parts":[["2024",4,1]]},"citation-key":"Gcode2023","container-title":"Wikipedia","issued":{"date-parts":[["2023",12,28]]},"language":"en","license":"Creative Commons Attribution-ShareAlike License","note":"Page Version ID: 1192191622","source":"Wikipedia","title":"G-code","type":"entry-encyclopedia","URL":"https://en.wikipedia.org/w/index.php?title=G-code&oldid=1192191622"},
|
||
{"id":"GrammaireNonContextuelle2023","abstract":"En linguistique et en informatique théorique, une grammaire algébrique, ou grammaire non contextuelle, aussi appelée grammaire hors-contexte ou grammaire « context-free » est une grammaire formelle dans laquelle chaque règle de production est de la forme\n\nX→α{\\displaystyle X\\to \\alpha }où X{\\displaystyle X} est un symbole non terminal et α{\\displaystyle \\alpha } est une chaîne composée de terminaux et/ou de non-terminaux. Le terme « non contextuel » provient du fait qu'un non terminal X{\\displaystyle X} peut être remplacé par α{\\displaystyle \\alpha }, sans tenir compte du contexte où il apparaît. Un langage formel est non contextuel (ou hors contexte, ou encore algébrique) s'il existe une grammaire non contextuelle qui l'engendre.\nPar opposition est contextuelle une règle de la forme\nc +X→c+α{\\displaystyle c~+X\\to c+\\alpha }\nen raison de la partie gauche de la règle qui stipule un contexte pour X. Une telle règle signifie que X, dans le cas (contexte) où il est précédé du symbole terminal c{\\displaystyle c} et du littéral +{\\displaystyle +}, peut être remplacé par α{\\displaystyle \\alpha }.\nAinsi, dans une grammaire non contextuelle, un symbole non terminal est toujours seul dans la partie gauche de toute règle, ce qui signifie que son environnement syntaxique (ou contexte) n'est pas considéré.\nLes grammaires algébriques sont suffisamment puissantes pour décrire la partie principale de la syntaxe de la plupart des langages de programmation, avec au besoin quelques extensions. La forme de Backus-Naur est la notation la plus communément utilisée pour décrire une grammaire non contextuelle décrivant un langage de programmation. Dans la hiérarchie de Chomsky, ces grammaires sont de type 2.\nSi on trouve plusieurs termes pour nommer une grammaire algébrique, c'est que le terme anglais « context-free » est malcommode à traduire. Tous les termes donnés plus haut sont employés et équivalents.","accessed":{"date-parts":[["2024",3,31]]},"citation-key":"GrammaireNonContextuelle2023","container-title":"Wikipédia","issued":{"date-parts":[["2023",12,11]]},"language":"fr","license":"Creative Commons Attribution-ShareAlike License","note":"Page Version ID: 210452959","source":"Wikipedia","title":"Grammaire non contextuelle","type":"entry-encyclopedia","URL":"https://fr.wikipedia.org/w/index.php?title=Grammaire_non_contextuelle&oldid=210452959"},
|
||
{"id":"HierarchieChomsky2023","abstract":"En informatique théorique, en théorie des langages, et en calculabilité, la hiérarchie de Chomsky (parfois appelée hiérarchie de Chomsky-Schützenberger) est une classification des grammaires formelles (et par extension, des langages formels respectifs engendrés par les grammaires), esquissée par Noam Chomsky en 1956, et décrite de façon formelle en 1959.","accessed":{"date-parts":[["2024",3,31]]},"citation-key":"HierarchieChomsky2023","container-title":"Wikipédia","issued":{"date-parts":[["2023",12,7]]},"language":"fr","license":"Creative Commons Attribution-ShareAlike License","note":"Page Version ID: 210331079","source":"Wikipedia","title":"Hiérarchie de Chomsky","type":"entry-encyclopedia","URL":"https://fr.wikipedia.org/w/index.php?title=Hi%C3%A9rarchie_de_Chomsky&oldid=210331079"},
|
||
{"id":"hofmannWhatPureFunctional2010","abstract":"Given an ML function f : (int->int)->int how can we rigorously specify that f is pure, i.e., produces no side-effects other than those arising from calling its functional argument? We show that existing methods based on preservation of invariants and relational parametricity are insufficient for this purpose and thus define a new notion that captures purity in the sense that for any functional F that is pure in this sense there exists a corresponding question-answer strategy. This research is motivated by an attempt to prove algorithms correct that take such supposedly pure functionals as input and apply them to stateful arguments in order to inspect intensional aspects of their behaviour.","author":[{"family":"Hofmann","given":"Martin"},{"family":"Karbyshev","given":"Aleksandr"},{"family":"Seidl","given":"Helmut"}],"citation-key":"hofmannWhatPureFunctional2010","container-title":"Automata, Languages and Programming","DOI":"10.1007/978-3-642-14162-1_17","editor":[{"family":"Abramsky","given":"Samson"},{"family":"Gavoille","given":"Cyril"},{"family":"Kirchner","given":"Claude"},{"family":"Meyer auf der Heide","given":"Friedhelm"},{"family":"Spirakis","given":"Paul G."}],"event-place":"Berlin, Heidelberg","ISBN":"978-3-642-14162-1","issued":{"date-parts":[["2010"]]},"language":"en","page":"199-210","publisher":"Springer","publisher-place":"Berlin, Heidelberg","source":"Springer Link","title":"What Is a Pure Functional?","type":"paper-conference"},
|
||
{"id":"hughesWhyFunctionalProgramming1989","abstract":"As software becomes more and more complex, it is more and more important to structure it well. Well-structured software is easy to write, easy to debug, and provides a collection of modules that can be re-used to reduce future programming costs. Conventional languages place conceptual limits on the way problems can be modularised. Functional languages push those limits back. In this paper we show that two features of functional languages in particular, higher-order functions and lazy evaluation, can contribute greatly to modularity. As examples, we manipulate lists and trees, program several numerical algorithms, and implement the alpha-beta heuristics (an Artificial Intelligence algorithm used in game-playing programs). Since modularity is the key to successful programming, functional languages are vitally important to the real world.","accessed":{"date-parts":[["2024",3,30]]},"author":[{"family":"Hughes","given":"J."}],"citation-key":"hughesWhyFunctionalProgramming1989","container-title":"The Computer Journal","container-title-short":"The Computer Journal","DOI":"10.1093/comjnl/32.2.98","ISSN":"0010-4620","issue":"2","issued":{"date-parts":[["1989",1,1]]},"page":"98-107","source":"Silverchair","title":"Why Functional Programming Matters","type":"article-journal","URL":"https://doi.org/10.1093/comjnl/32.2.98","volume":"32"},
|
||
{"id":"iversonNotationToolThought1980","accessed":{"date-parts":[["2024",2,20]]},"author":[{"family":"Iverson","given":"Kenneth E."}],"citation-key":"iversonNotationToolThought1980","container-title":"Communications of the ACM","container-title-short":"Commun. ACM","DOI":"10.1145/358896.358899","ISSN":"0001-0782, 1557-7317","issue":"8","issued":{"date-parts":[["1980",8]]},"language":"en","page":"444-465","source":"DOI.org (Crossref)","title":"Notation as a tool of thought","type":"article-journal","URL":"https://dl.acm.org/doi/10.1145/358896.358899","volume":"23"},
|
||
{"id":"jenkisWhatFunctionalProgramming2015","abstract":"The personal blog of Kris Jenkins, geek.","accessed":{"date-parts":[["2024",3,29]]},"author":[{"family":"Jenkis","given":"Kris"}],"citation-key":"jenkisWhatFunctionalProgramming2015","container-title":"Kris Jenkins' Blog","issued":{"date-parts":[["2015",12,29]]},"language":"en","title":"What Is Functional Programming?","type":"webpage","URL":"http://blog.jenkster.com/2015/12/what-is-functional-programming.html#fnref-1"},
|
||
{"id":"LogiqueCombinatoire2023","abstract":"En logique mathématique, la logique combinatoire est une théorie logique introduite par Moses Schönfinkel en 1920 lors d'une conférence[Laquelle ?] et développée dès 1929 par Haskell Brooks Curry pour supprimer le besoin de variables en mathématiques, pour formaliser rigoureusement la notion de fonction et pour minimiser le nombre d'opérateurs nécessaires pour définir le calcul des prédicats à la suite de Henry M. Sheffer. Plus récemment, elle a été utilisée en informatique comme modèle théorique de calcul et comme base pour la conception de langages de programmation fonctionnels.\nLe concept de base de la logique combinatoire est celui de combinateur qui est une fonction d'ordre supérieur ; elle utilise uniquement l'application de fonctions et éventuellement d'autres combinateurs pour définir de nouvelles fonctions d'ordre supérieur. Chaque combinateur simplement typable est une démonstration à la Hilbert en logique intuitionniste et vice-versa . On appelle ceci la correspondance de Curry-Howard","accessed":{"date-parts":[["2024",4,1]]},"citation-key":"LogiqueCombinatoire2023","container-title":"Wikipédia","issued":{"date-parts":[["2023",6,5]]},"language":"fr","license":"Creative Commons Attribution-ShareAlike License","note":"Page Version ID: 204935023","source":"Wikipedia","title":"Logique combinatoire","type":"entry-encyclopedia","URL":"https://fr.wikipedia.org/w/index.php?title=Logique_combinatoire&oldid=204935023"},
|
||
{"id":"michaelsonProgrammingParadigmsTuring2020","abstract":"The notion of programming paradigms, with associated programming languages and methodologies, is a well established tenet of Computer Science pedagogy, enshrined in international curricula. However, this notion sits ill with Kuhn's classic conceptualisation of a scientific paradigm as a dominant world view, which supersedes its predecessors through superior explanatory power. Furthermore, it is not at all clear how programming paradigms are to be characterised and differentiated. Indeed, on closer inspection, apparently disparate programming paradigms are very strongly connected. Rather, they should be viewed as different traditions of a unitary Computer Science paradigm of Turing complete computation complemented by Computational Thinking.","accessed":{"date-parts":[["2024",2,26]]},"author":[{"family":"Michaelson","given":"Greg"}],"citation-key":"michaelsonProgrammingParadigmsTuring2020","container-title":"The Art, Science, and Engineering of Programming","container-title-short":"Programming","DOI":"10.22152/programming-journal.org/2020/4/4","ISSN":"2473-7321","issue":"3","issued":{"date-parts":[["2020",2,14]]},"page":"4","source":"arXiv.org","title":"Programming Paradigms, Turing Completeness and Computational Thinking","type":"article-journal","URL":"http://arxiv.org/abs/2002.06178","volume":"4"},
|
||
{"id":"minskyFormContentComputer1970","accessed":{"date-parts":[["2024",3,30]]},"author":[{"family":"Minsky","given":"Marvin"}],"citation-key":"minskyFormContentComputer1970","container-title":"Journal of the ACM","container-title-short":"J. ACM","DOI":"10.1145/321574.321575","ISSN":"0004-5411","issue":"2","issued":{"date-parts":[["1970",4,1]]},"page":"197–215","source":"ACM Digital Library","title":"Form and Content in Computer Science (1970 ACM turing lecture)","type":"article-journal","URL":"https://dl.acm.org/doi/10.1145/321574.321575","volume":"17"},
|
||
{"id":"okasakiPurelyFunctionalData1999","abstract":"Most books on data structures assume an imperative language such as C or C++. However, data structures for these languages do not always translate well to functional languages such as Standard ML, Haskell, or Scheme. This book describes data structures from the point of view of functional languages, with examples, and presents design techniques that allow programmers to develop their own functional data structures. The author includes both classical data structures, such as red-black trees and binomial queues, and a host of new data structures developed exclusively for functional languages. All source code is given in Standard ML and Haskell, and most of the programs are easily adaptable to other functional languages. This handy reference for professional programmers working with functional languages can also be used as a tutorial or for self-study.","author":[{"family":"Okasaki","given":"Chris"}],"citation-key":"okasakiPurelyFunctionalData1999","ISBN":"978-0-521-66350-2","issued":{"date-parts":[["1999",6,13]]},"language":"en","number-of-pages":"236","publisher":"Cambridge University Press","source":"Google Books","title":"Purely Functional Data Structures","type":"book"},
|
||
{"id":"ParadigmeProgrammation2023","abstract":"Le paradigme de programmation est la façon (parmi d'autres) d'approcher la programmation informatique et de formuler les solutions aux problèmes et leur formalisation dans un langage de programmation approprié. Ce n'est pas de la méthodologie contenant une méthode ; cette dernière organise le traitement des problèmes reconnus dans l'écosystème concerné pour aboutir à la solution conceptuelle et programme exécutable.","accessed":{"date-parts":[["2024",2,24]]},"citation-key":"ParadigmeProgrammation2023","container-title":"Wikipédia","issued":{"date-parts":[["2023",7,11]]},"language":"fr","license":"Creative Commons Attribution-ShareAlike License","note":"Page Version ID: 205915300","source":"Wikipedia","title":"Paradigme (programmation)","type":"entry-encyclopedia","URL":"https://fr.wikipedia.org/w/index.php?title=Paradigme_(programmation)&oldid=205915300"},
|
||
{"id":"royProgrammingParadigmsDummies","author":[{"family":"Roy","given":"Peter Van"}],"citation-key":"royProgrammingParadigmsDummies","language":"en","source":"Zotero","title":"Programming Paradigms for Dummies: What Every Programmer Should Know","type":"article-journal"},
|
||
{"id":"StructuredProgrammingWikipedia","accessed":{"date-parts":[["2024",4,1]]},"citation-key":"StructuredProgrammingWikipedia","title":"Structured programming - Wikipedia","type":"webpage","URL":"https://en.wikipedia.org/wiki/Structured_programming?oldformat=true"},
|
||
{"id":"StructuresDonneesEnregistrements","accessed":{"date-parts":[["2024",3,28]]},"citation-key":"StructuresDonneesEnregistrements","language":"fr","title":"Structures de données/Enregistrements — Wikilivres","type":"webpage","URL":"https://fr.wikibooks.org/wiki/Structures_de_donn%C3%A9es/Enregistrements"},
|
||
{"id":"TaxonomiePrincipauxParadigmes","accessed":{"date-parts":[["2024",4,1]]},"citation-key":"TaxonomiePrincipauxParadigmes","title":"Une taxonomie des principaux paradigmes de programmation","type":"webpage","URL":"https://www.info.ucl.ac.be/~pvr/paradigmes.html"},
|
||
{"id":"toalProgrammingParadigms","accessed":{"date-parts":[["2024",3,29]]},"author":[{"family":"Toal","given":"Ray"}],"citation-key":"toalProgrammingParadigms","title":"Programming Paradigms","type":"webpage","URL":"https://cs.lmu.edu/~ray/notes/paradigms/"},
|
||
{"id":"WikiwandTuringcomplet2017","abstract":"En informatique et en logique, un système formel est dit complet au sens de Turing ou Turing-complet s’il possède un pouvoir expressif au moins équivalent à celui des machines de Turing. Dans un tel système, il est donc possible de programmer n'importe quelle machine de Turing.","accessed":{"date-parts":[["2024",4,1]]},"citation-key":"WikiwandTuringcomplet2017","container-title":"Wikiwand","issued":{"date-parts":[["2017",2,2]]},"title":"Wikiwand - Turing-complet","type":"webpage","URL":"https://www.wikiwand.com/fr/Turing-complet"}
|
||
]
|