Re[31]: Отсутствие множ. наследования и тэмплэйтов на CS
От: Mishka<T> Норвегия  
Дата: 02.07.02 07:18
Оценка:
Здравствуйте VladD2,

VD>... Информация очень простая зачиньщиками было обещано создать кратенькое описание... название вроде уже даже придумали... Но сам понимаешь у все есть свои дела (пьянки, бабы, драки...).


Да я-то начал писать, а потом подумалось, вот сделаю всё как я вижу, разнесёте всё в пух и прах, а я человек тяжёлый...
Так что давай-те ка отдельный форум хоть на пару недель откроем, чтоб всё обсудить и родить некий документ, с которого всё и начнём.
Re[32]: Отсутствие множ. наследования и тэмплэйтов на CS
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.07.02 07:33
Оценка:
Здравствуйте IVaNС, Вы писали:

IVNС>Влад, ничего, наверное, еще не сделано Кроме небольшого обсуждения, (в котором, кстати, предлагается присоединиться к данному форуму ), я больше ничего не увидел. Да и неудобный этот яху, нет разделения по темам. Рыться надо, чтоб все мессаги одного обсуждения найти. Кроме того, как я понимаю, ваш закрытый форум на то и был закрытым, чтоб обсуждать вопросы, связанные с журналом и внутренними проблемами сайта. Я думаю, что _обсуждение_ лучше продолжить здесь (поддерживаю людей, говоривших об этом в яху), а открытый проект пусть лежит на яху, для избранных Пусть всезнающий олл конструктивно высказывается !


Ну, ты на нашу яху не шли напраслину. Ее просто фильтровать не нужно. Читай себе... и отвечай если нужно.

IVNС>Я чувствую, что если я не возьму координацию этого дела в свои руки, никто дальше даже чухаться не будет !


Это всегда пожайлуста. Мне вот например, сейчас даже чихнуть некогда.

После лета возьмемся по шибче...
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[32]: Отсутствие множ. наследования и тэмплэйтов на CS
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.07.02 07:38
Оценка:
Здравствуйте Mishka<T>, Вы писали:

MT>Здравствуйте VladD2,


VD>>... Информация очень простая зачиньщиками было обещано создать кратенькое описание... название вроде уже даже придумали... Но сам понимаешь у все есть свои дела (пьянки, бабы, драки...).


MT>Да я-то начал писать, а потом подумалось, вот сделаю всё как я вижу, разнесёте всё в пух и прах, а я человек тяжёлый...


Мы разносим только для дела. Сформулировать идеи наврено все же нужно. А то люди даже не поймут, что за форум (?).

MT>Так что давай-те ка отдельный форум хоть на пару недель откроем, чтоб всё обсудить и родить некий документ, с которого всё и начнём.


Это к IT. Он главный форумооткрыватель.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[33]: Отсутствие множ. наследования и тэмплэйтов на CS
От: IVaNС Украина  
Дата: 18.07.02 05:03
Оценка:
Господа, прошу прощения за долгое отсутствие. Очень у меня много работы сейчас :(
Желание доделать компилятор все еще имею, но сильно уж многое сейчас на меня навалилось :( К тому же я сейчас в гордом одиночестве (уехал в командировку мой приятель, на помощь которого я надеялся)

Что мной уже сделано — коряво и недоделочно привинчены параметры к функциям по умолчанию. Даже реализация такой простой вещи требует усилий :) Как приведу это дело в надлежащий вид, выложу на всеобщее обозрение, глядишь, у кого-нить интузиазм появится, и присоединится.
С множ. наследованием сложновато получается. Я прихожу к мысли, что нужно начать с его урезанной реализации (без полиморфизма, виртуальных базовых классов и т.д.)
Но то, что реализовать м.н. можно — факт, основанный на изучении мной MSIL и исходников компилера. Хотя за это еще никто не брался, даже M$ :) Но, как говорил Влад, мы легких путей не ищем :)

В общем, разгребу свою работу, и тогда открою форум и открытый проект. Я надеюсь, что никто на меня не обидится за такую задержку.
Задача решена — УРА ! — землекопа полтора !
Re[34]: Отсутствие множ. наследования и тэмплэйтов на CS
От: Mishka.NET Норвегия  
Дата: 18.07.02 07:12
Оценка:
Здравствуйте IVaNС,

IVNС>В общем, разгребу свою работу, и тогда открою форум и открытый проект. Я надеюсь, что никто на меня не обидится за такую задержку.


Никто не обидиться. Если не влом, то напиши ещё короткое описание проекта, чтоб народ примерно понимал о чём речь пойдёт.
Re[35]: Отсутствие множ. наследования и тэмплэйтов на CS
От: IVaNС Украина  
Дата: 18.07.02 12:14
Оценка:
http://www.rsdn.ru/forum/newmsg.asp?mid=74132
Автор: Mishka.NET
Дата: 18.07.02



M.NET>Если не влом, то напиши ещё короткое описание проекта, чтоб народ примерно понимал о чём речь пойдёт.


Хорошо.
Микрософт написал — "цшарп — прост как VB, силен как C++". Наврали. От васика шарпец недалеко ушел
Так вот, мы это хотим исправить, доделать компилятор C# до уровня C##. _Не_предполагается_ переписывать фреймворк и системные библиотеки. Это уж слишком радикально !
Исходники — "ротор" от микрософта. Исходники компилера обрезанные (он не компиляет ресурсы, придется родным компилером для этих целей пользоваться)
Прежде всего хочется добавить:
1)дефолтные параметры методов. Запаривает выписывать по нескольку одинаковых методов. До недавлего времени я поступал так: писал метод, сожержащий все параметры, и кучу других, вызавающих его с определенными параметрами. Некрасиво и извратно. Так что дефолтные параметры нужны, с этого я и начал. Очень удобно
2)тэмплэйты. Господин TK нашел полезную ссылу http://research.microsoft.com/projects/clrgen/
Там конкретно проработана реализация тэмплэйтов для дотнета в болтологической форме. Там убедительно, с примерами, продемонстрировали, что с тэмпелэйтами круче Я с господами, которые это понаписывали, пытался связаться, пока безуспешно. Еще напишу.
3)самое главное и трудное — множественное наследование
4)макроопределения
5)модификаторы доступа к членам классов сделать по умолчанию protected
6)очень спорный вопрос — отмена модификаторов доступа типа sealed, private и т.д.

И т.д. Читайте форум, высказывайтесь, господа (и дамы, если это интересно) ! Обсуждение не закончено, оно, фактически, только начато
Задача решена — УРА ! — землекопа полтора !
Re[36]: Отсутствие множ. наследования и тэмплэйтов на CS
От: Igor Trofimov  
Дата: 18.07.02 14:59
Оценка:
Здравствуйте IVaNС, Вы писали:

IVNС>1)дефолтные параметры методов. Запаривает выписывать по нескольку одинаковых методов. До недавлего времени я поступал так: писал метод, сожержащий все параметры, и кучу других, вызавающих его с определенными параметрами. Некрасиво и извратно. Так что дефолтные параметры нужны, с этого я и начал. Очень удобно :)


Вообще, мне казалось, что CLI — довольно жесткая вещь.. там же совершенно четкие структуры метаданных и уж коль не предусмотрено "параметров по умолчанию" — то как их можно доделать???

Единственное, что приходит в голову — компилятор генерящий методы с разными комбинациями не-дефолтных параметров на основе одного метода с дефолтными параметрами.... Или как?

Кстати, мне, например, очень не нравится то, что у класса-потомка нужно дублировать все конструкторы предка, чтобы они были... Ну, то есть отсутствие наследования конструкторов... Может, и тут можно что-то придумать? ;)
Re[37]: Отсутствие множ. наследования и тэмплэйтов на CS
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.07.02 15:53
Оценка:
Здравствуйте Igor Trofimov, Вы писали:

IT>Вообще, мне казалось, что CLI — довольно жесткая вещь.. там же совершенно четкие структуры метаданных и уж коль не предусмотрено "параметров по умолчанию" — то как их можно доделать???


А ты открой VB.Net и посмотри как.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[37]: Отсутствие множ. наследования и тэмплэйтов на CS
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.07.02 18:29
Оценка:
Здравствуйте Igor Trofimov, Вы писали:

IT>Вообще, мне казалось, что CLI — довольно жесткая вещь.. там же совершенно четкие структуры метаданных и уж коль не предусмотрено "параметров по умолчанию" — то как их можно доделать???


IT>Единственное, что приходит в голову — компилятор генерящий методы с разными комбинациями не-дефолтных параметров на основе одного метода с дефолтными параметрами.... Или как?


Если не ошибаюсь, в голову MS-программистов пришло пометить дефолтные параметры атрибутами. В MSDN даже была статья (ссылку не дам) касказывающая как читать или задавать дефолтные параметры из C#.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[36]: Отсутствие множ. наследования и тэмплэйтов на CS
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.07.02 18:37
Оценка:
Здравствуйте IVaNС, Вы писали:

IVNС>Микрософт написал — "цшарп — прост как VB, силен как C++". Наврали. От васика шарпец недалеко ушел


Ну, тут ты палку круто перегнул. Или имелось в виду от VB.Net?

IVNС>2)тэмплэйты. Господин TK нашел полезную ссылу http://research.microsoft.com/projects/clrgen/

IVNС>Там конкретно проработана реализация тэмплэйтов для дотнета в болтологической форме. Там убедительно, с примерами, продемонстрировали, что с тэмпелэйтами круче Я с господами, которые это понаписывали, пытался связаться, пока безуспешно. Еще напишу.

Можно попытаться сделать это через русское представительство MS. Вероятность тоже не большая, но все же больше чем ничего.

PS

Проблема только в том, что у зачинщиков все больше и больше пропадает интузиазм.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[37]: Отсутствие множ. наследования и тэмплэйтов на CS
От: IVaNС Украина  
Дата: 19.07.02 05:31
Оценка:
Здравствуйте Igor Trofimov, Вы писали:

IT>Здравствуйте IVaNС, Вы писали:

IT>Вообще, мне казалось, что CLI — довольно жесткая вещь.. там же совершенно четкие структуры метаданных и уж коль не предусмотрено "параметров по умолчанию" — то как их можно доделать???

Предусмотрено. Я подсмотрел в васике. В книге, к сожалению, плохо эти вещи документированы, но они есть Для деф. параметров исп-ся метаданные метода — opt

IT>Единственное, что приходит в голову — компилятор генерящий методы с разными комбинациями не-дефолтных параметров на основе одного метода с дефолтными параметрами.... Или как?


Не. все куда проще. Для метода с дефолтным параметром
void DoSome(string sName = "sdfdf") {
.......
}

пишешь (на асме, ясное дело) типа такого

.method public instance void  DoSome([opt] string sName) cil managed
{
  .param [1] = "sdfdf"

   .......

}



Это большая часть того, что надо

У меня кой-какие трудности возникли из-за того, что я пошел чуть дальше, чем позволено синтаксисом C++ — я реализовал возможность _пропуска_ дефолтного параметра, и сделал необязательным условие, что после появления описания одного дефолтного параметра должны следовать только дефолтные параметры. То есть, имеем метод void DoSome(string s1, string s2 = "s2", string s3)
В моем синтаксисе допустимо писать такой вызов: DoSome("s1", , "s3");
То есть, для того, чтоб указать третий параметр, не нужно указывать второй, который будет взят по дефолту.


IT>Кстати, мне, например, очень не нравится то, что у класса-потомка нужно дублировать все конструкторы предка, чтобы они были... Ну, то есть отсутствие наследования конструкторов... Может, и тут можно что-то придумать?


Можно, ясное дело Тем более, что они наследуются, просто становятся недоступными для прямого вызова.

Вот с реализацией остального — похужей будет. Особенно с множ. наследованием. Компилер конкретно калечить придется
Задача решена — УРА ! — землекопа полтора !
Re[37]: Отсутствие множ. наследования и тэмплэйтов на CS
От: IVaNС Украина  
Дата: 19.07.02 05:32
Оценка:
Здравствуйте VladD2, Вы писали:

VD>Здравствуйте IVaNС, Вы писали:


IVNС>>Микрософт написал — "цшарп — прост как VB, силен как C++". Наврали. От васика шарпец недалеко ушел


VD>Ну, тут ты палку круто перегнул. Или имелось в виду от VB.Net?


Да не, вроде не перегнул Хотя, ясен пень, от VB.Net
Совсем недавно мне захотелось перевести один порядочно большой проект с VB.Net на шарп. Никаких трудностей не возникло — написал небольшой макрос, который подменяет языковые конструкции васика на шарповые. Практически ничего ручками не пришлось править
Да и у VB.Net есть кой-какие приколы, отсутствующие в шарпе. Так что, если бы не кривой с точки здения потомственного сишника синтаксис (ну воротит меня от васика, Васиковцы, не обижайтесь ), можно было бы сказать, что васик в чем-то помощнее будет.


IVNС>>Там конкретно проработана реализация тэмплэйтов для дотнета в болтологической форме. Там убедительно, с примерами, продемонстрировали, что с тэмпелэйтами круче Я с господами, которые это понаписывали, пытался связаться, пока безуспешно. Еще напишу.


VD>Можно попытаться сделать это через русское представительство MS. Вероятность тоже не большая, но все же больше чем ничего.


Можно им сказать, что есть люди, готовые бесплатно поучаствовать ради торжества науки

VD>PS


VD>Проблема только в том, что у зачинщиков все больше и больше пропадает интузиазм.


Вовсе нет. Просто, когда я говорил, что хочу продвигать это дело, у меня не было такой загруженности. А работу надо делать, за нее деньги платят Я и так сейчас без выходных работаю
Задача решена — УРА ! — землекопа полтора !
Re[38]: Отсутствие множ. наследования и тэмплэйтов на CS
От: Igor Trofimov  
Дата: 19.07.02 05:37
Оценка:
IVNС>пишешь (на асме, ясное дело) типа такого

IVNС>[asm]

