Arduino language 1

Are there any other languages, except of English, which we can use to program an Arduino board?

You can not program an Arduino with English. You need to use a programming language (ie. C++)

1 Like

You can program the Arduino in any written/spoken language that you like when it comes to user input/output text, comments and variable names but will still need to use C++ as the programming language

2 Likes

You may find the language of your choice on this forum in the international section…

There you can ask questions in your preferred language and may find support that is more appropriate to your needs.

1 Like

I think the OP was asking if there are non English based programming languages...
Is that right @krisi1905?

1 Like

Thank you very much, I appreciate your answers! :grinning:

Yes, exactly, but there's no problem.

1 Like

See reply #2

1 Like

You can use #define statements to use an alternate you language feel to many of the Arduino function calls that have English words in them.

You could make a whole page of these and include them in a tab that accompanies each code you write.

3 Likes

That would really complicate the work of potential helpers to a point where I am not willing to go.
It might also hamper compiler warnings on reuse of reserved words...

2 Likes

based on @Grumpy_Mike I just invented my own "programing language" - in the words of Arduino :wink:

/*
  NOIASCA German Programming Language

  https://forum.arduino.cc/t/arduino-language-1/1029836/
  
  or demonstrate 
  - the absurdity to call something "Arduino Programming Language"
*/

// start of "NOIASCA German Programming Language"
#define KONFIGURATION setup
#define KONST const
#define OKTET byte
#define SCHLEIFE loop
#define ANSCHLUSSMODUS pinMode
#define AUSGANG OUTPUT
#define HOCH HIGH
#define NIEDRIG LOW
#define AUSGANGSCHREIBEN digitalWrite
#define BLOCKIEREN delay
#define UNDEFINIERT void
// end of "NOIASCA German Programming Language"

KONST OKTET anschluss {13};

// the setup function runs once when you press reset or power the board
UNDEFINIERT KONFIGURATION() {
  // initialize digital pin LED_BUILTIN as an output.
  ANSCHLUSSMODUS(anschluss, AUSGANG);
}

// the loop function runs over and over again forever
UNDEFINIERT SCHLEIFE() {
  AUSGANGSCHREIBEN(anschluss, HOCH);      // turn the LED on (HIGH is the voltage level)
  BLOCKIEREN(1000);                       // wait for a second
  AUSGANGSCHREIBEN(anschluss, NIEDRIG);   // turn the LED off by making the voltage LOW
  BLOCKIEREN(1000);                       // wait for a second
}
2 Likes
#define kangaroo Serial
#define openPouch begin
#define joeySays print

void setup()
{
  kangaroo.openPouch(115200);
  kangaroo.joeySays("Hello Mum");
}

void loop()
{
}
6 Likes

That language is called Strine++ :rofl: :rofl: :australia:

Not if they posted in their own native language section.

Are you suggesting that there might be some words of an other language that are the same as a reserved word? That is a long shot, especially when you consider @noiasca 's example where all the redefined words were in uppercase. Are there any uppercase reserved words in C/C++ ? I doubt it.

This is relatively easy since you use languages with latin charset. But what about arabic or cyrillic ? Can arduino ide use reserved words in non-latin charset?

1 Like

German has some Ä Ö Ü ä ö ü ß

a multibyte UTF-8 character in #define will cause different errors or warnings.

// #define Ă–STERREICH "will cause error: macro names must be identifiers"
// #define NIEDERĂ–STERREICH "will cause warning: ISO C++11 requires whitespace after the macro name"

had one stray error during testing, but can't reproduce it now...

Sadly or not, depending on where you're from, English is the lingua franca of the programming world.

The Arduino project was started in Italy, and is programmed in C++, which has its roots in C.
C was developed in the US, and has its roots in B, which has its roots in BCPL, and CPL, developed at University of Cambridge. As you can imagine, the reserved words ended up being based in English.

Interestingly, Python uses English, even though the original developer is Dutch.

There is a German version of Python, and Micropython can be used on microcontrollers. Don't know how portable this would be to micros.

Well, I guess the compiler will not complain if you redefine your alias for reserved words later on...
Whereas you are not allowed to redefine reserved words I guess (never tried).
I guess
#define for while
is not allowed...
Whereas
#define voor_alle for
#define voor_alle while
would be allowed (compiler probably will warn about redefinition)

I very much doubt that. The preprocessor shouldn't care about the content. It's just a string manipulator.

You are right....
I checked. No warnings whatshowever.
#define really allows you to do very stupid things.
Like:
#define for while
If you hide this somewhere in an included #include, even JohnWasser will not easily find out what is wrong...

1 Like