Forum: Compiler & IDEs Was könnt ihr über "JAL" sagen? Ist die Sprache weit verbreitet?


von Nukammer (Gast)


Lesenswert?

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

von Pic T. (pic)


Lesenswert?

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
von pic (Gast)


Lesenswert?

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.

von Nukammer (Gast)


Lesenswert?

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.

von Nukammer (Gast)


Lesenswert?

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?

von pic (Gast)


Lesenswert?

Die Effizienz sowie Codegroesse ist verglichen zu C sehr gut.
Sollte aber nicht wirklich ein Entscheidungsgrund sein.

von Carl D. (jcw2)


Lesenswert?

> 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.

von jallali (Gast)


Lesenswert?

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
--

von Ed (Gast)


Lesenswert?

Jal ist ein guter compiler, aber nicht JALv2
Hier ist die neuste Version:

https://www.4shared.com/folder/feM_GEoe/_online.html

von Ed (Gast)


Lesenswert?

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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ed schrieb:
> Ich kenne das nur von JAL.

Dann kennst du vermutlich auch nur JAL.

von Ed (Gast)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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.

von Ed (Gast)


Lesenswert?

Doch, JAL ist verbreitet in dem DIY Sektor. Das ist weil es einfacher 
als C ist und dennoch viele Möglichkeiten bietet.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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
von Ed (Gast)


Lesenswert?

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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von Ed (Gast)


Lesenswert?

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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von Ed (Gast)


Lesenswert?

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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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?

von Ed (Gast)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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.

von Ed (Gast)


Lesenswert?

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.

von Ed (Gast)


Lesenswert?

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.

von Yalu X. (yalu) (Moderator)


Lesenswert?

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 ;-)

von (prx) A. K. (prx)


Lesenswert?

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
von Ed (Gast)


Lesenswert?

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.

von Carl D. (jcw2)


Lesenswert?

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 Ed (Gast)


Lesenswert?

Von GCC habe ich gehört, aber den musst du erst zum laufen bringen, was 
nicht so einfach ist.

von Carl D. (jcw2)


Lesenswert?

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
von (prx) A. K. (prx)


Lesenswert?

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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von relative-value (Gast)


Lesenswert?

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

von relative-value (Gast)


Lesenswert?

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.

von Ed (Gast)


Angehängte Dateien:

Lesenswert?

Ihr könnt nicht mal eine Datei runterladen.
O.K hier ist es:

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.)

von Yalu X. (yalu) (Moderator)


Lesenswert?

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?

von Ed (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.