[Langage proche du langage basic] Question bête?

Répondre
Partager Rechercher
Citation :
Provient du message de Splotch

A la limite, fais plutôt du Scheme ou du Caml.
Lol, dejà, le C++, pour quelqu'un qui voulait au départ un langage proche du basic, c'est chaud, mais alors du Caml
Citation :
posté par Eowin
Le python et le java etant interpretes aussi...
Le Java interprété ?

(Sinon, Vlad, les parenthèses sont beaucoup plus lisibles que des series de begintruc endtruc...)
Citation :
Provient du message de Soir le Sicaire
Lol, dejà, le C++, pour quelqu'un qui voulait au départ un langage proche du basic, c'est chaud, mais alors du Caml
Heu, c'est peut être valable juste pour moi, mais j'ai compris bien plus vite le Lisp / Caml / langages de programmations fonctionnels que le C++...

Je maintiens, soit C / Perl (qui s'en rapproche beaucoup par certains aspects, sauf que la programmation est plus propre ). Pour faire de la programmation relativement bas niveau, il n'y a pas mieux (et des peek / poke, si c'est pas bas niveau...)
Le python c'est bien.

Défaut : c'est lent, puisque un langage interprété. Enfin, ça dépend ce que tu veux en faire, moi je fais du gros calcul scientifique avec et ça tourne suffisamment bien.

Avantages :
- c'est gratuit (ben ouais, c'est important !)
- c'est facile : syntaxe claire, système souple (exemple, faire défiler une boucle for...next où la variable n'est pas toujours du même type (entier, chaine de caractère, tableau, matrice, objet prédéfini, autres...) dans la même boucle !!!
- syntaxe claire (oui je me répète, mais il est IMPOSSIBLE avec Python de faire un code mal structuré, ce sont les tabulations qui définissent les débuts et fin de boucles, procédures,... Pas des ;,{,ou autres endsub qui peuvent être placés n'importe comment.
- Grande souplesse dans les variables, du plus simple (transtypage à la brute) au plus compliqué (création de classes d'objets tordues)
- Possibilités énormes, type métaprogrammation (créer un programme qui crée lui-même un programme, et ça facilement. Si-si !)
- Plein de bibliothèques gratuites pour étoffer le langage existant.
- Possibilté de création d'interface graphique via le module TkInter (pas simple simple, mais on s'y fait...)

Bref, Python est le langage idéal pour apprendre la programmation moderne tout en gagnant du temps et en faisant des trucs performants (enfic ça c'est ce qu'ils disent sur le site python...)

Bref encore, un langage qu'il est bien.

www.python.org

Sinon il y a aussi le GOTO++, qui est à voir...
s'il veut retrouver les sentations du PEEK et du POKE je lui conseil l'assembleur.

La au moins il comprendra pourquoi il tappait PEEK et POKE.

Et surtout il verra ce que c'est qu'un programme rapide.

Par contre j'ai pas parlé de la convivialité
la seule programmation bas niveau qui existe c'est l'assembleur, le C est un langage de haut niveau, Lwevin non ?

le scheme, le Caml, blabla.. mais bien sûr, c'est juste pour montrer que vous connaissez des noms de langage ou quoi ? lol

pour savoir programmer, il faut travailler ce qu'on apelle l'algorithmique et ca, ca ne change pas suivant les langages, après pour connaitre la syntaxe pour une boucle for en C, basic ou fortran c pas dur à comprendre ..

Par contre la programmtion objet c'est différent, il faut matriser d'autre concept (des conneries comme l'heritage, les classes etc), et la ça diffère totalement de la programmation structurelle..
Citation :
Provient du message de poolet
le scheme, le Caml, blabla.. mais bien sûr, c'est juste pour montrer que vous connaissez des noms de langage ou quoi ? lol

pour savoir programmer, il faut travailler ce qu'on apelle l'algorithmique et ca, ca ne change pas suivant les langages, après pour connaitre la syntaxe pour une boucle for en C, basic ou fortran c pas dur à comprendre ..
C'est donc pourça qu'il y a plusieurs langages. juste pour qu'on puisse frimer.

Non, plus sérieusement, le C est certainement le plus versatile mais pas le plus simple (notamment à cause de la non-vérificatino du type des arguments, qui accélère fortement le code compilé mais ne simplifie pas toujours le déboguage), mais d'autres langages existent, ayant chacun des spécificités.

Le Fortran est ainsi fortement utilisé pour le calcul scientifique, le Lisp pour l'IA, etc... Même si on peut adapter des programmes fortran en lisp et réciproquement, connaitre le langage adapté à ses besoins fait gagner énormément en efficacité.

P.S. le python et le java sont bien interprétés et non pas compilés. Un prog Java n'est jamais transformé directement en code machine mais traité par une machine virtuelle java.
Citation :
Provient du message de poolet
j'ai dit que pour savoir programmer il fallait faire de l'algorithmique, je n'ai pas dit que tout les langages étaient pareils..
Le niveau de ton algorithme varie en fonction du langage que tu utilise.

En C pour ajouter deux valeur dans une variable tu dis :

Var3 := Var1 + Var2

en Assembleur tu dis :

Adresse1 ADD Adresse2
Move adresse1 dans Adresse3

Ou quelque chose dans ce gout la en fonction des processeurs qu'on utilise (que les puristes me pardonnent je n'ai pas toucher a l'assembleur depuis le 68000 et le 286)

Mais a la quelque soit ton algorithme il peut etre derivé dans tout les languages. Il suffit juste d'adapter certaines parties, en particulier en recréeant les fonctions de base.

Maintenant .... savoir si on veut utiliser un interpréteur, un compilateur, orienté objet ou non, comprenant des bibliotheques graphiques ou bien les recréer ....

Voila le vrai choix du programmeur.
Voila ce qui fait le panel des languages et leur intérêt.

Maintenant ... s'il veut toucher a un langage qui ressemblait au basic de l'epoque :

10 Clear
20 CLS
30 Print " Bonjour :"
40 Input var1
....

Il existe peu de languages qui soient aussi stricts a l'heure actuelle. et le VBA ne ressemble en rien a son ancêtre le basic. Surtout pas avec les bibliotheques microsoft.

Mais c'est toujours stimulant d'apprendre un nouveau language non ?
oui oui mais moi j'dis que dans un algorithme (qui, je rapelle, est indépendant du langage), pour additonner 2 variables tu mets ce que tu veux du moment qu'on comprend que t'additionne 2 variable, généralement on fait le plus simple lol var1 + var 2 par exemple, apres la syntaxe du code, c'est à voir avec le langage (evidemment), ca n'a pas d'importance que ca soit adresse1 ADD adresse2, ou (var1) + (var2) ou je ne sais quoi d'autre

on s'en fout, mais moi l'assembleur que je vois c'est l'IA 32, héhé je rox
Citation :
Provient du message de poolet
oui oui mais moi j'dis que dans un algorithme (qui, je rapelle, est indépendant du langage), pour additonner 2 variables tu mets ce que tu veux du moment qu'on comprend que t'additionne 2 variable, généralement on fait le plus simple lol var1 + var 2 par exemple, apres la syntaxe du code, c'est à voir avec le langage (evidemment), ca n'a pas d'importance que ca soit adresse1 ADD adresse2, ou (var1) + (var2) ou je ne sais quoi d'autre

on s'en fout, mais moi l'assembleur que je vois c'est l'IA 32, héhé je rox
Certe certe .... mon exemple est mal choisit... disons plutot :

10 Print "coucou" en basic qui s'ecrit :
Cprintf ("Coucou\n,5) en C (il me semble ou a un detail pret)
va s'ecrire :

move C to adresse1
move O to adresse2
Move U to adresse 3
Move C to adresse 4
Move O to adresse 5
Move U to adresse 6

Trap 15 adresse1 to adresse6

ou quelque chose dans ce gout la.

Donc l'importance du langage depends de ce que tu souhaite reelement en faire.
L'algo en lui meme reste le meme ... a quelques details prets.

En parlant de langage et d'algo ... vous connaissez l'etimoligie d'algorithme ?
Citation :
Provient du message de poolet
[i]la seule programmation bas niveau qui existe c'est l'assembleur, le C est un langage de haut niveau, Lwevin non ?
j'ai bien dit relativement bas niveau.
Evidemment, on est pas au niveau de l'assembleur, mais c'est le langage le plus proche de la machine (à part l'assembleur, donc).
Par ailleurs, ce n'est pas parce que peek et poke existent en basic qu'on n'utilise que ça : le basic est bien plus haut niveau que le C (de par un typage quasi inexistant, pas de déclaration de variables, etc.)

Citation :
le scheme, le Caml, blabla.. mais bien sûr, c'est juste pour montrer que vous connaissez des noms de langage ou quoi ? lol

Je ne vois pas le rapport.
Ce n'est pas parce que les langages fonctionnels sont moins utilisés que l'impératif qu'ils ne sont pas plus simples. C'est une manière de penser différente, mais ces langages sont très bien adaptés dans un certain nombre de cas (parcours d'arbre, par exemple, d'où une forte application à l'IA). Ils ont une réelle utilité, contrairement à ce que tu sembles penser (désolé si j'ai mal compris, mais j'ai du mal à saisir le sens de ta phrase).

Citation :
pour savoir programmer, il faut travailler ce qu'on apelle l'algorithmique et ca, ca ne change pas suivant les langages, après pour connaitre la syntaxe pour une boucle for en C, basic ou fortran c pas dur à comprendre ..
Effectivement, l'algorithmique (pour Dwelfigor : provient d'un médecin arabe : Al-Khärezmi ) est fondamentale, et sans aucun doute plus importante que le langage lui-même (bien que l'algorithmique soit totalement différente dans un langage impératif et fonctionnel). Mais à ce que je sache, la question ne portait pas là dessus (en plus, à mon avis, il faut atteindre un certain niveau avant que l'algorithmique cesse d'être intuitive...)

Citation :
Par contre la programmtion objet c'est différent, il faut matriser d'autre concept (des conneries comme l'heritage, les classes etc), et la ça diffère totalement de la programmation structurelle..
Bof, pas grande différence Les différences sont bien plus profondes entre un langage impératif et un langage fonctionnel (mais à mon avis largement plus enrichissant).
Citation :
Provient du message de Lwevin Myan
[i]j'ai bien dit relativement bas niveau.
Evidemment, on est pas au niveau de l'assembleur, mais c'est le langage le plus proche de la machine (à part l'assembleur, donc).
Par ailleurs, ce n'est pas parce que peek et poke existent en basic qu'on n'utilise que ça : le basic est bien plus haut niveau que le C (de par un typage quasi inexistant, pas de déclaration de variables, etc.)



Je ne vois pas le rapport.
Ce n'est pas parce que les langages fonctionnels sont moins utilisés que l'impératif qu'ils ne sont pas plus simples. C'est une manière de penser différente, mais ces langages sont très bien adaptés dans un certain nombre de cas (parcours d'arbre, par exemple, d'où une forte application à l'IA). Ils ont une réelle utilité, contrairement à ce que tu sembles penser (désolé si j'ai mal compris, mais j'ai du mal à saisir le sens de ta phrase).
ben pour moi haut niveau veut dire indépendant de l'architecture ce qui est le cas du C, avec la couche d'abstraction matérielle, je ne trouve pas qu'il est proche de la machine, loin de là..

oui c'est vrai mais remarque était bizarre, en fait je disais ça parce que le mec demandait un langage proche du basic (programmation structurelle donc), et qu'on lui sort le scheme, le Caml , attention, je n'ai jamais remis en cause leur utilité, loin de moi cette idée ça m'est déjà arrivé de faire des applications dans ces langages d'ailleurs, même si c'était des trucs bidons lol

Pour la POO, je maintiens, ça n'a rien à voir avec la programmation dite "classik"
LA couche d'abstraction matérielle du C est une des plus "fines" qui soit, si tu me permet l'expression. Rien à voir avec l'assembleur tout de même, je te le concède...
Dites, c'est pas pour venir mettre le brin mais le C n'est-il pas ce qu'on appelle un langage de niveau moyen, suffisamment éloigné du bas niveau pour ne pas être spécifique à un type de processeur et suffisamment éloigné du haut niveau pour pouvoir quand même faire quelque-chose de rapide?

Et ne venez vous moquer en disant le terme de langage de niveau moyen n'existe pas.
Citation :
Provient du message de Grugnita
LA couche d'abstraction matérielle du C est une des plus "fines" qui soit, si tu me permet l'expression. Rien à voir avec l'assembleur tout de même, je te le concède...
Exact.
Et poolet, je ne sais pas si tu as eu à faire des portages de programmes C, mais c'est là où tu t'aperçois que le C indépendant de la plate-forme, c'est du pipeau intégral, surtout si ton code utilise des procédés systèmes proche de la machine, comme le multi-thread, auquel cas il est plus rapide de repartir de zéro que d'essayer de porter.
Citation :
Provient du message de Dwelfigor
Le niveau de ton algorithme varie en fonction du langage que tu utilise.

En C pour ajouter deux valeur dans une variable tu dis :

Var3 := Var1 + Var2

en Assembleur tu dis :

Adresse1 ADD Adresse2
Move adresse1 dans Adresse3

Ou quelque chose dans ce gout la en fonction des processeurs qu'on utilise (que les puristes me pardonnent je n'ai pas toucher a l'assembleur depuis le 68000 et le 286)

Mais a la quelque soit ton algorithme il peut etre derivé dans tout les languages. Il suffit juste d'adapter certaines parties, en particulier en recréeant les fonctions de base.

Maintenant .... savoir si on veut utiliser un interpréteur, un compilateur, orienté objet ou non, comprenant des bibliotheques graphiques ou bien les recréer ....

Voila le vrai choix du programmeur.
Voila ce qui fait le panel des languages et leur intérêt.

Maintenant ... s'il veut toucher a un langage qui ressemblait au basic de l'epoque :

10 Clear
20 CLS
30 Print " Bonjour :"
40 Input var1
....

Il existe peu de languages qui soient aussi stricts a l'heure actuelle. et le VBA ne ressemble en rien a son ancêtre le basic. Surtout pas avec les bibliotheques microsoft.

Mais c'est toujours stimulant d'apprendre un nouveau language non ?
10 print "merci"
20 rem le C a l air pas mal!
30 ?" merci
Citation :
Provient du message de Ranfaroth
Le Java interprété ?
Semi-compilé en fait

Un compilateur transforme les sources en pseudo-code, et la machine virtuelle interprète le pseudo-code.

C'est aussi comme cela que fonctionne le Pascal. Ce qui en faisait un langage lent, peu utilisé en milieu professionnel. Depuis Borland a sorti un vrai compilo pour l'environnement DOS puis Windows (les joies de TPW 7.0 ), puis a ajouté quelques notions de langage objet et une jolie palette de widgets pour faire naître Delphi.
Citation :
Provient du message de Lwevin Myan
Exact.
Et poolet, je ne sais pas si tu as eu à faire des portages de programmes C, mais c'est là où tu t'aperçois que le C indépendant de la plate-forme, c'est du pipeau intégral, surtout si ton code utilise des procédés systèmes proche de la machine, comme le multi-thread, auquel cas il est plus rapide de repartir de zéro que d'essayer de porter.
non j'ai jamais fait de portage mais c'est pas juste une histoire de dll et de libraries ..??
Citation :
Provient du message de poolet
non j'ai jamais fait de portage mais c'est pas juste une histoire de dll et de libraries ..??
Du tout. J'ai vu / effectué plusieurs portages, soit il a fallu autant / plus de temps pour faire le portage que pour écrire le programme de départ (et c'était écrit en partie en C++, alors que c'est censé être de bien plus haut niveau que le C ! mais j'admets que j'aurais été beaucoup plus vite si j'avais codé l'original), soit j'ai vu du travail ni fait ni à faire, avec tout un tas de bugs (quand ce n'était pas des core) et de fuites mémoires hallucinantes, à croire que celui qui avait le portage s'était barré dès qu'il avait vu que le code compilait sans erreurs (mais pas sans warnings...).

Exemple simple : si on veut programmer en multi-thread, les noms de fonctions ne sont pas les mêmes sous Windows et Unix, il n'y a pas les mêmes possibilités dans les deux cas.

Pour ma part, c'est de très loin lors des portages que j'ai rencontré le plus de difficultés techniques.
Citation :
Provient du message de Lwevin Myan
Exemple simple : si on veut programmer en multi-thread, les noms de fonctions ne sont pas les mêmes sous Windows et Unix, il n'y a pas les mêmes possibilités dans les deux cas.
Sous windows tu peux tout faire mais ça marches pas ! et surtout pas les exemples Microsoft

Sous unix tu peux pas faire grand chose mais ça a le merite de marcher !
Citation :
Provient du message de Lwevin Myan
Du tout. J'ai vu / effectué plusieurs portages, soit il a fallu autant / plus de temps pour faire le portage que pour écrire le programme de départ (et c'était écrit en partie en C++, alors que c'est censé être de bien plus haut niveau que le C ! mais j'admets que j'aurais été beaucoup plus vite si j'avais codé l'original), soit j'ai vu du travail ni fait ni à faire, avec tout un tas de bugs (quand ce n'était pas des core) et de fuites mémoires hallucinantes, à croire que celui qui avait le portage s'était barré dès qu'il avait vu que le code compilait sans erreurs (mais pas sans warnings...).

Exemple simple : si on veut programmer en multi-thread, les noms de fonctions ne sont pas les mêmes sous Windows et Unix, il n'y a pas les mêmes possibilités dans les deux cas.

Pour ma part, c'est de très loin lors des portages que j'ai rencontré le plus de difficultés techniques.
Ok je comprends que ca pose problème pour la programmation système, mais pour les noms de fonctions et de prototypes, c'est bien une question de librarie non ? ça n'a rien à voir avec l'OS je crois..

printf --> stdio.h
std::cout --> iostream.h

pour windows et Linux c'est pareil non ? (j'ai jamais tapé une ligne de code sous windows)
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés