Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/01a30734539941ed4f89ef8e94cc4658/web/sujets.php on line 18
Fr  En     
Vous cherchez des forums, un endroit pour discuter ? C'est ici ! Actualité, blogs, bd, ciné, programmation, jeux vidéo, consoles, pockets, calculettes TI, études ... y'a too :) Attention ... addictif ! :D
Partenaires  
UpToTech Forum discussions Pixel Invaders Web-Tricheur Alvasoft.net : Hardware & TI ACBM Pockett
^
 
00:01  Hello Meowcate ! Mes sujets Suivi sujets Raccourcis Mini msgMemo
@Boo, fabetal_, frost, gobby, JackosKing, Manoloben, Meowcate, odie_one, rick-hunter, Rusty Frozbite, Sally, vince, yangp, @Zephyr + 43 inconnu(s) + 2 bot(s)

 Index » ::
./Catégories
 
 
ICO
Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=100748'">
 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=100748'>Nanniv Sabinouchinouchinouchininette !!! - Souane - Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=100748&p=1' style='font-weight: normal;'>1 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=100748&p=2' style='font-weight: normal;'>2
39 r - 1443 v » 22-07-2008 à 00:01 - Zephyr  
ICO
Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=76711'">
 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=76711' title='Posts non lus.')" title='Last post'>L Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=76711'>Les meilleures news - dualmoo - Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=76711&p=1' style='font-weight: normal;'>1 ... Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=76711&p=266' style='font-weight: normal;'>266 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=76711&p=267' style='font-weight: normal;'>267 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=76711&p=268' style='font-weight: normal;'>268 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=76711&p=269' style='font-weight: normal;'>269 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=76711&p=270' style='font-weight: normal;'>270 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=76711&p=271' style='font-weight: normal;'>271
 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=76711' title='Posts non lus.')" title='Last post'>L8128 r - 210765 v » 21-07-2008 à 23:56 - Sally  
ICO
Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=113460'">
 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=113460'>nanniv titane en retard - squalyl 
12 r - 180 v » 21-07-2008 à 23:49 - vince  
ICO
Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=111699'">
 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=111699' title='Posts non lus.')" title='Last post'>L Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=111699'>Les meilleurs news informatique et hi-tech - squalyl - Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=111699&p=1' style='font-weight: normal;'>1 ... Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=111699&p=24' style='font-weight: normal;'>24 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=111699&p=25' style='font-weight: normal;'>25 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=111699&p=26' style='font-weight: normal;'>26 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=111699&p=27' style='font-weight: normal;'>27 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=111699&p=28' style='font-weight: normal;'>28 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=111699&p=29' style='font-weight: normal;'>29
 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=111699' title='Posts non lus.')" title='Last post'>L847 r - 19679 v » 21-07-2008 à 19:42 - Noufnouf  
ICO
Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=107614'">
 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=107614' title='Posts non lus.')" title='Last post'>L Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=107614'>Cay quoi vot' sonnerie de portable ? - Rusty Frozbite - Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=107614&p=1' style='font-weight: normal;'>1 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=107614&p=2' style='font-weight: normal;'>2 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=107614&p=3' style='font-weight: normal;'>3
 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=107614' title='Posts non lus.')" title='Last post'>L76 r - 3240 v » 20-07-2008 à 15:42 - Brunni  
ICO
Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=113187'">
 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=113187'>Vos préférences en univers de jeux vidéo - Zephyr - Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=113187&p=1' style='font-weight: normal;'>1 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=113187&p=2' style='font-weight: normal;'>2
56 r - 1695 v » 18-07-2008 à 02:39 - jul2149  
ICO
Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=3121'">
 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=3121' title='Posts non lus.')" title='Last post'>L Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=3121'>BON JOUR - PpHd - Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=3121&p=1' style='font-weight: normal;'>1 ... Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=3121&p=286' style='font-weight: normal;'>286 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=3121&p=287' style='font-weight: normal;'>287 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=3121&p=288' style='font-weight: normal;'>288 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=3121&p=289' style='font-weight: normal;'>289 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=3121&p=290' style='font-weight: normal;'>290 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=3121&p=291' style='font-weight: normal;'>291
 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=3121' title='Posts non lus.')" title='Last post'>L8715 r - 112201 v » 18-07-2008 à 02:04 - Rems  
ICO
Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=112917'">
 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=112917' title='Posts non lus.')" title='Last post'>L Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=112917'>#fier# - Folco - Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=112917&p=1' style='font-weight: normal;'>1 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=112917&p=2' style='font-weight: normal;'>2
 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=112917' title='Posts non lus.')" title='Last post'>L34 r - 1147 v » 17-07-2008 à 23:52 - Budmilka  
ICO
Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=112894'">
 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=112894' title='Posts non lus.')" title='Last post'>L Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=112894'>Est-ce que vous croyez aux fantomes? - tako-chan - Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=112894&p=1' style='font-weight: normal;'>1 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=112894&p=2' style='font-weight: normal;'>2 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=112894&p=3' style='font-weight: normal;'>3
 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=112894' title='Posts non lus.')" title='Last post'>L86 r - 2110 v » 17-07-2008 à 16:01 - smeet  
