1

Тема: Ключові слова в мовах програмування

В мовах програмування є зарезервовані ключові слова.
Стикався з тим що майже в усіх підручниках з програмування є перелік, зазвичай у вигляді таблиці. Але в жодному не зустрічав тлумачення тих самих зарезервованих слів. Принаймні в підручниках з мов C/C++ та Java.
Далі по тексту підручників деякі ключові пояснюються в певних прикладах, але деякі і не в самому переліку. Тобто для розуміння тре гуглити...
Це така загальна практика викладання, чи то автори книжок самі не розуміють сенс тих слів?

2 Востаннє редагувалося koala (09.07.2021 11:50:17)

Re: Ключові слова в мовах програмування

Це загальна практика, яка має свою логіку.
Ключові слова і їхнє використання роз'яснюється у відповідних розділах. Але, на жаль:
- частина ключових слів не робить нічого - вони або лишаються зарезервованими з історичних причин (сенс у використанні уже відпав, як у register в C), або були зарезервовані на майбутнє (яке може ніколи не настати, як для goto в Java);
- частина ключових слів має різне значення в різних контекстах (скажімо, static для глобальної змінної і для локальної в C чи else для if і для try в Python), і одним коротким поясненням не відбудешся;
- деякі ключові слова змінюють своє призначення (auto в C++).
Список ключових слів призначений лише для одного: виявити збіг з ідентифікатором, і цю функцію він виконує добре.

P.S. Я виходив з того, що під "в жодному не зустрічав тлумачення тих самих зарезервованих слів" ви мали на увазі "не зустрічав тлумачення одразу після списку". Звісно, в будь-якому підручнику є тлумачення більшості зарезервованих слів.

Подякували: FakiNyan, Droid 77, leofun01, bvn4

3

Re: Ключові слова в мовах програмування

Але в жодному не зустрічав тлумачення тих самих зарезервованих слів. Принаймні в підручниках з мов ... Java.

Ви серйозно?  :)  Сама простенька книга про мову Java  (перша, яку я прочитав) - Java For Dummies (остання сторінка)

Подякували: FakiNyan1

4

Re: Ключові слова в мовах програмування

Остання сторінка зазвичай реклама або нотатки  :D
А якщо Ви мали на увазі індекс то це не зовсім те про що писав. Згоден індекс, якщо він є в підручнику допоможе, але не завжди.

Дякую пан koala, приблизно так собі це і уявляв. Та спитав про всяк випадок, раптом хтось знає якийсь довідник.

5

Re: Ключові слова в мовах програмування

Droid 77 написав:

Остання сторінка зазвичай реклама або нотатки  :D

Що тут можу сказати, ну якщо Вам так зручно то можете вважати, що там реклама :) Але якимось дивом в книзі, яку я тримав в руках на останній сторінці був перелік ключових слів та короткий опис (саме короткий - декілька слів)  :)
Ну й звісно, що більш детально ніхто в умовній табличці не буде робити опис. Тут цілком погоджуюся з паном koala

koala написав:

Ключові слова і їхнє використання роз'яснюється у відповідних розділах.

Тому писати ось таке:

Droid 77 написав:

чи то автори книжок самі не розуміють сенс тих слів?

... дивно  :)

Подякували: leofun011

6 Востаннє редагувалося ReAl (10.07.2021 01:22:35)

Re: Ключові слова в мовах програмування

koala написав:

або лишаються зарезервованими з історичних причин (сенс у використанні уже відпав, як у register в C)

Ну як сказати… Тут теж дещо поїхало призначення, але головне залишилося — команда розмістити змінну в регістрі.
(для AVR цим користувався, знайомий користувався для MSP430)
(імена змінним можна давати які зручно, тут мені ліньки було щось схоже на нормальне видумувати)

/* global, program-wide _register_ variables */
register int r6 asm("r6");
register int r7 asm("r7");

int foo(int a, int b)
{
    r6 = a + b;
    if (r6 > 5) return a - b;
    return 0;
}

int baa(int a, int b)
{
    r7 = a + b;
    if (r7 > 5) return a - b;
    return 0;
}

/opt/gcc-arm-8.3-2019.03-x86_64-arm-eabi/bin/arm-eabi-gcc -mthumb -mcpu=cortex-m3 -O2 -S -ffixed-r6 -ffixed-r7 rg.c

foo:
    adds    r3, r0, r1
    mov    r6, r3
    cmp    r6, #5
    ite    gt
    subgt    r0, r0, r1
    movle    r0, #0
    bx    lr

baa:
    adds    r3, r0, r1
    mov    r7, r3
    cmp    r7, #5
    ite    gt
    subgt    r0, r0, r1
    movle    r0, #0
    bx    lr
Подякували: leofun011

7

Re: Ключові слова в мовах програмування

зарезервовані на майбутнє (яке може ніколи не настати, як для goto в Java);

Маю підозру, реалізація goto в ній і не планувалась ніколи. Фактичний результат зарезервованості цього слова — більш осмислені повідомлення про помилку, коли goto випадково з'являється в коді, переписаному з інших мов.

8

Re: Ключові слова в мовах програмування

Та от Ґослінґ каже, що планувалося, але потім викинули, ще до першого релізу.

Подякували: leofun011

9

Re: Ключові слова в мовах програмування

До речі знайшов підручник з тлумаченням keywords С/С++ в окремому параграфі, параграф 5.
Programmer's Reference C/C++, 3th Edition, 2002 edition, McGraw-Hill/Osborne, Author Herbert Schildt
Що правда освітлені стандарти С89, С99, та про стандарт плюсів якось абстрактно (згідно стандарту на поточний час).