Kirjoittaja Aihe: Ohjelmointikielistä  (Luettu 1824 kertaa)

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Ohjelmointikielistä
« : 04.04.20 - klo:11.35 »
Seuraava, joka kehittää taas uuden ohjelmointikielen voisi tehdä mukaan yhden fiitserin

Kun yhteenkuuluvat rakenteet paketoidaan sulkumerkkien sisään, voisi näihin sulkumerkkeihin lisätä myös tunnisteen. Vaikkapa vain numeron tai merkkisarjan, joka noudattaisi muuttujien nimeämiskäytäntöjä.
Fiksu IDE pystyisi ylläpitämään numerointia käsin koskematta ja ilmoittamaan virheistä lennossa.

Ohjelman kasvaessa ja sisäkkäisten rakenteiden määrän kasvaessa on vaikea enää tunnistaa, mikä loppusulku liittyy mihinkin alkusulkuun.

Ehdotukseni esimerkin muodossa:

void setup() asetukset{
       WiFi.begin()
}asetukset
for( ; ; ) 1{
    for( ; ; ) 2a{ plapla }2a
    for ( ; ; ) 3{
            plaplapla
    }3
}1

Joku jo ehdottikin, että sulut merkittäisiin väreillä. No ei kiitos näin värisokeiden puolesta. Eikä kukaan muutenkaan erota kymmeniä värejä toisistaan. Ei varsinkaan mv-laserilla paperille tulostettuna.
Joku hehkutti, että monet IDE:t korostavat loppusulun, kun vie kursorin alkusulun päälle. Ei ole tainnut ko henkilö koskaan kirjoittaa yhtä kuvaruutua pidempää ohjelmaa.
Sulkumerkkien korvaaminen sisennyksillä on suoraan p*stä. Se toimii kyllä, jos editoit koodia koko ajan samalla editorilla samassa koneessa, mutta tuo ongelmia koneelta toisella vaihtaessa.
« Viimeksi muokattu: 04.04.20 - klo:11.38 kirjoittanut Mistofelees »

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11433
    • Profiili
    • Tomin kotisivut
Vs: Ohjelmointikielistä
« Vastaus #1 : 04.04.20 - klo:14.38 »
Eli jonkinlainen pakollinen kommentointi? Tuon varmistaminen onnistuisi varmasti jollain staattisella analyysillakin. Tämähän ei suuresti eroa tuosta omasta esimerkistäsi:
Koodia: [Valitse]
void setup() /* asetukset */ {
       WiFi.begin()
} /* asetukset */
for( ; ; ) /* 1 */ {
    for( ; ; ) /* 2a */ { plapla } /* 2a */
    for ( ; ; ) /* 3 */ {
            plaplapla
    } /* 3 */
} /* 1 */

Tai vähän kevennettynä:
Koodia: [Valitse]
void setup() { // asetukset
       WiFi.begin()
} // asetukset
for( ; ; ) { // 3
    for( ; ; ) { plapla } // 2a
    for ( ; ; ) { // 3
            plaplapla
    } // 3
} // 1

Muokkaus: lisätty pari unohtunutta välilyöntiä tyylin vuoksi
« Viimeksi muokattu: 04.04.20 - klo:15.10 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

SuperOscar

  • Käyttäjä
  • Viestejä: 3993
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Ohjelmointikielistä
« Vastaus #2 : 04.04.20 - klo:15.07 »
Eikös Adassa vähän tuollainen systeemi ollutkin? Tosin se ei käyttänyt sulkuja vaan Pascalin tapaan avainsanoja begin ja end, mutta niiden perään piti (tai sai, en muista) panna toisen sanan, jolla osoitti, minkä loppu on kyseessä (esim. begin loopend loop).

Rehellisesti pidän itse enemmän Pythonista, jossa pakollinen sisennys osoittaa tämän aivan riittävän selvästi ilman tyhmiä sulkujakin.
pöytäkone 1, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; NUC: openSUSE Leap 15.5; RPi 1: FreeBSD 13.2-RELEASE; RPi 2: LibreELEC 11

JaniAlander

  • Käyttäjä / moderaattori+
  • Viestejä: 3319
    • Profiili
Vs: Ohjelmointikielistä
« Vastaus #3 : 05.04.20 - klo:16.09 »
Pythonin sisennys on ihan jees niin kauan kuin editori konsistentisti tuottaa halutun sisennyksen. Sitten kun ei tuota alkaa käämit kärytä.
Core i5-9400F 2.9ghz 32GB Ram, Nvidia RTX2060 Kubuntu 22.04-64bit, Windows 10 Pro 64-bit Samsung Series 5, AMD A-6 2.1 GHz 4 Gt Ram, Ubuntu 18.04 64-bit.
Lenovo T60 Core2Duo 2GB Ram Ati Mobility Radeon 128 MB Ubuntu Mate 16.04-64bit
Commodore Amiga 500 1MB Ram.

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: Ohjelmointikielistä
« Vastaus #4 : 05.04.20 - klo:19.09 »
Pythonin sisennys on ihan jees niin kauan kuin editori konsistentisti tuottaa halutun sisennyksen. Sitten kun ei tuota alkaa käämit kärytä.

Eikös sama päde kaikkiin ohjelmointikieliin? Täytyyhän koodi joka tapauksessa sisentää yhdenmukaisesti, jotta siitä saa jotain selvää seuraavallakin lukukerralla.  :)

JaniAlander

  • Käyttäjä / moderaattori+
  • Viestejä: 3319
    • Profiili
Vs: Ohjelmointikielistä
« Vastaus #5 : 06.04.20 - klo:04.52 »
Mulla oli muutaman editorin kanssa vääntöä, kun ei se sisennyksen tuotantotapa pysynyt yhtenäisenä. Tuotti kivasti neljää välilyöntiä tai yhtä tabbia, ja kääntäjähän ei moisesta pidä. Siinä sitä sitten saa etsiskellä jollei pistä erikoismerkit päälle näkymää, että missäs kaikkialla mahtaa olla ryttyileviä sisennyksiä. Sitten päädyin käyttämään IDLE:n editoria.
Core i5-9400F 2.9ghz 32GB Ram, Nvidia RTX2060 Kubuntu 22.04-64bit, Windows 10 Pro 64-bit Samsung Series 5, AMD A-6 2.1 GHz 4 Gt Ram, Ubuntu 18.04 64-bit.
Lenovo T60 Core2Duo 2GB Ram Ati Mobility Radeon 128 MB Ubuntu Mate 16.04-64bit
Commodore Amiga 500 1MB Ram.