IVNС>.method public instance void DoSome([opt] string sName) cil managed
IVNС>{
IVNС> .param [1] = "sdfdf"

Ну, если есть [opt] — тогда другое дело... Странно, из каких соображений они не включили дефолтные пар-ры в C#. Совсем непонятно.

IVNС>В моем синтаксисе допустимо писать такой вызов: DoSome("s1", , "s3");

IVNС>То есть, для того, чтоб указать третий параметр, не нужно указывать второй, который будет взят по дефолту.

Ну, это, имхо, не очень красиво...
Re: Отсутствие множ. наследования и тэмплэйтов на CS
От: Anton V. Kolotaev  
Дата: 19.07.02 06:00
Оценка:
Кстати, а не является ли сабж философским? Если да, то хотелось бы его видеть в соотв. форуме.
Re[39]: Отсутствие множ. наследования и тэмплэйтов на CS
От: IVaNС Украина  
Дата: 19.07.02 06:59
Оценка:
Здравствуйте Igor Trofimov, Вы писали:

IVNС>>В моем синтаксисе допустимо писать такой вызов: DoSome("s1", , "s3");

IVNС>>То есть, для того, чтоб указать третий параметр, не нужно указывать второй, который будет взят по дефолту.

IT>Ну, это, имхо, не очень красиво...


Почему ? Кстати, кроме того, я ввел специальное ключевое слово defparam, если не хочется оставлять пропуски (все-таки, они ухудшают читабельность)
Задача решена — УРА ! — землекопа полтора !
Re[2]: Отсутствие множ. наследования и тэмплэйтов на CS
От: IVaNС Украина  
Дата: 19.07.02 06:59
Оценка:
Здравствуйте Anton V. Kolotaev, Вы писали:

AVK>Кстати, а не является ли сабж философским? Если да, то хотелось бы его видеть в соотв. форуме.


Пока не реализовано, является. Так что, создавай топик.
Задача решена — УРА ! — землекопа полтора !
Re[3]: Отсутствие множ. наследования и тэмплэйтов на CS
От: Anton V. Kolotaev  
Дата: 19.07.02 07:00
Оценка:
Здравствуйте IVaNС, Вы писали:

IVNС>Здравствуйте Anton V. Kolotaev, Вы писали:


AVK>>Кстати, а не является ли сабж философским? Если да, то хотелось бы его видеть в соотв. форуме.


IVNС>Пока не реализовано, является. Так что, создавай топик.


А может просто замодерировать его туды?
Re[40]: Отсутствие множ. наследования и тэмплэйтов на CS
От: Igor Trofimov  
Дата: 19.07.02 07:53
Оценка:
IT>>Ну, это, имхо, не очень красиво...
IVNС>Почему ? Кстати, кроме того, я ввел специальное ключевое слово defparam, если не хочется оставлять пропуски (все-таки, они ухудшают читабельность)

Ну вот сам и ответил — почему
Еще может удобным был бы синтаксис DoSome (Value1, Value2, DefParam1 = Value3, DefParam5 = Value4), но только тут смысл двоится — то-ли параметру задаешь знаечение, то ли локальной пеерменной... напутать можно.
Re[4]: Отсутствие множ. наследования и тэмплэйтов на CS
От: IVaNС Украина  
Дата: 19.07.02 08:11
Оценка:
Здравствуйте Anton V. Kolotaev, Вы писали:

AVK>Здравствуйте IVaNС, Вы писали:


IVNС>>Здравствуйте Anton V. Kolotaev, Вы писали:


IVNС>>Пока не реализовано, является. Так что, создавай топик.


AVK>А может просто замодерировать его туды?


Надо начать новый топик, а то этот уже сильно долго грузится.
Как на это смотрит уважаемый олл ?
Хотя мне сейчас некогда обсуждать, я на некоторое время исчезаю
Задача решена — УРА ! — землекопа полтора !
Re[41]: Отсутствие множ. наследования и тэмплэйтов на CS
От: IVaNС Украина  
Дата: 19.07.02 08:11
Оценка:
Здравствуйте Igor Trofimov, Вы писали:

IVNС>>Почему ? Кстати, кроме того, я ввел специальное ключевое слово defparam, если не хочется оставлять пропуски (все-таки, они ухудшают читабельность)


IT>Ну вот сам и ответил — почему

Вовсе не ответил

IT>Еще может удобным был бы синтаксис DoSome (Value1, Value2, DefParam1 = Value3, DefParam5 = Value4), но только тут смысл двоится — то-ли параметру задаешь знаечение, то ли локальной пеерменной... напутать можно.

Да ну, это ты предложил изврат какой-то

Ты неправильно понял. Там, где появляется слово defparam, вместо него подставляется значение по умолчанию, если в данной позиции описан дефолтный параметр, и выдается ошибка компилера, если не дефолтный.
Задача решена — УРА ! — землекопа полтора !
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.