Was könnt ihr über "JAL" sagen? Ist die Sprache weit verbreitet?

Gast #4247171
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
#4247184
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.
Gast #4247482
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.
Gast #4247491
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?
Gast #4248165
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
--
Gast #5030568
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.
Gast #5033977
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.
#5036158
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.
Moderator Persönliche Seite #5036604
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++?
Gast #5036625
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.
Moderator Persönliche Seite #5036635
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.
Gast #5036663
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.
#5036803
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.
Gast #5036809
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.
#5037097
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... ;-)
Gast #5037419
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.
#5037468
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.
#5037488
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.
#5037508
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.
Moderator Persönliche Seite #5037909
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.
Gast #5038008
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
Moderator Persönliche Seite #5038483
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.)
Moderator #5038508
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?
Gast #5038565
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren