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.
:
Bearbeitet durch User
Hompage ist diese hier: http://www.casadeyork.com/jalv2/ 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 Libs, die muss man aber selber suchen, aber fuer diese darf man kein Anfaenger mehr sein.
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. Sollte aber nicht wirklich ein Entscheidungsgrund sein.
> 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
1 | -- ------------------------------------------------------ |
2 | -- Title: Blink-a-led of the Microchip pic18lf14k50 |
3 | -- |
4 | -- Author: Rob Hamerling, Copyright (c) 2008..2010, all rights reserved. |
5 | -- |
6 | -- Adapted-by: |
7 | -- |
8 | -- Compiler: 2.4n |
9 | -- |
10 | -- This file is part of jallib (http://jallib.googlecode.com) |
11 | -- Released under the BSD license (http://www.opensource.org/licenses/bsd-license.php) |
12 | -- |
13 | -- Description: |
14 | -- Sample blink-a-led program for Microchip PIC18lf14k50. |
15 | -- |
16 | -- Sources: |
17 | -- |
18 | -- Notes: |
19 | -- - File creation date/time: 7 Jul 2010 11:15:31. |
20 | -- |
21 | -- ------------------------------------------------------ |
22 | -- |
23 | include 18lf14k50 -- target PICmicro |
24 | -- |
25 | -- This program assumes that a 20 MHz resonator or crystal |
26 | -- is connected to pins OSC1 and OSC2. |
27 | -- (unspecified configuration bits may cause a different frequency!)( |
28 | pragma target clock 20_000_000 -- oscillator frequency |
29 | -- configuration memory settings (fuses) |
30 | pragma target OSC HS -- HS crystal or resonator |
31 | pragma target PLLEN P1 -- PLL off |
32 | pragma target CPUDIV P2 -- no cycle divisor |
33 | pragma target WDT disabled -- no watchdog |
34 | pragma target XINST disabled -- not supported by JalV2 |
35 | pragma target LVP disabled -- no Low Voltage Programming |
36 | pragma target MCLR external -- reset externally |
37 | -- These configuration bit settings are only a selection, sufficient for |
38 | -- this program, but other programs may need more or different settings. |
39 | -- |
40 | enable_digital_io() -- make all pins digital I/O |
41 | -- |
42 | -- Specify the pin to which the LED (with serial resistor!) is connected: |
43 | alias led is pin_A0 |
44 | pin_A0_direction = output |
45 | -- |
46 | forever loop |
47 | led = on |
48 | _usec_delay(250_000) |
49 | led = off |
50 | _usec_delay(250_000) |
51 | end loop |
52 | -- |
Jal ist ein guter compiler, aber nicht JALv2 Hier ist die neuste Version: https://www.4shared.com/folder/feM_GEoe/_online.html
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.
Doch, JAL ist verbreitet in dem DIY Sektor. Das ist weil es einfacher als C ist und dennoch viele Möglichkeiten bietet.
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++?
:
Bearbeitet durch Moderator
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... ;-)
:
Bearbeitet durch User
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.
Von GCC habe ich gehört, aber den musst du erst zum laufen bringen, was nicht so einfach ist.
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.
:
Bearbeitet durch User
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
Ed schrieb: > Jal ist ein guter compiler, aber nicht JALv2 > Hier ist die neuste Version: > > https://www.4shared.com/folder/feM_GEoe/_online.html Lade das Teil doch einfach mal hier zu mikrocontroller.net hoch.
Ihr könnt nicht mal eine Datei runterladen. O.K hier ist es:
Es ist kein bootstrap oder autogen.sh-Script dabei. Wenn ich autoconf/automake mit der Hand aufrufe, bekomme ich:
1 | % automake --add-missing |
2 | configure.ac:36: installing './compile' |
3 | configure.ac:10: installing './install-sh' |
4 | configure.ac:10: installing './missing' |
5 | Makefile.am: installing './INSTALL' |
6 | Makefile.am: error: required file './NEWS' not found |
7 | Makefile.am: error: required file './README' not found |
8 | Makefile.am: error: required file './AUTHORS' not found |
9 | Makefile.am: error: required file './ChangeLog' not found |
10 | Makefile.am: installing './COPYING' using GNU General Public License v3 file |
11 | Makefile.am: Consider adding the COPYING file to the version control system |
12 | Makefile.am: for your code, to avoid questions about which license your project uses |
13 | configure.ac:115: error: required file 'lib/Makefile.in' not found |
14 | jal/Makefile.am: installing './depcomp' |
15 | jal/Makefile.am:3: warning: 'CPPFLAGS' is a user variable, you should not override it; |
16 | jal/Makefile.am:3: use 'AM_CPPFLAGS' instead |
Die ersten Dateien wären ja kein Problem, aber lib/Makefile.in ist ein Showstopper. (Mit einem win32-Binary kann bzw. will ich nichts anfangen.)
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.