Идейка

7 отговора 425 прегледа
#1

Идейка

От известно време ми се върти в главата създаването на някакъв "контекстен" език. Идеята е всяка функционалност (вкл. единична ф-я) да е групирана в някакво множество. Нещата ще изглеждат почти като ООП, с тази разлика, че няма да има рзлика между клас, структура и ф-я, както и че наследяването ще е изборно и насочено - по този начин ще е лесно да се избягват колизии.
Нещо ей такова:
context sample_struct
{
int a;
double b;
}

context sample_func(int a, double b) : int
{
return a + b;
}

context sample_class(int a, double b) : int
inherits sample_struct, sample_func
{
int x;
int y;

if IsConstructed(this) //constructor
{
return sample_func(a, b)
}
else // destructor
{

}
}

Нещо такова. Идеята не е изчистена и като цяло ще е бая сложно за реализация, ама ше взема да се занимая по-сериозно с това. От спортна злоба.

Я вышел им наперерез!
Отговор
в отговор на Resurrector #2

Re: Идейка

Хмм, а ти с функционално програмиране (LISP, CM) занимавал ли си се? Те не са точно това за което говориш (поне по отношение на наследяването) но пък там разликата между функция и структура е доста по-малка отколкото в 'нормалните' езици.

не ме ебе как е Вуте, аз гледам да съм си добре
Отговор
в отговор на Resurrector #3

Re: Идейка

идеята ми прилича на бруталните изпълнения от някои скриптови езици (python например) дето можеш по време на изпълнение да добавяш атрибути и функции на някой обект, да сменяш това от кои класове наследява.

да не говорим, че функцията също е обект и си има атрибути. мисля си, че този контекст може да се имплементира с такива средства.

бе лудница

ein heller Schein am Firmament
Отговор
в отговор на Meндeлeeв #4

Re: Идейка

Значи по принцип, във всички скриптови езици обектите са наследници на IDispatch, би трябвало да го знаеш.
Но конкретната реализация на някой обект не ме интересува. Ще ми се да се занимавам с някакъв такъв език само заради спорта, щото напоследък съм затъпял нещо. Та ако има желаещи, можем да направим спорта масов.

Я вышел им наперерез!
Отговор
в отговор на Resurrector #5

Re: Идейка

Значи по принцип, във всички скриптови езици обектите са наследници на IDispatch, би трябвало да го знаеш.

molja?

To err is human
To stderr is inhuman
Отговор
в отговор на malkia #6

Re: Идейка

Не конкретно на IDispatch, разбира се, става въпрос по принцип за двойния интерфейс. Конкретната реализация няма значение.

Я вышел им наперерез!
Отговор
в отговор на Resurrector #7

Re: Идейка

pa de da znam... shtot az pod Linux-a si IDispatch nemam i se chudih sega ;)

tuj de - zajazhdam se :)

To err is human
To stderr is inhuman
Отговор
в отговор на Resurrector #8

Re: Идейка

виждал съм COM purity test...

та така -- ти питаш ли непознатите "QueryInterface"?

ein heller Schein am Firmament
Отговор