1

Pendant mes vacances quelques changements ont transformé le langage Azur, qui ressemblait plus à du Pascal qu'à du C. C'est l'inverse aujourd'hui.
Le compilateur on-calc est en grande partie écrit, et avant d'attaquer le plus important, je voudrais savoir ce que vous pensez de la syntaxe.

Le code qui suit ne fait pas grand chose en pratique, mais permet d'avoir un aperçu de la grammaire et de la façon de penser en Azur.
Notez que les variables (tous les identificateurs en général) peuvent contenir des lettres accentuées, c'est une particularité parmi plein d'autres du langage.

void Ca_sert_à_rien[]                        : Bon, pas besoin de commentaire...
{
  [                                          : les déclarations se font entre crochets
    64 long+  Cellules;                      : Cellules est un tableau de 64 cases, de type unsigned long (long+, le '+' signifie non-signé)
    Long+     Expr, j;                       : pareil : 32 bits non-signé
    word-     k;                             : 16 bits signé (le '-' signifie que c'est signé), correspopnd au type int en C
  ]

  Cellules[0]= j= Expr= malloc(64*34);       : Expr pointe sur un bloc de 64*34 octets. j aussi. La première case de Cellules aussi

  for k=1 to k==63 step k+=1 do              : for(i=1; i!=63; i++) en C / for i,1,63 en Basic
    Cellules[k]= j+= 34;                     : Chaque case du tableau Cellules contient l'adresse d'une zone (34 octets) du bloc créé tout à l'heure
}
La boucle for peut se présenter d'une manière beaucoup plus élégante smile
  for  k= 1
  to   k==63
  step k+=1
  do   {
    Cellules[k]= j+= 34;
  }


(après incrémentation de 4) }
Optimisée, la fonction donne :void Ca_sert_à_rien[]
{
  [
    64 long+  Cellules;
    Long+     CellsP, Expr, ExprP, Fin;
  ]

  ExprP= (Expr= malloc(64*34)) - 34;
  Fin= (CellsP= @Cellules - 4) + 65*4;       : @Cellules renvoie l'adresse du tableau Cellules : c'est l'équivalent du '&' en C

  while CellsP<Fin do
    (CellsP+= 4)?= ExprP+= 34;               : Le point d'interrogation c'est l'équivalent de '*' en C : on veut accéder à l'endroit où pointe CellsP 




1) Avez-vous compris facilement ce que réalise ce code ?
2) Si oui, appréciez-vous ce langage ?
3) Pourquoi ? (argumentez un peu, merci)
4) Après avoir répondu aux 3 précédentes, vous pouvez m'interroger aussi wink
[edit]Edité par Thibaut le 19-09-2001 à 19:36:13[/edit]
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

2

v regarder ça smile

3

J'y comprends rien. le mode d'emploi please #suicide#

4

roll
Je vais commenter alors, pour que vous répondiez aux questions : c'est quand même le but du topic.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

5

Moi y a des trucs que je comprends pas...
.j'ai eu du mal à comprendre ce qu'était le [] du début, OK pour ce que c'est (fo peut etre pas le dire...)
.je comprends pas le ?= , le @ , les suites d'égalités, et qu'est-ce qui est pointeur ou pointé
Cours et tutos Asm: http://membres.lycos.fr/sirryl

6

hue, ca ressemble assez au pyhton pr les varialbe ... nan?

7

Excusez-moi, y'a des trucs qui passaient pas : Cellules[i ] (avant que j'ajoute un espace après le i) devenait Cellules tout court...
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

8

Tu sais perso, je n'aime pas les languages qui font plus d'une chose a chaque ligne.

9

oué, coule!
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

10

Ca veut dire quoi le j+ dans cellule[i ] = j+ ?

11

PpHd : Ta remarque n'est pas très utile : rien ne t'oblige à faire plus d'une chose par ligne.

janjan2 : ça manque d'arguments...
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

12

Sinon je vois pas trop quoi dire.
C'est du C et du pascal, donc voila quoi.

13

heu .. la postincrementation avec un move.. ca fait plus d'une chose par ligne.... halalaa...
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

14

PpHd : C'est pas j+ qu'il faut lire, mais j+=
C'est comme en C !
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

