Другие языки программирования и технологии

Язык программирования с Си-подобным синтаксисом, не объектно-ориентированный

Допускающий вставки на ассемблере, без проблемы накопления мусора в памяти и без прямой возможности её контроля (конструкция типа "*(1, 2)" должна выдавать 3, а не пытаться постучаться до некоего блока памяти) . Ищу.
А допустить, что такого нет на свете (кому он нафиг нужен) разве нельзя? Больше всего понравилась 1е желание - синтаксиса.
Руслан Кушнаренко
Руслан Кушнаренко
63 381
Лучший ответ
Валера Столяров Честно говоря, это почти единственная причина, почему я сразу не выбрал лисп.
Руслан Кушнаренко вобще-то в си шарпе это можно, но уж очень смахивает на извращение. Кроме того, асм вставки ломают оптимизацию
Т. е. с возможностью прямого контроля памяти через ассемблер (а ты как думал) , но без возможности прямого контроля средствами языка? И без ООП? А зачем такое вообще надо?
Валера Столяров Чтоб я сам такой "*(1, 2)" конструкцией в прямой контроль памяти не влез. Ну или чтоб трудно было случайно влезть.
Здесь ищешь? Серьёзно? Совсем ку-ку?
Валера Столяров Ну а что, на гугл-ответах такой вопрос как-то совсем стрёмно задавать.
Перл?
Валера Столяров Для меня перл - это эзотерика. К тому же, какой там синтаксис как у си?
Для того чтобы не было мусора в памяти в языке С++ используют умные указатели, либо встроенные либо из библиотеки boost- это такие указатели, которые сами освобождают выделенную память если она больше не используется. На С++ кстати можно писать не используя объекты. Но объекты это на самом деле удобно, вы быстро научитесь. Вот допустим вы хотите реализовать сложение и вычитание геометрических векторов. Для этого в С вам понадобиться структура struct { float x,y,z; } и функции для сложения и вычитания. А в С++ вам достаточно создать класс и поместить туда переменные и функции, которые будут складывать векторы и возвращать вектор - так гораздо удобнее, т. к. в С++ можно заменить оператор + и тогда вы сможете писать vector3=vector1+vector2 вместо vecto3=myfunctosumvectors(vector1,vector2).

Если вы пишете на С, то перейти на С++ будет несложно.

Из всего С++ вам по большому счёту на данный момент нужны только умные указатели из библиотеки boost либо из стандартного С++11. И всё. Всё остальное можете писать почти полностью как в С.

В С++ есть много строенных структур данных, таких как vector, string, hash map и т. п. - они есть в STL и в boost это ускоряет разработку по сравнению с С.

Проще всего изучить С++ по Шилдту или Прата. Прата должен быть как раз по более современному стандарту С++11. Страуструпа не советую для начинающего.

Из современных компилируемых языков люди сейчас смотрят на Swift, D, Rust.

Swift - для Apple на данный момент, мусора в памяти нет, так как используется подсчет ссылок как в Objective C.

Два других не так популярны как С++, но с памятью там тоже все просто, т. к. есть сборщик мусора.
А чем Си не угодил?
Алексей Скв
Алексей Скв
1 837

Похожие вопросы