ICO
Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=4745'">
 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=4745' title='Posts non lus.')" title='Last post'>L Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=4745'> J'ai trouvé l'[âme soeur] , mais....... - Titane - Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=4745&p=1' style='font-weight: normal;'>1 ... Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=4745&p=420' style='font-weight: normal;'>420 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=4745&p=421' style='font-weight: normal;'>421 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=4745&p=422' style='font-weight: normal;'>422 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=4745&p=423' style='font-weight: normal;'>423 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=4745&p=424' style='font-weight: normal;'>424 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=4745&p=425' style='font-weight: normal;'>425
 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=4745' title='Posts non lus.')" title='Last post'>L12724 r - 115319 v » 12-07-2008 à 13:32 - Nil  
ICO
Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=113201'">
 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=113201'> L'arnaque du réchauffement climatique - Trilaterale - Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=113201&p=1' style='font-weight: normal;'>1 Lock (Admins) Ip (Admins)
./55 - Lien   Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./57 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:19  Folco - Posté : 21-07-2008  M  X

Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir. Mais j'aurais bien envie d'interdire ce genre de saloperies.


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./58 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:24  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./57) :
Parce que pour assembler du code de Flanker, même si ça me répugne, il faut pouvoir.

C'est à Flanker de s'adapter à ton assembleur s'il compte l'utiliser. Il serait temps que quelqu'un force les programmeurs à abandonner ce style de programmation obsolète!


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)
./59 - Lien   Reprendre ici •«
23.01.2004 - 11605
22:48  Folco - Posté : 21-07-2008  M  X

Non mais j'ai pas dirt que je le ferai pas hein %)  Surtout que c'est simplissime, il suffit de garder un pointeur vers un header pour avoir sous la main toutes les définitions susceptibles d'être utilisées.

Bon, appel général ! Qui veut pouvoir avoir (ou non) du code dans les headers ? Quelles bonnes raisos invoquez-vous ?


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
 « Précédent - 2/3 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (66r) » Design de projet

Admins / Auteur : Clore | Admins : Supprimer - Déplacer - Annonce - Edit titre
Mes sujets : Ajouter - Supprimer

./Poster un nouveau message.
?
url   email   google  
image pre   media
flash   panneau  
spoiler   cite   hide   hr  





  Smileys - Smileys perso

Joindre un fichier ou une image

Sondages - Sources

Insérer citations sauvées - Vider
     Flood control (?) :            
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©20o9 - Aide / Charte
Etat serveur SQL   61ms | Statistiques



   
&s=113201&p=2' style='font-weight: normal;'>2
54 r - 1386 v » 11-07-2008 à 10:07 - squalyl  
ICO
Reprendre ici •«
23.01.2004 - 11605
21:38  Folco - Posté : 21-07-2008  M  X

Très très intéressant !  #top#  On n'a pas du tout la même approche. Je suis parti très vite dans les détails de m'implémentation, parce que c'est plutôt ça qui me fait epur en effet. Mais reprenons ce que tu as dit :
Sasume (./54) :
Il faut au moins designer TriList quand même, non ?
Qu'appelles-tu "designer" ?

Fraire le design de la fonction, en fait, j'écris toujours une phrase de descrpition + ce que ça prend en entrée + ce que ça pond en sortie + ce que ça détruit. Ca peut ressembler à ça (même si là c'est un exit, donc un peu particulier ^^) :
;================================================================== ; QuitError ;================================================================== ; Terminate the execution, cleaning some handle and files, ; and throwing a message to stdout. ; Don't clear the stack frame, the loader will do it. ; ; input (sp) *main string ; 4(sp) *args eventually ; 8(sp) ... ; d7 constant to add to clear the stack ; output output a string to stdout ; destroy some data, but osef ;==================================================================

Sasume (./54) :
C'est-à-dire ? Assembler plusieurs fichiers .asm et les coller bout à bout au moment de l'édition de liens ? Ou bien gérer l'inclusion de fichiers ?