15

>[img]janjan2 : ça manque d'arguments...[/img]
lol!

je pense que c'est coule parceque c'est un bon dei pour un programmeur de faire un interpreteur de syntaxe de prog et pas juste un parser.

sinon, desole mais si on a GTC je l'utiliserai plutot que ton truc pour des raisons de portabilité!
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

16

Paxal :
.j'ai eu du mal à comprendre ce qu'était le [] du début, OK pour ce que c'est (fo peut etre pas le dire...)
Les déclarations se font entre crochets. La fonction "Ca_sert_à_rien" n'admet pas d'arguments, donc...
.je comprends pas le ?= , le @ , les suites d'égalités, et qu'est-ce qui est pointeur ou pointé
J'ai commenté le code, tu peux relire, tu devrais tout comprendre smile


nEUrOne :
hue, ca ressemble assez au pyhton pr les varialbe ... nan?
Je ne connais pas le Python.




Mais si vous pouviez répondre aux 4 questions avant autre chose... grin
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

17

Ok. Desole, mais en C, je mets des parentheses pour se genre de truc).
Et les pointeurs c des long ?
C pas dangereux ?

18

Ben il faut faire attention quoi.

J'ai voulu me rapprocher beaucoup de l'ASM, donc il ne faut pas dire "les pointeurs c des long", mais "les pointeurs sont sur 32 bits"
En effet, l'Azur ne connait pas de type : c'est à toi de les construire :
- l'étendue : 81,92 ou 64 ou ... par exemple
- la taille : word par exemple
- signé/non : -/+

L'étendue c'est pour les tableaux
Les tailles sont : byte/word/long
[edit]Edité par Thibaut le 19-09-2001 à 19:43:08[/edit]
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

19

Une chose qui m'énerve à la fois en Pascal et en C, et que tu as malheureusement reprise, est ce maudit ; obligatoire à chaque fin de ligne. Pourquoi ne pas faire une instruction finir en fin de ligne sauf si on met un comme dernier caractère (ce qui est parfois nécessaire même en C, comme par exemple pour les #defines), comme par exemple en BASIC ou en assembleur.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

20

>Une chose qui m'énerve à la fois en Pascal et en C, et que tu as malheureusement reprise, est ce maudit ; obligatoire à chaque fin de ligne

[shameless plug]
Vive SMALL grin
[/shameless plug]
So much code to write, so little time.

21

>1) Avez-vous compris facilement ce que réalise ce code ?
Avec les commentaires oui.

>2) Si oui, appréciez-vous ce langage ?
Pas plus que le C ou le pascal.

>3) Pourquoi ? (argumentez un peu, merci)
Ben?? C un language algorithimique.

>4) Après avoir répondu aux 3 précédentes, vous pouvez m'interroger aussi
A mort le ';'

22

1) Oui
2) Bah, c'est une sorte de pascalC... C'est difficile à dire
3) J'aime pas les déclarations
4) le ; quand tu l'oublies, c'est chiant... (89 errors found)

Cinq font un et un font cinq : le tout est UNITE
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi , et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

23

>1) Avez-vous compris facilement ce que réalise ce code ?
Je trouve que contrairement au Pascal la syntaxe n'est pas intuitive du tout (la preuve: il a fallu des commentaires pour que tout le monde comprenne)

>2) Si oui, appréciez-vous ce langage ?
Pas tellement.

>3) Pourquoi ? (argumentez un peu, merci)
C'est du C avec une syntaxe un peu bizarre. Et les avantages du Pascal n'y sont plus (facilité de lecture du code, et je ne sais pas encore si tu vas gerer les strings comme objets du language, mais si tu ne le fais pas c'est un autre avantage du Pascal qui s'en va).

>4) Après avoir répondu aux 3 précédentes, vous pouvez m'interroger aussi
Quel est l'avantage par rapport au C ?

Voila c'est mon avis smile
So much code to write, so little time.

24

Vil : le ; quand tu l'oublies, c'est chiant... (89 errors found)

Il y a un procédé dans les compilos qui se nomme la synchronisation, qui permet de continuer la compilation après une erreur. Les compilos qui te mettent "89 errors found" pour 1 ';' oublié n'ont pas une synchro très performante...


