TD1 : Ecrivez une expression reguliere en JavaScript pour valider une date en format ISO en incluant le fuseau horraire
TD2 : Ecrivez une grammaire en PEG.js pour valider si un numero de carte de credit est vadid ou non
TD3 : Concevez la grammaire d'un langage de programmation a l'aide de PEG.js. Le langage peut-etre imperative ou fonctionnel selon votre choix. Il faut traiter les regles pour instruction imbriquee de type if-then-else
TD4 : Concevez un langage de programmation a l'aide de ANTLR. Le langage doit comprendre au moins deux types d'instruction: initialisation des varibles et le traitement de conditions logiques. Le type de langage est a votre choix.
TD5 : Concevez une machine de Turing pour faire des calculs elementaires en binnaire (addition, substraction, multiplication, division, puisssance 2). Vous pouvez outiliser le site de Khan Academy ou Morphett ou votre propre implementation.
TD6 : Concevez une machine de Turing capable de lire les specifications d'une autre machine de Turing comme programme d'entree et ecrire sur plusieurs bandes le programme de celle-ci. Les donnes d'entree se trouvent sur une bande separee. Exemplifiez par l'implementation d'une machine capable de faire des additions en base 16, les regles algebriques sont specifiees en tant que machine de Turing. Les donnes d'entree pour le calcul sont "B0 + B5 ="
Liens:
http://www.antlr.org/download.html
http://zaach.github.io/jison/docs/ --> http://zaa.ch/jison/demos/calc/
http://goldparser.org/index.htm
http://www.hwaci.com/sw/lemon/
http://www2.cs.tum.edu/projects/cup/index.php
http://hackingoff.com/compilers/ll-1-parser-generator; http://hackingoff.com/compilers/lr-0-parser-generator; http://hackingoff.com/compilers/slr-1-parser-generator
http://dinosaur.compilertools.net/
http://catalog.compilertools.net/lexparse.html; http://gentle.compilertools.net/;
http://java-source.net/open-source/parser-generators
http://jscc.phorward-software.com/
http://irony.codeplex.com/ - .NET approach. Directly in C#
http://syntax.gforge.inria.fr/
https://pypi.python.org/pypi/grako/
http://labraj.feri.um.si/lisa/
http://accent.compilertools.net/
http://www.semanticdesigns.com/Products/DMS/DMSToolkit.html
https://www.khanacademy.org/computer-programming/game-of-life/879123336
Vous pouvez trouver plusieurs alogorithmes implementes en plusieurs langages de programmation pour faire la compraison:
http://rosettacode.org/wiki/Rosetta_Code -> http://rosettacode.org/wiki/Category:Programming_Tasks -> http://rosettacode.org/wiki/Priority_queue
ou per langage de programmation (e.g. Python)
http://rosettacode.org/wiki/Category:Programming_Languages -> http://rosettacode.org/wiki/Category:Python
Voir aussi les langages exotiques ou academiques: https://esolangs.org/wiki/Language_list et un bon example est https://github.com/lhartikk/ArnoldC
http://hackingoff.com/compilers/ll-1-parser-generator
http://jointjs.com/demos/javascript-ast
http://www.bayfronttechnologies.com/mc_tutorial.html
http://gnosis.cx/TPiP/ [Python]
https://en.wikipedia.org/wiki/Compilers%3A_Principles,_Techniques,_and_Tools (Jedi Masters only)
https://en.wikipedia.org/wiki/List_of_compilers
https://en.wikipedia.org/wiki/Comparison_of_assemblers
https://en.wikipedia.org/wiki/Comparison_of_parser_generators
https://en.wikipedia.org/wiki/Parsing_expression_grammar
https://en.wikipedia.org/wiki/Regular_expression
https://en.wikipedia.org/wiki/Comparison_of_regular_expression_engines
https://en.wikipedia.org/wiki/Lexical_analysis#List_of_lexer_generators
https://en.wikipedia.org/wiki/Ragel
https://en.wikipedia.org/wiki/Finite-state_machine
https://en.wikipedia.org/wiki/Compiler-compiler
https://en.wikipedia.org/wiki/Metacompiler
https://en.wikipedia.org/wiki/LR_parser
https://en.wikipedia.org/wiki/LALR_parser
https://en.wikipedia.org/wiki/LL_parser
https://en.wikipedia.org/wiki/Infix_notation
https://en.wikipedia.org/wiki/Polish_notation
https://en.wikipedia.org/wiki/Reverse_Polish_notation
https://en.wikipedia.org/wiki/Binary_expression_tree
http://www.cs.man.ac.uk/~pjj/cs212/fix.html
http://morphett.info/turing/turing.html
https://www.khanacademy.org/computer-programming/turing-machine/938201372
http://www.google.com/doodles/alan-turings-100th-birthday
https://turingmachinesimulator.com/
http://www.turing.org.uk/book/update/tmjavar.html
http://www.rendell-attic.org/gol/TMapplet/
http://www.mijagourlay.com/turingmachine
https://en.wikipedia.org/wiki/Busy_beaver
http://demonstrations.wolfram.com/BusyBeaver/
https://en.wikipedia.org/wiki/Ackermann_function
https://en.wikipedia.org/wiki/Sudan_function
https://en.wikipedia.org/wiki/Turmite
https://en.wikipedia.org/wiki/Langton%27s_ant
https://en.wikipedia.org/wiki/Paterson%27s_worms
https://en.wikipedia.org/wiki/Computability_theory
https://en.wikipedia.org/wiki/Transcomputational_problem
https://scratch.mit.edu/projects/editor/?tip_bar=home
http://ariya.ofilabs.com/2011/08/math-evaluator-in-javascript-part-2.html
http://tapdigit.googlecode.com/git/demo.htm
http://fatiherikli.github.io/brainfuck-visualizer/
http://fullvolume.co.uk/static/lolcode/
http://lolcode.codeschool.com/levels/1/challenges/1
http://strlen.com/false-language
http://esolangs.org/wiki/Befunge
http://www.quirkster.com/iano/js/befunge.html
http://web.archive.org/web/20150623025348/http://compsoc.dur.ac.uk/whitespace/
http://www.dangermouse.net/esoteric/ook.html
https://en.wikipedia.org/wiki/Fast-growing_hierarchy
https://www.gnu.org/software/bison/
http://www.mactech.com/articles/mactech/Vol.16/16.07/UsingFlexandBison/index.html
https://github.com/sirthias/parboiled/wiki
https://wiki.haskell.org/Parsec
http://www.colm.net/open-source/ragel/
https://en.wikipedia.org/wiki/Spirit_Parser_Framework
https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form
http://syntax.gforge.inria.fr/
http://invisible-island.net/byacc/byacc.html
http://nlp.stanford.edu/software/lex-parser.shtml
http://blogs.perl.org/users/jeffrey_kegler/2014/09/parsing-a-timeline.html
https://www.rit.edu/news/story.php?id=49994
http://obsidianbutterfly.com/Articles/celtic1.html
http://www.calligraphy-skills.com/how-to-draw-celtic-knots.html
http://www.discmath.ulg.ac.be/cours/main_autom.pdf
http://pageperso.lif.univ-mrs.fr/~frederic.olive/Materiel/langagesL2/cours.pdf
http://www.lsv.ens-cachan.fr/~gastin/Langages/
http://nprcovic.free.fr/transparents-IN401.pdf
http://gaati.org/bisson/tea/lfcc.pdf
http://www.lix.polytechnique.fr/~jouannaud/articles/cours-info-theo.pdf
http://www.liafa.jussieu.fr/~asarin/ENS/lf.html 👍
http://liris.cnrs.fr/~sbrandel/wiki/lib/exe/fetch.php?media=ens:lif15:lif15-cours.pdf
http://liris.cnrs.fr/~sbrandel/wiki/lib/exe/fetch.php?media=ens:lif15:lif15-support-de-cours.pdf
http://deptinfo.unice.fr/~julia/AL/01al.pdf
http://damien.nouvels.net/fr/enseignement (voir aussi Python)
http://planiart.usherbrooke.ca/kabanza/cours/ift313/
https://enjalbert.users.greyc.fr/cours/Langages/TD/TD1_Corrige%CC%81.pdf
http://www2.lifl.fr/~mailliet/Compil/TD/Exo2.pdf
http://pageperso.lif.univ-mrs.fr/~frederic.olive/Materiel/langagesL2/td.pdf
MIT ->
http://ocw.mit.edu/courses/mathematics/18-404j-theory-of-computation-fall-2006/index.htm
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-045j-automata-computability-and-complexity-spring-2011/
http://cs.fit.edu/~dmitra/FormaLang/
Stanford ->
https://www.coursera.org/course/automata
https://www.youtube.com/watch?v=xHVmwx0fCbI
https://www.youtube.com/watch?v=GutFwGmajHA
https://www.youtube.com/watch?v=GwsU2LPs85U
Le canal Computerphile https://www.youtube.com/user/Computerphile , en Anglais.