Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2011, 18:50   #51
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от anyx Посмотреть сообщение
По-вашему, в C# вообще возможно добавить ещё что-то? «C# уверенно движется к тому, чтобы отобрать у крестов (С++) лавры самого сложного и уродливого языка.» - говорит Лурк
Лурк - не есть авторитет и я с этим выражением не согласен.
Цитата:
Сообщение от anyx Посмотреть сообщение
Советую не опираться на привычные формы и стандарты языков программирования (привычные по костыльным уродствам вроде С++).
В этом просто нет смысла, т.к. иначе появится тот же D и компания.
Цитата:
Сообщение от anyx Посмотреть сообщение
Почитайте о принципиально других парадигмах программирования (функциональная, автоматная).
Без этого и не стоит начинать писать свой язык, т.к. велика будет вероятность сделать убогий аналог уже существующего подхода с наличием костылей, которые кто-то уже ловко обошел. При создании нового, нужно опираться на опыт предшественников. Прошел век первопроходцев.
Цитата:
Сообщение от anyx Посмотреть сообщение
Не забывайте, что за параллельными вычислениями будущее, а их реализация возможна и без использования потоками общих данных (например, модель акторов, гуглите Erlang).
Я бы даже сказал: реализация желательна без использования общих данных. Там, где есть общие данные, всплывают аномалии, присущие параллельным вычислениям. Гонки, дедлоки,... ну, а блокировки просто сводят на нет весь параллелизм.
Цитата:
Сообщение от anyx Посмотреть сообщение
Так для биндинга к Сишной либе, использующей указатели, используется код на Си.
Это как? А как биндиться к коду на си, который используется для биндинга с кодом на си, который...?
Используются просто бинарно-совместимые типы данных и соответствующие механизмы вызовов функций.
Делать что-то своё и плевать на dll/so глупо, т.е. для биндинга с библиотеками нужно реализовать работу с dll и тогда будет безразличен язык, на котором написана нужная библиотека.
Цитата:
Сообщение от anyx Посмотреть сообщение
Тут нужно предусмотреть возможность интеграции кода на вашем языке с кодом на Си. Это не будет проблемой, если вы компилируете в нативный код.
Имеется ввиду возможность создания одного проекта с модулями на двух языках MySuperLang и С? Ну нафиг такие интеграции.
Цитата:
Сообщение от anyx Посмотреть сообщение
Но создание своего языка - процесс, требующий решения множества проблем. Никто не говорил, что будет легко.
Прежде всего - это процесс, к которому подтолкнула необходимость решить другую проблему, которую нельзя изящно решить другими средствами.
Цитата:
Сообщение от anyx Посмотреть сообщение
Значит реализация в C# кривая, раз приходится так извращаться. С точки зрения логики указателей вообще не существует, значит и ЯП может обойтись без них.
С точки зрения такой же логики, классов не существует и шарп убог тем, что требует всюду классы.
Проблема, я так понял в том, что шарп не поддерживает константные объекты и приходится в некоторых местах передавать параметрами копии объектов, чтобы их заведомо никто не попортил.
Цитата:
Сообщение от anyx Посмотреть сообщение
Готов поспорить, что озвученную вами проблему я смогу решить за неделю, избавившись от необходимости использования указателей.
В шарпе указатели по умолчанию отключены и объекты передаются по ссылке, а структуры и "простые" типы - по значению. Опять же, смысл обходить особенность языка, которая туда специально вводилась? Просто нужно использовать другой язык, если что-то сильно напрягает.
Цитата:
Сообщение от anyx Посмотреть сообщение
Не говорите о том, в чём не понимаете. В крупных веб-сервисах распределённые вычисления и распределённые базы данных используются вовсю.
Используется. И? Это всё используется практически с самого начала развития IT.
Цитата:
Сообщение от anyx Посмотреть сообщение
А постепенно они приходят и в жизнь простых программеров - облака, распределённые базы данных (гуглите MongoDB, она сейчас стремительно набирает популярность).
Модная ненужная фигня, которая ничего нового по сути не привносит (древние технологии чуток допилили, назвали cloud и маркетологи запустили безжалостную рекламу).
Цитата:
Сообщение от anyx Посмотреть сообщение
В общем, почитайте Хабр.
Порядка половины статей, прошедших "цензуру" на хабре унылы. Большая часть из стоящей информации - новости, которые можно прочитать на других ресурсах, или же переводы зарубежных статей.
pu4koff вне форума Ответить с цитированием
Старый 23.11.2011, 20:00   #52
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

to Пепел Феникса - продолжай то что задумал, не стрельнет, так опыт будет бесценный, главное качественно делай ну это пожелание.
BOBAH13 вне форума Ответить с цитированием
Старый 23.11.2011, 20:13   #53
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