Ceux qui veulent la mort du ';' :
Comment mettre plus d'une instruction par ligne ??


frekazoid (je garde le meilleur pour la fin) : c'est super sympa cette aide et ce soutient depuis le début du projet, il y a + d'1 an smile


A tous : Merci de toutes ces critiques.

Vous répondez ainsi parfaitement à la question du topic.

Et si j'abandonnais l'Azur pour faire un compilateur C
(que le meilleur gagne Pollux) ?
[edit]Edité par Thibaut le 20-09-2001 à 18:44:17[/edit]
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

25

>Et si j'abandonnais l'Azur pour faire un compilateur C ?

C'est une excellente idée smile Mais je pense que tu dois etre un peu déçu de ne pas voir aboutir un projet que tu as conçu de bout en bout...
So much code to write, so little time.

26

Exact, tu vois que mon message est édité. L'avant dernière ligne était : "Vous répondez ainsi parfaitement à la question du topic, même si c'est dur à encaisser (j'ai quand même dû réfléchir pour inventer ce langage). "

J'ai trouvé que c'était un peu vous influencer dans la réponse à la question "Et si j'abandonnais l'Azur pour faire un compilateur C ? "

>> C'est une excellente idée
Pourquoi ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

27

yeah goude!!!
fais un compilo C!
pkoi? compat...
mais opensrc, pas comme popol, car su son projet etait open src, a plusieurs il serait finished depuis longtemps!
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

28

>>> C'est une excellente idée
>Pourquoi ?

Parce qu'il n'y en a pas encore de potable (on-calc). En tout cas pas pour le commun des mortels grin
Et je suis tout a fait d'accord avec janjan2, le fait qu'il soit opensource fera qu'il sera supérieur à GTC (si ce dernier sort un jour).
[edit]Edité par Nitro le 20-09-2001 à 20:02:37[/edit]
So much code to write, so little time.

29


Le problème c'est qu'un compilateur C c'est hyper-complexe, et plus lent qu'un compilo Azur.

L'Azur a été conçu de façon a être performant tout en étant facile à interpréter. Résultat : vitesse de traitement faramineuse.

Ca va être très dur pour moi de faire ce changement.


Mes réfutations :

C'est du C avec une syntaxe un peu bizarre.
A part la déclaration d'identificateurs, ça ressemble beaucoup au C !
Pour qui connait le Pascal, la syntaxe des strucures algorithmiques est intuitive (for, while, ...).


Et les avantages du Pascal n'y sont plus
- facilité de lecture du code

Rien ne vous empêche de n'effectuer qu'une seule opération par ligne, comme en Pascal !

- je ne sais pas encore si tu vas gerer les strings comme objets du language
Non, ce sont des tableaux de constantes caractère, comme en C.

Quel est l'avantage par rapport au C ?
Grande vitesse de compilation, clarté du Pascal pour qui le veut.

J'aime pas les déclarations
Question de rapidité d'interprétation...
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

30

>Pour qui connait le Pascal, la syntaxe des strucures algorithmiques est intuitive (for, while, ...).

Je voulais dire par là que l'un des avantages du Pascal c'est que c'est un langage textuel (avec des mots) et non pas symbolique (comme le C) ce qui le rend beaucoup plus facile à lire. Exemples: "begin/end" à la place des accolades, "and" à la place de &&, etc...
Quand à l'Azur, il est encore plus symbolique que le C : ajout de [] pour les declarations, symboles dans les types, etc... Donc à mon avis c'est le pire de tous en ce qui concerne la compréhension immediate du code source.

>Grande vitesse de compilation
GTC aussi est rapide non ?


Maintenant un commentaire positif (eh oui il en faut grin) : ce qui pourrait permettre à l'Azur de se démarquer des autres et d'avoir un certain interet sur TI c'est la programmation objet ! Si tu implementes la gestion des classes, comme dans Delphi (je pense que c'est le plus intuitif et le plus facile à utiliser), tu aurais là une caracteristique unique sur TI, et la programmation objet permet une programmation tres elegante smile Qu'en penses-tu ?
So much code to write, so little time.