Les deux mon colonel. Une inclusion, t'es obligé de la gérer pour les headers. L'édition des liens, je suis obligé de la faire pour être réellement milti-source (car inclure des sources revient en fait à n'en avoir qu'un seul. Le problème vient des programmeurs gore qui foutent du code dans les headers. Un headers simplement fait de définitions et de macros pourrait juste être ouvert, pour qu'on pioche dedans en cas de symbole inconnu. A cause de ceux qui y écrivent du cde qui doit être inclus au moment de l'inclusion précisément, c'est pas possible, et donc de là il faut include récursivement pour compléter le source, car la fichier inclus peut en inclure d'autres. (ça me fait penser qeu ce que j'ai dit plus haut est faux, on ne peut pas ouvrir un header juste en read-only à cause de ça...)
Sasume (./54) :
Au fait, tu ne comptes pas séparer l'assemblage de l'édition des liens ?

Si, sinon tu peux pas gérer plusieurs sources qui ont des références croisées (et il y en a forcément dans le cas de vrai multi-source, ie sans inclusions bourrines).
Sasume (./54) :
Ces deux points se rejoignent non ? Je les aurais écrits sur la même ligne img Sinon, tu n'as pas parlé de lib, mais j'imagine que tu y songeais aussi non ?

ben disons que créer du nostub est facile, qui peut le plus peut le moins, le kernel n'est qu'un wrapper (header) autour d'un binaire nostub (à l'exception des relogements kernels essentiellement, + ram calls, bss etc...)
Sasume (./54) :
Quels types de mots peux-tu rencontrer (instructions, labels, opérandes, directives préprocesseur, etc.)

Pour moi c'est pareil en fait. Comment ça c'est pas bien ?  :D  Tous les mots connus sont référencés dans un table, de move à include en passant par xdef. Si c'est une instruction, je l'assemble. Si c'est un xdef, j'ajoute un export etc... Donc à la base, je me fous de ce que je vais trouver, c'est la même moulinette qui lit, et qui ensuite lance ce qu'il faut par rapprot à ce qu'elle a trouvé.
Sasume (./54) :
comment gérer toutes les entrées possible sans écrire un code trop spaghetti ? Surtout que, en outre, tu devras être capable de détecter et gérer les erreurs de syntaxe !

Ca c'est tout con, c'est la table des instructions qui le gère, essaye move.w 7d,d0 et ça t'enverra chier (si t'as pas de variable 7d), essaye move.l d0/2,d1, ça va valser aussi. Ou encore cmpi d0,d1. La table est faire pour ne permettre que ce qui est permis par la doc.
Sasume (./54) :
Mais tu peux aussi tout faire en une seule passe, mais ça implique quelques limitations : le programmeur ne pourra pas faire d'appel de macro sans avoir défini la macro auparavant, idem pour les equ, etc.

Je ne comprends pas pourquoi, s'il a inclus son header, voire son source dans lequel la macro est définie, pourquoi ça passerait pas ? Tu dois pas voir les choses comme ça j'imagine ?
Sasume (./54) :
genre ce fichier source contient une directive include, suivie d'une chaîne contenant preos.h, suivie d'un retour à la ligne, suivi d'un identificateur (un nom) ayant pour valeur main, suivi de deux points, suivi d'un retour à la ligne, suivi d'une tabulation, suivi d'un nom d'instruction, suivie d'un point, suivie d'une taille d'opérande correspondant à byte, suivie du signe dièse, suivi d'un nombre, suivi d'une virgule, suivie d'un nom de registre, etc. un peu comme si dans une phrase en français tu décortiquais la nature de mots utilisés et de la ponctuation),

Je vois pas l'intérêt de faire ça, au moins pour de l'assembleur. Etant donné qu'on ne peut passer que ce qui se résume à du source (source, macro), à du préprocessing (ifdef) ou généralement à des "commandes" (terme mal choisi, mais je parle aussi bien de xdef que de include), quel est l'intérêt de l'analyse lexicale ?
Sasume (./54) :
sur Internet tu pourras trouver des ressources là-dessus

Tu m'avais déjà filé un lien très précis, mais qui ne marchait pas sur le moment, désolé ...  #tsss# 
Sasume (./54) :
Il serait judicieux de les ranger dans une table, au fur et à mesure où tu les rencontres, et où tu notes toutes les infos que tu as sur eux (par exemple quand tu rencontre le texte SIZE equ 12, tu dois stocker dans ta table de symboles que l'identificateur SIZE correspond à un equ et a pour valeur le texte "12"

L'autre solution étant de reparcourir le source, ainsi que les "include" qu'il contient  #tripo#  Et attention aux inclusions circulaires, vu que c'est récursif à priori, sawashié !  #tripo# 
Plus sérieusement, ta table me convient, mais j'ai peur de la consommation de RAM après avoir lu un header tel que tios.h ...


Mon journal de bord <flux rss manuel> PControl beta 3 </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Mail Minimsg Lock (Admins) Ip (Admins)
./56 - Lien   Reprendre ici •«
10.06.2001 - 25251
22:15  Kevin Kofler - Posté : 21-07-2008  M  X

Folco (./55) :
Le problème vient des programmeurs gore qui foutent du code dans les headers.

Pourquoi pas interdire ça tout simplement, si ton assembleur ne sera de toute façon pas compatible GNU as?


Membre de l'équipe de TIGCC
Mainteneur du portage *nix de TIGCC.
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (charset UTF-8), le chan IRC officiel de TIGCC
Participez à la reprise de Ti-Gen!
Minimsg Lock (Admins) Ip (Admins)