LINUX.ORG.RU

Что нужно добавить в C?

 


0

5

Расскажите, что бы вы хотели добавить в си? Только то, что реально можно добавить, не делая при этом новый язык. Просто фичи, которых не хватает.

Или покритикуйте мой список.

  • Константы. #define - препроцессор, const не работает полноценно в compile-time, enum только для целых и вообще для другого .
  • Лямбды (анонимные функции) - для удобства коллбеков. Можно без замыканий, т. к. они много скрывают.
  • Модули, если возможно. Для изоляции единиц трансляции.
  • Интроспекция (typeof, хотя бы) - для обобщенного программирования.
  • Более развитая макросистема - для того же. Например, возможность макросы раскрывать в директивы препроцессора.
  • Пространства имен, чистые функции, switch по составным типам, case с диапазоном - для сокращения кода.
  • Аналоги volatile и restrict с более точным контролем - для микрооптимизации.
  • Доступ к стеку вызовов, goto между функциями - для трюков типа трамплинов.
  • В стандартной библиотеке - строки, контейнеры, foreach, большие числа. Возможно, сокеты.
★★★★
Ответ на: комментарий от no-such-file

тык ос и яп не отдельные сущьности а сущности возникающие при анализе математического обеспечения эвм.

вот тот же Unix&C по факту ОС это сборщик муссора в том числе ,а С- программа даже не обязана ( и у патриархов сплош и рядом так код и написан) free-шеть mallocнутую память С- программе достаточно свялится , а ОС похоронит трупик и вернёт всё в биогеоценоз.

поэтому как и модулю а сей нет штатного сборщика муссора.

а теперь вопрос:

а почему в С есть автоматические переменые и стек встроин в язык - это ведь излишество?

qulinxao ★★☆
()
Ответ на: комментарий от qulinxao

а почему в С есть автоматические переменые и стек встроин в язык - это ведь излишество?

Стек не встроен в язык. То что автоматические переменные реализованы через стек, отражает популярную архитектуру эвм. Но вообще, теоретически, можно представить реализацию таких переменных и через сборщик мусора.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

ну зачем же так грубо то?

в С гарантируется поддержка языком рекурсивных вызовов функций - что согласись излишество и баловство .

qulinxao ★★☆
()
Ответ на: комментарий от qulinxao

в С гарантируется поддержка языком рекурсивных вызовов функций - что согласись излишество и баловство .

Это, конечно, сарказм.

Deleted
()
Ответ на: комментарий от Deleted

не уже ли?

фортран с коммон блоками и вызовом процедуры(без ПАРАМЕТРОВ!!!) с сохранением адресса возврата в специальной (затираемой ежель ...) переменной - вот оно самое.

зы. за линк на блог благодарю , очень полезный.

qulinxao ★★☆
()
Ответ на: комментарий от Deleted

а если серьёзно , то как давно заметил тот же Оруэл ( а он видимо просто был в курсе мыслей приведшей к гипотезе Уорфа-Спарфа?) язык определяет сознание.

вот такаая рефлексия : давно когда учился и нас ознакамливали с рекурсией , я был несколько удивлён от чего соученики(сокурсники) буксуют - и тут достаточно не давно повторно наткнулся на двухтомник

Ф. Л. Бауэр, Г. Гооз - Информатика. Вводный курс. Часть 1 и 2

а так получилось , что не очень понимая но я его пролистал/прочитал в возрасте 12-14 лет.

может поэтому потом когда в c#(это было 3 или даже 2.5ой дотнет 2005-2006 года когда вроде анонимные функции уже были , а линка и прочих асинков ещё нет) опытным путём сотворил замыкания - достаточно долго не мог понять механику(т.е как непосредственно работает рантайм) стоящую за наблюдаемым поведением - пока не увидел описание чикен-схема где расказано про стек-кактус

а вот затем наткнулся на вот такое археологическое : http://funcall.blogspot.ru/2011/02/no-stack-no-problem.html

после такого понимая, что мало, что ново в подлунном мире больше начинаеш ценить школьный курс геометрии.

qulinxao ★★☆
()
Ответ на: комментарий от qulinxao

поддержка языком рекурсивных вызовов функций

Не обязательно через стек.

что согласись излишество и баловство

Дело вкуса.

no-such-file ★★★★★
()
Ответ на: комментарий от Deleted

А ты почитай JPL Coding Guidelines.

anonymous
()
Ответ на: комментарий от qulinxao

вот тот же Unix&C по факту ОС это сборщик муссора в том числе ,а С- программа даже не обязана ( и у патриархов сплош и рядом так код и написан) free-шеть mallocнутую память С- программе достаточно свялится , а ОС похоронит трупик и вернёт всё в биогеоценоз.

qulinxao бесподобен.

anonymous
()
Ответ на: комментарий от qulinxao

вот тот же Unix&C по факту ОС это сборщик муссора в том числе ,а С- программа даже не обязана ( и у патриархов сплош и рядом так код и написан) free-шеть mallocнутую память С- программе достаточно свялится , а ОС похоронит трупик и вернёт всё в биогеоценоз.

дык это везде так.

emulek
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.