Главное реализовывать на платформе .Net, больше шансов на какой-то результат, во всяком случае в вики приведён внушительный список языков реализованных на этой платформе. Да и мощь библиотек .Net не окажется лишней.
the_deer_one вне форума Ответить с цитированием
Старый 23.11.2011, 21:09   #54
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Тогда уже лучше Моно. Тем более он позволяет спрыгнуть и на нативный код, по крайней мере для линуксов (но пока вроде с костылями).
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 23.11.2011, 22:03   #55
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от the_deer_one Посмотреть сообщение
Главное реализовывать на платформе .Net, больше шансов на какой-то результат, во всяком случае в вики приведён внушительный список языков реализованных на этой платформе. Да и мощь библиотек .Net не окажется лишней.
Кстати, под .NET еще есть и Roslyn...
pu4koff вне форума Ответить с цитированием
Старый 25.11.2011, 11:48   #56
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Главное реализовывать на платформе .Net, больше шансов на какой-то результат, во всяком случае в вики приведён внушительный список языков реализованных на этой платформе. Да и мощь библиотек .Net не окажется лишней.
учитывая некоторые планируемые особенности языка(см первые посты темы) будет возможно dotNET включить в список платформ.(правда это меня немного ограничит в stdlib, но в принципе не сильно)
Цитата:
С точки зрения такой же логики, классов не существует и шарп убог тем, что требует всюду классы.
может к сожалению, а может и нет, но меня устраивает этот подход, правда с одной модификацией, а именно класс по умолчанию(по аналогии с пространством имен по умолчанию) что позволит писать просто функции.
Цитата:
В шарпе указатели по умолчанию отключены и объекты передаются по ссылке, а структуры и "простые" типы - по значению. Опять же, смысл обходить особенность языка, которая туда специально вводилась? Просто нужно использовать другой язык, если что-то сильно напрягает.
ну как я немного поизучал, ссылка по сути есть авторазименовывающийся указатель(причем 100% не ноль).(в С++ и Делфи)
Цитата:
to Пепел Феникса - продолжай то что задумал, не стрельнет, так опыт будет бесценный, главное качественно делай ну это пожелание.
я потихоньку занимаюсь, но времени не так много(работа и тп) как хотелось бы
+еще пишу все сам, без готовых лексических анализаторов(и тп).
тока регэкспы готовые.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 25.11.2011 в 11:51.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.11.2011, 12:49   #57
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
а именно класс по умолчанию(по аналогии с пространством имен по умолчанию) что позволит писать просто функции.
А, Вы хотите написать Руби - в нем даже числа являются объектами класса.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 25.11.2011, 16:00   #58
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
А, Вы хотите написать Руби - в нем даже числа являются объектами класса.
в dotNET ровно так же.

да и не понимаю как Ваша фраза связана с классом по умолчанию(функции без класса)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.11.2011, 16:53   #59
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

Пепел Феникса
Цитата:
да и не понимаю как Ваша фраза связана с классом по умолчанию(функции без класса)
Ну в руби типа труъ ооп, есть тока методы, но метод можно написать не в классе, и он будет как бы методом главного класса, который является программой. :crazy:
the_deer_one вне форума Ответить с цитированием
Старый 25.11.2011, 19:22   #60
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Код:
class EntryBase
{
public:
    string type_name;
    virtual ~EntryBase() { };
};

template <class T>
class Entry : public EntryBase
{
public:
    T value;
    Entry(T t){
        value = t;
        type_name = typeid(T).name();
    }
private:
    Entry() { }
    Entry& operator = (const Entry& e) { }
    operator T () const { return value; }
    operator const T & () const { return value; }
};

class Container{
private:
    vector<EntryBase*> data;
public:
    template<class T>
    void push(T x){
        EntryBase* e = new Entry<T>(x);
        data.push_back(e);
    }
    template<class T>
    T value(int i){
        EntryBase* e = data[i];
        Entry<T>* entry = static_cast<Entry<T>*>(e);

        return entry->value;
    }
    template<class T>
    void value(int i, T &dest) {
        dest = *(Entry<T> *)data[i];
    }
    string type_name(int i){
        EntryBase* e = data[i];
        return e->type_name;
    }
};
Потом:
Код:
Container arr;
arr.push(1.25);
arr.push(string("qwerty"));
arr.push(string("123456"));
arr.push('a');
cout << arr.value<string>(1)+arr.value<string>(2) << "\n";
Хочу чтобы работало так:
Код:
cout << arr.value(1)+arr.value(2) << "\n";
string s = arr.value(0)+arr.value(2); //должно срабатывать, т.к. левое слагаемое можно привести к виду правого и выполнить сложение
int i = arr.value(0)+arr.value(3); //все приведения существую, поэтому тоже должно работать
double d = arr.value(0)+arr.value(1); //не сработает, т.к. string невозможно привести к double
В принципе, можно было бы [] перегрузить ^^

Последний раз редактировалось Kostia; 25.11.2011 в 19:36.
Kostia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
можно ли подобный текст перевести на человеческий язык? alexxx777 Помощь студентам 0 24.05.2010 19:56
Как создать вид подобный SolidWorks. KemanSR Общие вопросы C/C++ 6 04.05.2010 21:30
Добавить модуль в phpnuke-подобный движок Able2Know Фриланс 3 23.04.2010 16:29
В Access есть тип данных "Счетчик".Есть ли подобный тип данных в MS Sql Server 2000? An_ton SQL, базы данных 5 16.01.2009 17:55