FR 2931567 A1 20091127 FR 0952733 A 20090427 MÉTHODE DE RECHERCHE DE CLASSE ET DE FONCTION BASÉE SUR UNE CARTE .NET ET CARTE .NET CORRESPONDANTE Domaine de l'invention [0001] La présente invention se rattache au domaine de la sécurité des informations et concerne plus particulièrement une méthode de recherche d'une classe et d'une fonction basée sur une carte .NET ainsi qu'une carte .NET correspondante. 10 Art antérieur [0002] Nouvelle génération de plate-forme technique de Microsoft, .NET est une nouvelle plate-forme de développement en langage croisé basée sur l'Internet, qui épouse la tendance de l'industrie logicielle en termes d'informatique distribuée, de développement orienté composant ou d'application orientée entreprise, de logiciel service et de 15 développement axé sur le web. Bien que .NET ne soit pas un langage de développement, la plate-forme de développement .NET supporte de multiples langages de développement tels que C#, C++, Visual Basic et Jscript. [0003] De mêmes dimensions qu'une carte de visite classique, une carte à puce est une carte en plastique contenant une puce en silicium d'un diamètre d'environ 1 cm et assurant 20 des fonctions telles que le stockage d'informations ou des calculs complexes. Les cartes à puces sont largement utilisées comme cartes téléphoniques, cartes bancaires, cartes d'identité/identification et dans de nombreuses applications telles que les téléphones portables et la télévision prépayée. La carte à puce est considérée comme étant le plus petit ordinateur au monde du fait qu'elle intègre, sur sa puce, un microprocesseur, une unité de 25 stockage et une unité d'entrée/sortie. De plus, avec un mécanisme de contrôle de sécurité très puissant, le programme de contrôle de sécurité est stocké dans la mémoire morte (ROM), qui offre une grande garantie de limitation des copies et une protection par mot de passe en écriture et en lecture. Comparée aux cartes magnétiques générales, la carte à puce présente de nombreux avantages tels qu'une capacité de stockage importante et des 30 fonctions améliorées grâce à l'utilisation de micro-processus. [0004] La carte .NET est une carte à microprocesseur qui inclut une machine virtuelle .NET où les programmes .NET peuvent être exécutés. Une machine virtuelle peut être considérée comme une émulation logicielle d'une machine avec des composants matériels tels qu'un processeur, une mémoire, un registre, permettant d'émuler diverses5 instructions. Le logiciel fonctionnant sur la machine n'impose aucune condition spécifique relativement à l'environnement d'exécution ; la machine virtuelle est par conséquent transparente pour les programmes qui y sont exécutés. Par exemple, une machine virtuelle x86 émule un environnement d'exécution d'instructions et programmes x86 et une machine virtuelle c5l émule un environnement d'exécution d'instructions et programmes c51. La carte .NET appelle les classes et fonctions dans une bibliothèque de classes standard au moment de l'exécution des programmes d'application. [0005] Une méthode classique de recherche de classe consiste tout d'abord à obtenir le nom de classe et l'espace de nommage d'une classe à chercher, puis à rechercher la classe dans une bibliothèque de classes standard, une par une, jusqu'à trouver la classe correspondant au nom de classe et à l'espace de nommage. Une méthode classique de recherche de fonction consiste tout d'abord à trouver une classe à laquelle appartient la fonction, puis à obtenir le nom, le résultat fourni et le type de paramètre de la fonction ; puis à rechercher, une par une, la fonction correspondant au nom, au nombre de paramètres et au type de paramètre dans la bibliothèque de classes standard. [0006] La méthode classique pour trouver une fonction ne satisfait pas aux exigences des cartes .NET du fait de la mémoire limitée et de la faible vitesse de fonctionnement des cartes .NET. Résumé de l'invention [0007] Afin d'augmenter la vitesse de recherche de classe ou de fonction lors de l'exécution d'un programme sur une carte .NET, la présente invention fournit une méthode de recherche d'une classe et d'une fonction basée sur une carte .NET ainsi qu'une carte .NET correspondante. La solution comprend : [0008] Une méthode de recherche d'une classe et d'une fonction basée sur une carte .NET, qui est appliquée pendant l'exécution d'un assemblage dans la carte .NET, comprenant les étapes consistant à : [0009] construire une première chaîne de caractères d'après les informations d'une classe en cours d'exécution par la carte .NET, ou d'après les informations d'une fonction en cours d'exécution par la carte .NET et d'une classe à laquelle cette fonction appartient ; [0010] calculer une première valeur d'index à partir de la première chaîne de caractères ; [0011] rechercher une première valeur de localisateur correspondant à la première valeur d'index dans une table d'index prémémorisée dans la carte .NET, les valeurs d'index de la table d'index étant générées de la même manière que la première valeur d'index ; [0012] trouver la classe ou la fonction dans une bibliothèque d'exécution de la carte .NET suivant la première valeur de localisateur. [0013] L'étape de construction de la première chaîne de caractères d'après les informations de la classe en cours d'exécution par la carte .NET comprend l'étape consistant à : [0014] former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe en cours d'exécution par la carte .NET. [0015] L'étape de construction de la première chaîne de caractères d'après les informations de la fonction en cours d'exécution par la carte .NET et de la classe à laquelle appartient cette fonction comprend l'étape consistant à : [0016] former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, un nom de fonction de la fonction et un nom de classe et un espace de nommage de chaque paramètre de la fonction. [0017] La méthode comprend également les étapes consistant à : [0018] si la première valeur d'index n'est pas incluse dans la table d'index, construire une deuxième chaîne de caractères d'après les informations d'une superclasse d'une classe courante et les informations de la fonction, en prenant comme classe courante la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, et à calculer une deuxième valeur d'index à partir de la deuxième chaîne de caractères ; [0019] déterminer si la deuxième valeur d'index est incluse dans la table d'index ; [0020] si c'est le cas, rechercher une deuxième valeur de localisateur correspondant à la deuxième valeur d'index dans la table d'index et trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la deuxième valeur de localisateur ; [0021] dans le cas contraire, effectuer un processus qui est identique au processus d'obtention de la deuxième valeur d'index en prenant la superclasse comme classe courante jusqu'à trouver une troisième valeur d'index qui est incluse dans la table d'index, rechercher une troisième valeur de localisateur correspondant à la troisième valeur d'index dans la table d'index, et trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la troisième valeur de localisateur. [0022] La table d'index est stockée dans l'assemblage se trouvant dans la carte .NET. [0023] Il est fourni une carte .NET qui inclut : [0024] un module de stockage apte à stocker un assemblage et une table d'index ; [0025] un module de construction apte à construire une première chaîne de caractères d'après les informations d'une classe en cours d'exécution ou d'après les informations d'une fonction en cours d'exécution et d'une classe à laquelle cette fonction appartient, lorsque la carte .NET exécute l'assemblage stocké dans le module de stockage ; [0026] un module de calcul apte à calculer une première valeur d'index à partir de la première chaîne de caractères générée par le module de construction ; [0027] un module de recherche apte à rechercher une première valeur de localisateur correspondant à la première valeur d'index obtenue par le module de calcul dans la table d'index stockée dans le module de stockage, les valeurs d'index de la table d'index étant générées de la même manière que la première valeur d'index ; et apte à trouver une classe ou une fonction dans une bibliothèque d'exécution de la carte .NET suivant la première valeur de localisateur. [0028] Le module de construction comprend plus spécifiquement : [0029] une première unité de construction apte à former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe en cours d'exécution par la carte .NET lorsque la carte .NET exécute l'assemblage stocké dans le module de stockage. [0030] Le module de construction comprend : [0031] une deuxième unité de construction apte à former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, un nom de fonction de la fonction, un nom de classe et un espace de nommage de chaque paramètre de la fonction, lorsque la carte .NET exécute l'assemblage stocké dans le module de stockage. [0032] Le module de construction est en outre apte, si la première valeur d'index obtenue par le module de calcul n'est pas incluse dans la table d'index, en utilisant comme classe courante la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, à construire une deuxième chaîne de caractères d'après les informations d'une superclasse de la classe courante et les informations de la fonction ; [0033] le module de calcul est en outre apte à calculer une deuxième valeur d'index à 30 partir de la deuxième chaîne de caractères générée par le module de construction ; [0034] en conséquence, la carte .NET comprend en plus : [0035] un module de détermination apte à déterminer si la deuxième valeur d'index obtenue par le module de calcul est incluse dans la table d'index ; et [0036] le module de recherche est en outre apte, si la deuxième valeur d'index obtenue par le module de calcul est incluse dans la table d'index, à rechercher une deuxième valeur de localisateur correspondant à la deuxième valeur d'index contenue dans la table d'index, trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la deuxième valeur de localisateur ; et [0037] si la deuxième valeur d'index obtenue par le module de calcul n'est pas incluse dans la table d'index, à effectuer un processus qui est identique au processus d'obtention de la deuxième valeur d'index en prenant la superclasse comme classe courante jusqu'à trouver une troisième valeur d'index qui est incluse dans la table d'index, à rechercher une troisième valeur de localisateur correspondant à la troisième valeur d'index dans la table d'index, et à trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la troisième valeur de localisateur. [0038] La carte .NET de la revendication 6, dans laquelle la table d'index est stockée dans l'assemblage se trouvant dans la carte .NET. [0039] Conformément à la présente invention, une classe ou une fonction à trouver est localisée en construisant une chaîne de caractères et à partir d'une table d'index prémémorisée, ce qui augmente la vitesse de recherche de la classe ou de la fonction à appeler lorsqu'un programme est exécuté dans une carte .NET. La table d'index occupant une faible partie de la mémoire de la carte .NET, la méthode est pratique et facile à mettre en oeuvre. En outre, pour les fonctions dérivées et les fonctions de redéfinition, une valeur d'index peut être trouvée dans la table d'index d'après les informations d'une superclasse, ce qui permet de réussir la localisation. Brève description des dessins [0040] La figure 1 est un organigramme illustrant une méthode de recherche d'une classe et d'une fonction basée sur une carte .NET selon un premier mode d'exécution de la présente invention ; [0041] La figure 2 est un organigramme illustrant une méthode de recherche d'une classe et d'une fonction basée sur une carte .NET selon un deuxième mode d'exécution de l'invention ; [0042] La figure 3 est un schéma structurel illustrant une carte .NET selon un troisième mode d'exécution de l'invention. Description détaillée de l'invention [0043] Les objets, solutions techniques et avantages de l'invention apparaîtront clairement à la lecture de la description ci-après de modes d'exécution, qui se réfère aux figures des dessins annexés. [0044] MODE D'EXÉCUTION 1 [0045] Si l'on se réfère à la figure 1, le mode d'exécution de la présente invention fournit une méthode de recherche d'une classe et d'une fonction basée sur une carte .NET, qui est mise en oeuvre lors de l'exécution d'un assemblage dans la carte .NET. Selon le mode d'exécution illustré, la méthode de recherche d'une classe comprend les étapes suivantes : [0046] Étape 101: La carte .NET est raccordée à un ordinateur via un lecteur de carte ou par accès distant. La carte .NET exécute l'assemblage enregistré dans le module de stockage interne de la carte .NET. Une table d'index, qui est préenregistrée dans la carte .NET, inclut des valeurs d'index et des valeurs de localisateur correspondantes pour rechercher une classe ou une fonction dans une bibliothèque de classes. Par exemple, une valeur d'index d'une classe Classl dans la table d'index est 1, une valeur de localisateur correspondant à cette valeur d'index est Tokenl = Oxl 1. La valeur de localisateur Oxl 1 correspond au contenu d'une entité de la classe Classl dans la bibliothèque de classes de la carte .NET. [0047] Étape 102 : Une première chaîne de caractères est construite d'après les informations d'une classe en cours d'exécution par la carte .NET. [0048] Plus spécifiquement, la première chaîne de caractères peut être formée par un nom de classe et un espace de nommage de la classe en cours d'exécution par la carte .NET. Par exemple, la classe en cours d'exécution est la Classl, dont l'espace de nommage est NameSpacel, alors la première chaîne de caractères construite peut être NameSpacel .Classl [0049] Étape 103 : Une première valeur d'index est calculée à partir de la première chaîne de caractères construite. [0050] Plus spécifiquement, la première chaîne de caractères ci-dessus est hachée à l'aide d'un algorithme de hachage pour obtenir une empreinte numérique de la classe en cours d'exécution. Avec l'empreinte numérique, on effectue une opération modulo sur le nombre total de classes et de fonctions correspondant aux valeurs d'index dans la table d'index, de manière à obtenir une première valeur d'index. 6 [0051] Étape 104 : Suivant la première valeur d'index obtenue, on recherche, dans la table d'index, une première valeur de localisateur correspondant à la première valeur d'index. [0052] Dans le présent mode d'exécution, les valeurs d'index dans la carte .NET sont générées de la même manière que la première valeur d'index. D'une manière générale, la table d'index inclut des valeurs d'index correspondant à toutes les classes et fonctions appelées par l'assemblage de la carte .NET. De plus, la table d'index peut être stockée dans l'assemblage dans la carte .NET. [0053] Étape 105 : La classe en cours d'exécution est trouvée dans une bibliothèque d'exécution de la carte .NET suivant la première valeur de localisateur obtenue, et l'entité de la classe est appelée. [0054] La bibliothèque d'exécution de la carte .NET, qui peut inclure tout ou partie du contenu d'une bibliothèque de classes standard, inclut toutes les classes et fonctions liées à l'assemblage dans la carte .NET. Généralement, la bibliothèque d'exécution et la carte .NET sont fournies ensemble à l'utilisateur. [0055] Dans le mode d'exécution, la classe peut être localisée avec succès en une seule opération de recherche. [0056] Dans le mode d'exécution, la classe à trouver est localisée en construisant une chaîne de caractères et d'après une table d'index prémémorisée, ce qui améliore la vitesse de recherche de la classe à appeler quand un programme est exécuté dans la carte .NET. La table d'index occupant une faible partie de la mémoire de la carte .NET, le méthode est pratique et facile à mettre en oeuvre. [0057] MODE D'EXÉCUTION 2 [0058] Si l'on se réfère à la figure 2, le mode d'exécution de la présente invention fournit une méthode de recherche d'une classe et d'une fonction basée sur une carte .NET, qui est appliquée pendant l'exécution d'un assemblage dans la carte .NET. Le présent mode d'exécution illustre une méthode de recherche de fonction, incluant : [0059] Étape 201 : La carte .NET est raccordée à un ordinateur via un lecteur de carte ou par accès distant. La carte .NET exécute l'assemblage enregistré dans le module de stockage interne de la carte .NET. Une table d'index, qui est prémémorisée dans la carte .NET, inclut des valeurs d'index et des valeurs de localisateur correspondantes pour rechercher une classe ou une fonction dans une bibliothèque de classes. [0060] Étape 202 : Une première chaîne de caractères est construite d'après les informations d'une classe à laquelle appartient une fonction en cours d'exécution par la carte .NET. [0061] Plus spécifiquement, la première chaîne de caractères peut être formée par un nom de classe et un espace de nommage de la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, un nom de fonction de la fonction, et un nom de classe et un espace de nommage de chaque paramètre de la fonction. Par exemple, une fonction en cours d'exécution est MyFuncl, une classe à laquelle appartient la fonction est Classl, un espace de nommage de la classe est NameSpacel. La fonction contient deux paramètres : NameSpace2.Class3 et NameSpace3.Class5. Une première chaîne de caractères peut donc être construite comme suit : [0062] NameSpace 1 .0 lass 1 (MyFuncl) NameSpace2.Class3, NameSpace3.Class5 [0063] Des symboles restrictifs peuvent être ajoutés à la première chaîne de caractères pour séparer chaque partie. Par exemple, des parenthèses peuvent être utilisées pour le nom de la fonction, des virgules pour séparer les paramètres, etc. On peut ainsi éviter toute confusion entre la première chaîne de caractères obtenue et les autres chaînes de caractères. [0064] Étape 203 : Une première valeur d'index est calculée à partir de la première chaîne de caractères construite. [0065] Plus spécifiquement, la première chaîne de caractères ci-dessus est hachée à l'aide d'un algorithme de hachage pour obtenir une empreinte numérique de la fonction en cours d'exécution. Avec l'empreinte numérique, on effectue une opération modulo sur le nombre total de classes et de fonctions correspondant aux valeurs d'index de la table d'index, de manière à obtenir une première valeur d'index. [0066] Étape 204 : À partir de la première valeur d'index obtenue, on recherche, dans la 25 table d'index, une première valeur de localisateur correspondant à la première valeur d'index. [0067] Dans le présent mode d'exécution, les valeurs d'index dans la carte .NET sont générées de la même manière que la première valeur d'index. Généralement, la table d'index inclut des valeurs d'index correspondant à toutes les classes et fonctions appelées 30 par l'assemblage de la carte .NET. De plus, la table d'index est stockée dans l'assemblage de la carte .NET. [0068] Étape 205 : La fonction en cours d'exécution est trouvée dans une bibliothèque d'exécution de la carte .NET suivant la première valeur de localisateur, et l'entité de la fonction est appelée. [0069] La bibliothèque d'exécution de la carte .NET, qui peut inclure tout ou partie du contenu d'une bibliothèque de classes standard, inclut toutes les classes et fonctions liées à l'assemblage de la carte .NET. Généralement, la bibliothèque d'exécution et la carte .NET sont fournies ensemble à l'utilisateur. [0070] Dans le mode d'exécution, une fonction surchargée, ou une fonction non surchargée ou dérivée peut être localisée avec succès par une seule opération de recherche. Pour une fonction dérivée ou de redéfinition (c'est-à-dire une fonction virtuelle), la première table d'index peut ne pas inclure la première valeur d'index. De plus, la méthode ci-dessus inclut les éléments suivants : [0071] Si la première valeur d'index n'est pas incluse dans la table d'index, on prend comme classe courante une classe de la fonction en cours d'exécution par la carte .NET, une deuxième chaîne de caractères est construite d'après les informations d'une superclasse et d'une fonction de la classe courante, et une deuxième valeur d'index est calculée à partir de la deuxième chaîne de caractères ; on détermine si la deuxième valeur d'index est incluse dans la table d'index ; si c'est le cas, une deuxième valeur de localisateur correspondant à la deuxième valeur d'index est recherchée dans la table d'index, et la classe en cours d'exécution par la carte .NET est trouvée dans la bibliothèque d'exécution de la carte .NET suivant la deuxième valeur de localisateur ; dans le cas contraire, on prend comme classe courante la superclasse et on effectue un processus qui est identique au processus d'obtention de la deuxième valeur d'index jusqu'à trouver une troisième valeur d'index incluse dans la table d'index, puis on recherche, dans la table d'index, une troisième valeur de localisateur correspondant à la troisième valeur d'index et on trouve la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la troisième valeur de localisateur. [0072] Par exemple, il faut trouver une fonction Funcl et une classe à laquelle appartient la fonction est la classe Classl. Si une première valeur d'index correspondant à la classe et la fonction n'est pas trouvée dans la table d'index, une deuxième valeur d'index est obtenue d'après la fonction et Class2, qui est une superclasse de Classl. Si la table d'index n'inclut pas non plus la deuxième valeur d'index, alors une troisième valeur d'index est obtenue d'après la fonction et Class3, qui est une superclasse de Class2. Et ainsi de suite, jusqu'à trouver une valeur d'index qui figure dans la table d'index. Par conséquent, une valeur de localisateur correspondante est trouvée et la fonction peut être trouvée dans une bibliothèque de classes suivant la valeur de localisateur. Io [0073] Dans le mode d'exécution, la fonction à trouver est localisée en construisant une chaîne de caractères et d'après une table d'index prémémorisée, qui améliore la vitesse de recherche de la fonction à appeler quand un programme est exécuté dans la carte .NET. La table d'index occupant une faible partie de la mémoire de la carte .NET, la méthode est pratique et facile à mettre en oeuvre. De plus, pour les fonctions dérivées et les fonctions de redéfinition, une valeur d'index peut être trouvée dans la table d'index au moyen de recherches multiples, permettant ainsi de réussir la localisation. [0074] MODE D'EXÉCUTION 3 [0075] Si l'on se réfère à la figure 3, le mode d'exécution de la présente invention fournit 10 une carte .NET dans laquelle : [0076] Un module de stockage est apte à stocker un assemblage et une table d'index ; [0077] Un module de construction est apte à construire une première chaîne de caractères d'après les informations d'une classe en cours d'exécution ou d'après les informations d'une classe à laquelle appartient une fonction en cours d'exécution et d'après les 15 informations de la fonction, lorsque la carte .NET exécute l'assemblage stocké dans le module de stockage ; [0078] Un module de calcul est apte à calculer une première valeur d'index à partir de la première chaîne de caractères générée par le module de construction ; [0079] Un module de recherche est apte à rechercher, dans la table d'index enregistrée 20 dans le module de stockage, une première valeur de localisateur correspondant à la première valeur d'index obtenue par le module de calcul. Les valeurs d'index de la table d'index sont générées de la même manière que la première valeur d'index. Le module de recherche est également apte à trouver une classe ou une fonction dans une bibliothèque d'exécution de la carte .NET suivant la première valeur de localisateur. 25 [0080] Plus spécifiquement, le module de construction ci-dessus inclut : [0081] Une première unité de construction apte à former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe en cours d'exécution par la carte .NET lorsque la carte .NET exécute l'assemblage enregistré dans le module de stockage. 30 [0082] Ou le module de construction ci-dessus inclut : [0083] une deuxième unité de construction apte à former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, un nom de fonction de la fonction, et un nom de classe et un espace de nommage de chaque paramètre de la fonction. [0084] En outre, le module de calcul de la figure 3 peut inclure : [0085] une unité d'opération de hachage apte à effectuer une opération de hachage sur la première chaîne de caractères générée par le module de construction pour obtenir une empreinte numérique de la classe ou de la fonction en cours d'exécution par la carte .NET. [0086] une unité d'opération modulo apte à effectuer une opération modulo sur le nombre 10 total de classes et fonctions correspondant aux valeurs d'index dans la table d'index avec l'empreinte numérique, pour obtenir la première valeur d'index. [0087] De plus, le module de construction de la figure 3 est également apte, en prenant comme classe courante la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, à construire une deuxième chaîne de caractères d'après les informations 15 d'une superclasse de la classe courante et les informations de la fonction, si la première valeur d'index obtenue par le module de calcul n'est pas incluse dans la table d'index ; le module de calcul est également apte à calculer une deuxième valeur d'index à partir d'une deuxième chaîne de caractères générée par le module de construction. [0088] Par conséquent, la carte .NET inclut également : 20 [0089] un module de détermination apte à déterminer si la deuxième valeur d'index obtenue par le module de calcul est incluse dans la table d'index ; et [0090] si c'est le cas, à rechercher une deuxième valeur de localisateur correspondant à la deuxième valeur d'index dans la table d'index et à trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la deuxième 25 valeur de localisateur ; [0091] dans le cas contraire, en prenant la superclasse comment classe courante, à effectuer un processus qui est identique au processus d'obtention de la deuxième valeur d'index jusqu'à trouver une troisième valeur d'index qui est incluse dans la table d'index, à rechercher une troisième valeur de localisateur correspondant à la troisième valeur d'index 30 dans la table d'index et à trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la troisième valeur de localisateur. [0092] Dans le présent mode d'exécution, la table d'index peut être stockée dans l'assemblage de la carte .NET. [0093] Dans le mode d'exécution, la classe ou la fonction à trouver est localisée en construisant une chaîne de caractères et d'après une table d'index prémémorisée, ce qui augmente la vitesse de recherche de la classe ou fonction quand un programme est exécuté dans la carte .NET. La table d'index occupant une faible partie de la mémoire de la carte .NET, la méthode est pratique et facile à mettre en oeuvre. En outre, pour les fonctions dérivées et les fonctions de redéfinition, une valeur d'index peut être trouvée dans la table d'index d'après les informations d'une superclasse, permettant ainsi de réussir la localisation. [0094] Les modes d'exécution divulgués dans les présentes doivent être considérés à tous points de vue comme étant illustratifs et en aucun cas limitatifs. La portée de l'invention est définie par les revendications annexées et non pas par la description qui précède, et toutes les variantes cadrant avec la signification et la gamme d'équivalents de l'invention sont considérées comme étant englobées par cette dernière. REVENDICATIONS1. Méthode de recherche d'une classe et d'une fonction basée sur une carte .NET, qui est appliquée pendant l'exécution d'un assemblage dans la carte .NET, comprenant les étapes consistant à : • construire une première chaîne de caractères d'après les informations d'une classe en cours d'exécution par la carte .NET ou d'après les informations d'une fonction en cours d'exécution par la carte .NET et d'une classe à laquelle cette fonction appartient ; • calculer une première valeur d'index à partir de la première chaîne de caractères ; • rechercher une première valeur de localisateur correspondant à la première valeur d'index dans une table d'index prémémorisée dans la carte .NET, les valeurs d'index de la table d'index étant générées de la même manière que la première valeur d'index ; • trouver la classe ou la fonction dans une bibliothèque d'exécution de la carte .NET suivant la première valeur de localisateur. 2. Méthode selon la revendication 1, dans laquelle l'étape de construction de la première chaîne de caractères d'après les informations de la classe en cours d'exécution par la carte .NET comprend l'étape consistant à former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe en cours d'exécution par la carte .NET. 3. Méthode selon la revendication 1, dans laquelle l'étape de construction de la première chaîne de caractères d'après les informations de la fonction en cours d'exécution par la carte .NET et de la classe à laquelle cette fonction appartient comprend l'étape consistant à former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, un nom de fonction de la fonction, et un nom de classe et un espace de nommage de chaque paramètre de la fonction. 4. Méthode selon la revendication 1, comprenant en plus les étapes consistant à : si la première valeur d'index n'est pas incluse dans la table d'index, construire une deuxième chaîne de caractères d'après les informations d'une superclasse d'une classe courante et les informations de la fonction, en prenant comme classe courante la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, et calculer une deuxième valeur d'index à partir de la deuxième chaîne de caractères ; déterminer si la deuxième valeur d'index est incluse dans la table d'index ; si la deuxième valeur d'index est incluse dans la table d'index, rechercher une deuxième valeur de localisateur correspondant à la deuxième valeur d'index dans la table d'index et trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la deuxième valeur de localisateur ; si la deuxième valeur d'index n'est pas incluse dans la table d'index, effectuer un processus qui est identique au processus d'obtention de la deuxième valeur d'index en prenant la superclasse comme classe courante jusqu'à trouver une troisième valeur d'index qui est incluse dans la table d'index, rechercher une troisième valeur de localisateur correspondant à la troisième valeur d'index dans la table d'index, et trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la troisième valeur de localisateur. 5. Méthode selon la revendication 1, dans laquelle la table d'index est stockée dans l'assemblage dans la carte .NET. 6. Carte .NET, comprenant : • un module de stockage apte à stocker un assemblage et une table d'index ; • un module de construction apte à construire une première chaîne de caractères d'après les informations d'une classe en cours d'exécution ou d'après les 30 informations d'une fonction en cours d'exécution et d'une classe à laquelle cette fonction appartient lorsque la carte .NET exécute l'assemblage stocké dans le module de stockage ;25• un module de calcul apte à calculer une première valeur d'index à partir de la première chaîne de caractères générée par le module de construction ; • un module de recherche apte à rechercher une première valeur de localisateur correspondant à la première valeur d'index obtenue par le module de calcul dans la table d'index stockée dans le module de stockage, les valeurs d'index de la table d'index étant générées de la même manière que la première valeur d'index ; et à trouver une classe ou une fonction dans une bibliothèque d'exécution de la carte .NET suivant la première valeur de localisateur. 7. Carte .NET selon la revendication 6, dans laquelle le module de construction comprend une première unité de construction apte à former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe en cours d'exécution par la carte .NET lorsque la carte .NET exécute l'assemblage stocké dans le module de stockage. 8. Carte .NET selon la revendication 6, dans laquelle le module de construction comprend une deuxième unité de construction apte à former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, un nom de fonction de la fonction, un nom de classe et un espace de nommage de chaque paramètre de la fonction, lorsque la carte .NET exécute l'assemblage stocké dans le module de stockage. 9. Carte .NET selon la revendication 6, dans laquelle le module de construction est en outre apte, si la première valeur d'index obtenue par le module de calcul n'est pas incluse dans la table d'index, en utilisant comme classe courante la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, à construire une deuxième chaîne de caractères d'après les informations d'une superclasse de la classe courante et les informations de la fonction ; le module de calcul est en outre apte à calculer une deuxième valeur d'index à partir de la deuxième chaîne de caractères générée par le module de construction ; en conséquence la carte .NET comprend en plus un module de détermination apte à déterminer si la deuxième valeur d'index obtenue par le module de calcul est incluse dans la table d'index ; etle module de recherche est en outre apte, si la deuxième valeur d'index obtenue par le module de calcul est incluse dans la table d'index, à rechercher une deuxième valeur de localisateur correspondant à la deuxième valeur d'index dans la table d'index, à trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la deuxième valeur de localisateur ; et si la deuxième valeur d'index obtenue par le module de calcul n'est pas incluse dans la table d'index, à effectuer un processus qui est identique au processus d'obtention de la deuxième valeur d'index en prenant la superclasse comme classe courante jusqu'à trouver une troisième valeur d'index qui est incluse dans la table d'index, à rechercher une troisième valeur de localisateur correspondant à la troisième valeur d'index dans la table d'index, et à trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la troisième valeur de localisateur. 10. Carte .NET selon la revendication 6, dans laquelle la table d'index est stockée dans l'assemblage dans la carte .NET.