The input is the characters from a C Program. The system will tell whether it is a syntactically correct program. A syntactically correct program should have a valid number of braces and parentheses. Thus, the network should remember how many open parentheses and braces there are to check, and whether we have closed them all. The network has to store such information in hidden states like a counter. However, because of vanishing gradients, it will fail to preserve such information in a long program.
Considérons une entrée constituée des caractères d’un programme en langage C. Le système doit indiquer s’il s’agit d’un programme syntaxiquement correct. Un programme syntaxiquement correct doit avoir un nombre valide d’accolades et de parenthèses. Ainsi, le réseau doit se souvenir du nombre de parenthèses et d’accolades ouvertes à vérifier et si elles sont bien toutes fermées. Le réseau doit stocker ces informations dans des états cachés comme un compteur. Cependant, en raison de la disparition des gradients, il ne parviendra pas à conserver ces informations dans un long programme.