Hallo Leuts,
Als ich heute in der Bibliothek war um mir Einstiegsliteratur in
Microchips PIC-Welt zu beschaffen, fiel mir als erstes ein dicker Wälzer
auf welcher sich mit JAL auf PIC's beschäftigt.
Einfallsreicher Weise steht das wohl für "Just another language", wenn
ich mich recht erinnere.
Laut dem Buch ist die Sprache sehr einfach und weltweit weit verbreitet
- stimmt das denn? Habt ihr Erfahrungen zu dieser Sprache und falls ja
-positive odr negative?
Ich habe das Buch stehen lassen und eher nach Assembler und C gesucht.
Neugierig bin ich jetzt aber schon was da dran ist!? Kann sich der
Einstieg da lohnen?
Grüße,
der Nukammer
JAL nur JALv2 einfaches jal ist nicht interessant.
Overload von operator, multitasking, variable kann Function Triggern.
Konstanten expr reduction. Globales assemblieren. Interne assertion I'm
compiler. Dies sind so die Eckpunkte.
Zur Verbreitung, jain. Vor Arduino war es bei pic entwicklern
verbreitet, als C nur Al's teure Zahlversion verfuegbar war was sich nur
wenige leisten konnten, under sehr ineffizient.
Dann Danke für die Übersicht ^^
Dass so ein Autor über seine favourite Sprache nicht zugeben wird dass
sie kacke ist, dachte ich mir fast.
Dann arbeite ich weiter an meinem C und assem.
pic schrieb:> Unter "Documentation" gibt es was zu lesen.> auch hier ein Tutorial als Beispiel,> http://jallib.googlecode.com/files/Tutorial_Book_0.4.pdf> Aber eben nicht in Deutsch, hier eine Kurzanleitung:> http://www.fundf.net/usbnub/jaltutorial/> Abgesehen von den Standardlibs sowie Google Libs, gibt es noch einige> gute
Danke für die Einschätzung. -Ich glaube nichts für mich...
Wie siehts mit der Effizienz aus verbglichen mit C?
> Die Effizienz sowie Codegroesse ist verglichen zu C sehr gut.
Deswegen braucht das Single-LED-Blink-Beispiel aus dem
Http://www.fundf.net/usbnub/jaltutorial/ Tutorial (laut Screenshot) 4K.
Carl D. schrieb:>> Die Effizienz sowie Codegroesse ist verglichen zu C sehr gut.>> Deswegen braucht das Single-LED-Blink-Beispiel aus dem> Http://www.fundf.net/usbnub/jaltutorial/ Tutorial (laut Screenshot) 4K.
Scherzkeks, 92 Byte.
Das auf dem Bild gehoert zu etwas anderem.
root@box:$jalv2 sample/18lf14k50_blink.jal -s lib
jal 2.4n (compiled Jun 2 2010)
generating p-code
0 errors, 0 warnings
9174 tokens, 96582 chars; 1961 lines; 2 files
generating PIC code pass 1
generating PIC code pass 2
writing result
Code area: 92 of 16384 used (bytes)
Data area: 3 of 672 used
Software stack available: 669 bytes
Hardware stack depth 0 of 31
JAL lohnt sich auf jeden Fall, weil diese Sprache relativ leicht zu
lernen ist und ausserdem produziert sie ein assembler code welcher
kompatibel mit MPLAB ist. Man kann also teilweise oder alles in
assembler programieren when nötig. Und man kann auch nach der
Kompilierung den fertigen assembler code prüfen oder dort irgendwas
ändern. Ich kenne das nur von JAL. Deswegen ist es für Leute die in
assembler programieren sehr nützlich.
Nein, ich habe ein bischen mit anderen Compilern rumgespielt, das waren
die von der Mikroelektronika, also mikroC und mikrobasic. Ausserdem noch
Microchip C-compiler. JAL gefählt mir am besten, ich meine kein JALv2.
mikroC und mikrobasic sind auch sehr gut, aber wie gesagt, der assembler
code den sie generieren ist nicht vollständig.
Naja, eine Sprache, die nur für einen MC-Typ existiert, kann doch nicht
sonderlich verbreitet sein.
Ich persönlich halte C als kleinsten gemeinsamen Nenner für die
verschiedensten MCs am besten geeignet.
Ob 8051, AVR, ARM-Cortex usw., man kann seine einmal geschriebenen
Lib-Routinen leicht auf alle portieren.
Ed schrieb:> Doch, JAL ist verbreitet in dem DIY Sektor.
Naja, im Moment sehe ich hier genau einen, der diese Sprache
permanent lobt. Dafür musstest du einen Thread aus der Kiste holen,
der seit 2 Jahren keinen mehr interessiert hat. Seither beatmest du
die Threadleiche künstlich, indem du alle paar Tage einen neuen
Beitrag postest, damit sie nicht gleich wieder im Keller verschwindet.
Nun schau' dich mal im Forum um, wie viele Leute hier über C oder C++
schreiben … wer ist nun „weit verbreitet“?
An was würden die Leute wohl heute bei „DIY“ so als erstes denken?
Arduino. JAL? Oder doch C++?
Die Leute nutzen das, was innen gefählt oder verfügbar ist, mir gefählt
JAL und ich nutze es. Ich kenne mich damit aus und für mich ist es viel
einfacher als andere Sprachen.
Ed schrieb:> mir gefählt JAL und ich nutze es
Dagegen hat doch keiner was.
Es aber als den Stein der Weisen hinzustellen und ihm eine große
Verbreitung zuzuschreiben, geht ein wenig an der Realität vorbei,
wenn das Thema gerade mal aller zwei Jahre überhaupt auf der
Bildfläche erscheint.
Es war mal weit verbreitet, zu der Zeit als es noch nicht so wiele
Compuler für Pic MCs gab. Es war eine der ersten Hochsprachen für MCs.
Deswegen gibt's auch so vile Libralies dafür. Das ist doch der Beweiss
dafür, dass viele Leute JAL benutzt haben. Jetzt sieht es aber nicht so
aus.
Ed schrieb:> Es war mal weit verbreitet, zu der Zeit als es noch nicht so wiele> Compuler für Pic MCs gab.
Von der Beschreibung her fand ich die Sprache damals auch gut.
Als ich mir jedoch den generierten Assemblercode angesehen habe und
sah, dass der Compiler damals nichtmal constant folding gemacht hat,
sondern einen zur Compilezeit vollständig berechenbaren konstanten
Ausdruck dem armen Controller als Rechnung übergeholfen hat, habe ich
mich schnell wieder umgedreht. Closed source war es außerdem, was
ich nicht wirklich toll fand.
Da bin ich lieber zu den AVRs gegangen, für die es bereits einen ganz
gut benutzbaren GCC-Port gab.
Naja, das waren uralte Zeiten, jetzt ist alles ganz anders. Source code
ist dabei, und alles andere läuft viel besser. Einen der Vorteile von
JAL ist dass, es viele Libralies dafür gibt und die muss man nicht
mühevoll selber schreiben, ausserdem ist es nich so einfach für
Anfänger.
Ed schrieb:> Naja, das waren uralte Zeiten, jetzt ist alles ganz anders.
Ist nur leider wohl etwas zu spät. Wenn du überhaupt eine Chance
dafür haben willst, dann müsstest du wohl mindestens die diversen
Cortex-M-MCUs mit unterstützen.
Warum sollte man eine extra Programmiersprache nur für ein paar PICs
lernen wollen?
Da muss man nicht viel lernen, alle Hochsprachen sind sehr ähnlich.Die
Unterschiede sind im Detail, wenn man erst eine Sprache kann, dann kann
man sie alle.
Ed schrieb:> Da muss man nicht viel lernen, alle Hochsprachen sind sehr ähnlich.
Nein. Alle ähnlichen Hochsprachen sind sehr ähnlich und wenn man bloss
die kennt... Soll heissen, dass sich die recht bekannten imperativen
Sprachen ziemlich ähneln. Ausserhalb dieser Filterblase gibts aber auch
eine Welt und da gibts merkwürdige Sprachen wie beispielsweise Prolog.
Jörg W. schrieb:> Ist nur leider wohl etwas zu spät.
Besser zu spät als nie.
Jörg W. schrieb:> Wenn du überhaupt eine Chance> dafür haben willst, dann müsstest du wohl mindestens die diversen> Cortex-M-MCUs mit unterstützen.
Das denke ich nicht, und ich habe keine Ahnung von Cortex-M-MCUs. Das
wird nicht so einfach sie zu unterstützen, dafür müsste mann vermutlich
einen ganz neuen Compiler schreiben.
A.K du hast Recht, es gibt einige merkwürdige Sprachen, aber wer
programiert in Prolog? Tatsache ist, dass JAL so ähnlich wie Basic ist
und für Einsteiger gadacht ist.
Ed schrieb:> A.K du hast Recht, es gibt einige merkwürdige Sprachen, aber wer> programiert in Prolog?
Naja, Prolog liegt im Tiobe-Popularitätsindex von Programmiersprachen
immerhin auf Platz 33, und wo steht JAL?
https://www.tiobe.com/tiobe-index/
Nur mal so als Anmerkung ;-)
Yalu X. schrieb:> Naja, Prolog liegt im Tiobe-Popularitätsindex von Programmiersprachen> immerhin auf Platz 33, und wo steht JAL?
Ich habe mich auch gefragt, wofür man Prolog verwendet. Also ernsthaft
und leidlich häufig, um auf Platz 33 zu kommen. Neben den naheliegenden
Themen, die man schon vor zig Jahren nannte, fand ich eine Antwort
interessant:
- online support service for customers, etc
Und das ist schon ein recht dynamischer Markt. Wer also mal wieder in
einer Support-Schleife feststeckt... ;-)
Mich interessiert nicht wo JAL steht. Ich wollte euch nur mitteilen,
dass es so eine Sprache gibt. Aber die Leute heutzutage sind irgendwie
seltsam. Da gibt's also einen guten Compiler umsonst, aber niemand
braucht das, stattdessen kaufen sie einnen C compiler für 1000 Euro und
quällen sich damit. Und am Ende schaffen sie es nicht damit ein Program
zum Laufen zu bringen.
Ed schrieb:> Mich interessiert nicht wo JAL steht. Ich wollte euch nur mitteilen,> dass es so eine Sprache gibt. Aber die Leute heutzutage sind irgendwie> seltsam. Da gibt's also einen guten Compiler umsonst, aber niemand> braucht das, stattdessen kaufen sie einnen C compiler für 1000 Euro und> quällen sich damit. Und am Ende schaffen sie es nicht damit ein Program> zum Laufen zu bringen.
Aus welchen Jahrtausend erzählst du?
Schon mal was von GCC gehört? Hat den nicht sogar Microchip mit einem
PIC-Bankend versehen?
Er kann auf alle Fälle offiziell ARM, AVR, MIPS und alles was einem so
auf PCs, Servern und Mainframes über den Weg laufen kann.
Oder clang für alle ARMs.
Für ganz schräge Chips gibts den SDCC, ein Nichts im Vergleich zum GCC,
aber eben auch für i51, kleine PICs, STM8, ...
Alles für umme.
Wer als Amateur einen 1k€ Compiler kauft, ist selbst schuld.
Ed schrieb:> Von GCC habe ich gehört, aber den musst du erst zum laufen bringen, was> nicht so einfach ist.
Was jetzt?
Vom GCC gehört?
Oder davon, daß ein "sudo apt-get install avr-gcc" Probleme beim
Eintippen macht?
Notfalls ist der 4.9er Bestandteil des Arduino-Pakets. Das installiert
man unter Windows per Click. Man muß ja nicht mehr als den Compiler
benutzen.
Ich bau mir den GCC immer selber aus den Sourcen, aber ich lebe eben
seit 30Jahren von Software. Muß man aber nicht, denn es gibt auch für
Windows fertige Pakete.
Carl D. schrieb:> Schon mal was von GCC gehört? Hat den nicht sogar Microchip mit einem> PIC-Bankend versehen?
Und zwar für die 16-Bitter, dsPIC30 und Nachfolger. Für die PIC32 mit
MIPS Core gab es das Backend natürlich schon lange vorher. Hinzugefügt
hat Microchip eine Zwischenoptimierung, die zwecks Platzersparnis
identische Codehäppchen zusammenfasst.
Bei den 8-Bittern wär das nichts, das gibt GCC nicht wirklich her.
Ed schrieb:> aber den musst du erst zum laufen bringen, was nicht so einfach ist
Für mich auf jeden Fall einfacher als das Runterladen von JAL. Ich
war neugierig und wollte ihn mir mal ansehen, aber habe abgebrochen,
als ich dafür hätte irgendein Login benötigt.
Einen GCC lädt man sich einfach irgendwo im Web 'runter, ohne Logins.
Ob es ein guter Compiler ist oder nicht, könnte ich ohnehin nicht
entscheiden, da ich auf der einzigen davon unterstützten Plattform
nicht zu Hause bin.
Ed schrieb:> stattdessen kaufen sie einnen C compiler für 1000 Euro und quällen sich> damit. Und am Ende schaffen sie es nicht damit ein Program zum Laufen zu> bringen.
Deine Wahrnehmung der Welt scheint einer sehr eigenwilligen Filterung
zu unterliegen.
Jörg W. schrieb:> Ed schrieb:>> aber den musst du erst zum laufen bringen, was nicht so einfach ist>> Für mich auf jeden Fall einfacher als das Runterladen von JAL. Ich
Mmh, seine JAL-variante.
Das muss ja nichts schlechtes sein, ganz und garnicht.
Allerdings konnte man bislang nur lesen das aktuelle JALv2 ihm nicht
gefaellt und nichts tauge und sein neuer compiler einfach viel besser
sei.
> war neugierig und wollte ihn mir mal ansehen, aber habe abgebrochen,> als ich dafür hätte irgendein Login benötigt.>> Einen GCC lädt man sich einfach irgendwo im Web 'runter, ohne Logins.
Jal 0.4.50 wurde spaetestens 2003 aufgegeben
last modified 2001-07-12
http://www.voti.nl/jal/index_1.html
If you want to refer to this version of Jal I suggest you call it
"vintage Jal".
Von denjenigen welche das aufnahmen stammen die letzten
Aenderungen aus dem Jahr 2005 / jal-0.4.62
https://sourceforge.net/projects/jal/files/
Selbstverstaendlich steht es jedem frei auch 15Jahre alte Quellen
aufzugreifen und weiterzuentwickeln oder nach seinen Wuenschen zu
aendern.
Oben angefuehrte Version 0.4.90 war mir ebenfalls nicht moeglich zu
laden.
Die Anzahl der Nutzer dieser Variante duerfte sich auf Eins
beschraenken.
----
Jalv2 gibts jdf. wohl so etwa seit zehn Jahren, ~2007
jetzt hier beheimatet incl. jallib
http://justanotherlanguage.org/
Viel gibts da nicht denn eigentlich hatten sie ihren Platz bei google.
Oder direkt bei http://www.casadeyork.com/jalv2/
und die jallib bei https://github.com/jallib/jallib
Ich hab's mir auch mal angeschaut. Auf den ersten Blick macht auf mich
JAL keinen schlechten Eindruck. Die Sprache ist einfach gehalten und
scheint etwas von C und Pascal inspiriert worden zu sein.
Ein paar Problemchen beim Bauen hatte auch ich, aber am Ende konnte ich
immerhin das jal-Executable erzeugen. Die Libs interessieren mich im
Moment noch nicht.
Ein paar Informationen könnten den potentiellen Anwender aber von
Interesse sein:
- Worin liegen die Unterschiede zwischen dem Ur-JAL, JALv2 und
JAL_0.4.90?
- Wo findet man die Dokumentation zur Sprache und zum Compiler?
- In JAL_notes.txt bin ich auf folgenden Abschnitt gestoßen:
1
Calculations
2
3
Use as many parenthesis, so that only operations on 2 operands are calculated.
4
5
For instance
6
7
A = B - C - D
8
9
is calculated as
10
11
A = B - ( C - D )
12
13
so the correct way to write it is
14
15
A = ( B - C ) - D or A = B - ( C + D )
Ist das wirklich so? Wenn ja, wird das noch geändert?
Das sind viele Fragen und die sind nicht so einfach zu beantworten.
Wenn ihr die Jal-Executable selber bauen wollt, dann könnt ihr dazu
Dev-C++ benutzen. Die Unterschiede zwischen dem Ur-JAL und JAL_0.4.90
sind in der info.txt. Es sind sehr viele Unterschiede zu Ur-JAL.
JAL_0.4.90 ist fast wie JALv2 aber ohne 32 bit Unterstützung. Es hat
also nur 16bit Unterstützung, und die ist auch noch nicht ganz fertig.