Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2011.03.27;
Скачать: [xml.tar.bz2];

Вниз

Обновление языка YAR   Найти похожие ветки 

 
oxffff ©   (2010-12-09 16:18) [0]

В язык YAR добавлены:

-записи с методами

program Helloworld;

TMyrecord=record
a,b:integer;
function Method1(var a:integer):integer;
begin
self.a:=a;
result:=self.b;
end;
end;

MecordVar:TMyrecord;
...
MecordVar.abc(MecordVar.b);


-статические массивы

Myrecord=record
a,b:integer;
end;

integerarrarr:Myrecord[6][3][5];

integerarrarr[1][2][3].a:=3;


-вывод типов для параметризованной функции

function abc<T,U>(a:^T):U;
begin
...
end;

a:^integer;

abc(a):=1;

=>
T=integer
U=integer;

-Импорт функций из библиотек

program Helloworld;

function importedfunc(var a:integer):integer;external library=mydll name=importfunc;

GField:integer;

begin
GField:=1;
write importedfunc(GField);
end


 
oxffff ©   (2010-12-09 16:23) [1]

На данный момент есть пока backend на .NET.
Возможно будет backend для LLVM, если найдется желающий заняться.


 
tesseract ©   (2010-12-09 16:50) [2]

Yet Another Regular language ?


 
oxffff ©   (2010-12-09 17:18) [3]


> tesseract ©   (09.12.10 16:50) [2]
> Yet Another Regular language ?


От первых букв имени сына - Ярослав.


 
Kerk ©   (2010-12-09 17:26) [4]

Объясни плиз чем эти записи с методами отличаются от стародавних object"ов в Pascal/Delphi?


 
Юрий Зотов ©   (2010-12-09 19:03) [5]

Зачем? Зачем? Зачем? That is a question.
(c) Гамлет.


 
oxffff ©   (2010-12-09 20:38) [6]


> Kerk ©   (09.12.10 17:26) [4]
> Объясни плиз чем эти записи с методами отличаются от стародавних
> object"ов в Pascal/Delphi?


Записи в YAR, такие же записи как и в Delphi.


 
oxffff ©   (2010-12-09 20:43) [7]


> Юрий Зотов ©   (09.12.10 19:03) [5]
> Зачем? Зачем? Зачем? That is a question.
> (c) Гамлет.


На сегодняшний день существует более 8500 языков программирования.
Многообразие языков программирования обусловлено разными подходами к решению типичных задач, а также отличием самих классов задач друг от друга по требованию к языку.


 
Kerk ©   (2010-12-09 20:49) [8]


> oxffff ©   (09.12.10 20:38) [6]
>
> > Kerk ©   (09.12.10 17:26) [4]
> > Объясни плиз чем эти записи с методами отличаются от стародавних
> > object"ов в Pascal/Delphi?
>
> Записи в YAR, такие же записи как и в Delphi.

Я понимаю. Вопрос возник по аналогии. В Delphi была такая штука - object. Считалась она жутко устаревшей. Но недавно они тоже сделали записи с методами. Так чем записи с методами отличаются от object?


 
Юрий Зотов ©   (2010-12-09 21:07) [9]


> oxffff ©   (09.12.10 20:43) [7]
>
> На сегодняшний день существует более 8500 языков программирования.
> Многообразие языков программирования обусловлено разными
> подходами к решению типичных задач, а также отличием самих
> классов задач друг от друга по требованию к языку.


OK.
Для решения задач каких классов язык YAR подходит лучше остальных 8500?


 
Юрий Зотов ©   (2010-12-09 21:09) [10]

> Kerk ©   (09.12.10 20:49) [8]
> В Delphi была такая штука - object. Считалась она жутко устаревшей.

Эта штука появилась начиная с Turbo Pascal 5.5, а в Delphi перекочевала, надо полагать, ради совместимости.


 
TUser ©   (2010-12-09 21:09) [11]


> На сегодняшний день существует более 8500 языков программирования

Че-то мало, имхо.


 
Kerk ©   (2010-12-09 21:11) [12]


> Юрий Зотов ©   (09.12.10 21:09) [10]
>
> > Kerk ©   (09.12.10 20:49) [8]
> > В Delphi была такая штука - object. Считалась она жутко
> устаревшей.
>
> Эта штука появилась начиная с Turbo Pascal 5.5, а в Delphi
> перекочевала, надо полагать, ради совместимости.

Это не ответ на мой вопрос :)


 
Юрий Зотов ©   (2010-12-09 21:19) [13]

> oxffff ©   (09.12.10 20:43) [7]

Предполагаю, что доказательно ответить на [9] будет непросто. Но если бы в [7] было написано что-то вроде: "А низачем, просто хобби, я от этого занятия удовольствие получаю" - то такой ответ на [5] я счел бы вполне достаточным и обоснованным.
:o)

> Kerk ©   (09.12.10 21:11) [12]
ЖЖОШ!!!
+1!!!!!!!!!!
:o)


 
Kerk ©   (2010-12-09 21:38) [14]

Я что-то не понял, это сарказм?


 
oxffff ©   (2010-12-09 21:39) [15]


> Юрий Зотов ©   (09.12.10 21:19) [13]
> > oxffff ©   (09.12.10 20:43) [7]
>
> Предполагаю, что доказательно ответить на [9] будет непросто.
>  Но если бы в [7] было написано что-то вроде: "А низачем,
>  просто хобби, я от этого занятия удовольствие получаю"
> - то такой ответ на [5] я счел бы вполне достаточным и обоснованным.
>
> :o)


Порой выразительности любимого языка не хватает, порой баги так достают, порой добавляют сомнительные или урезанные возможности,  порой есть желание что-то добавить и изменить, но ты не в силах сделать то, к чему у тебя нет доступа, и нет возможности повлиять на процесс...
Может это крик души? :)


 
oxffff ©   (2010-12-09 21:41) [16]


> Kerk ©   (09.12.10 20:49) [8]
>
> > oxffff ©   (09.12.10 20:38) [6]
> >
> > > Kerk ©   (09.12.10 17:26) [4]
> > > Объясни плиз чем эти записи с методами отличаются от
> стародавних
> > > object"ов в Pascal/Delphi?
> >
> > Записи в YAR, такие же записи как и в Delphi.
>
> Я понимаю. Вопрос возник по аналогии. В Delphi была такая
> штука - object. Считалась она жутко устаревшей. Но недавно
> они тоже сделали записи с методами. Так чем записи с методами
> отличаются от object?


Записи не наследуются и как следствие отсутствуют виртуальные методы.


 
Kerk ©   (2010-12-09 21:42) [17]

Да, точно. Про это я не подумал.


 
oxffff ©   (2010-12-09 21:43) [18]


> Юрий Зотов ©   (09.12.10 21:07) [9]
>
> > oxffff ©   (09.12.10 20:43) [7]
> >
> > На сегодняшний день существует более 8500 языков программирования.
>
> > Многообразие языков программирования обусловлено разными
>
> > подходами к решению типичных задач, а также отличием самих
>
> > классов задач друг от друга по требованию к языку.
>
>
> OK.
> Для решения задач каких классов язык YAR подходит лучше
> остальных 8500?


Например в YAR уже есть, чего нет в Delphi XE

-есть вывод типов
-разрешение перегрузки метода не только по параметрам, но и по возвращаемому значению.


 
TUser ©   (2010-12-09 21:46) [19]


> Я понимаю. Вопрос возник по аналогии. В Delphi была такая
> штука - object. Считалась она жутко устаревшей. Но недавно
> они тоже сделали записи с методами. Так чем записи с методами
> отличаются от object?

Это конвергенция, бывает.


 
Дмитрий Белькевич   (2010-12-09 21:47) [20]

case of string сделай ;)


> -разрешение перегрузки метода не только по параметрам, но
> и по возвращаемому значению.


Да, бывает не хватает - приходится со всякими dummy извращаться.


 
Юрий Зотов ©   (2010-12-09 21:54) [21]

> Kerk ©   (09.12.10 21:38) [14]
Я думал, это как раз ты шутишь:  
http://delphimaster.net/view/2-1291815359/
пост [7]

> oxffff ©   (09.12.10 21:39) [15]
Убедительно.


 
oxffff ©   (2010-12-09 22:19) [22]


> > oxffff ©   (09.12.10 21:39) [15]
> Убедительно.


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


 
DiamondShark ©   (2010-12-10 11:27) [23]


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

Сделай интергацию в VS.
Будет формошлёпство и 9000 библиотек.


 
oxffff ©   (2010-12-10 11:41) [24]


> DiamondShark ©   (10.12.10 11:27) [23]
>
> > Однако я прекрасно понимаю, что любому языку нужно большое
>
> > количество библиотек и наличие формошлепства. Это открытый
>
> > вопрос. Тем не менее решения есть всегда.
>
> Сделай интергацию в VS.
> Будет формошлёпство и 9000 библиотек.


Не все так просто. Язык YAR не ориентирован на .NET, хотя eсть backend на .NET.

Например в YAR есть процедурный тип, который не поддерживает + -, в backend  .NET процедурный тип реализован как указатель, то есть он не CLS совместимый с .NET, в котором делегат является объектом.
Безусловно можно переделать, но тогда язык в большей степени будет одотнеченный. Хотя если предусмотреть на уровне языка поддержку +-, то тогда можно будет сделать CLS совместимым.


 
oxffff ©   (2010-12-10 11:43) [25]

Sample

TMyFunc=function(a:integer):integer;
TXfunc=function(var a:double):TMyFunc;

function abc(a:integer):integer;
begin
result:=a;
end;

function abc(var a:double):TMyFunc;
begin
result:=abc;
end;

e:double;
f:integer;
g:TXfunc;

begin
g:=abc;
f:=g(e)(f);
end

=>

.method static public void main() cil managed
{
.entrypoint
ldftn native int abc(float64& a)
stsfld native int g
ldsfld int32 f
ldsflda float64 e
ldsfld native int g
calli native int (float64& a)
calli int32 (int32 a)
stsfld int32 f
ret
}


 
DiamondShark ©   (2010-12-10 12:16) [26]


> oxffff ©   (10.12.10 11:41) [24]

*facepalm*
Какая же каша в голове...


 
triste   (2010-12-10 12:22) [27]

А чем же вас C# не устраивает? Чудесный язык с кучей вкусняшек: анонимные типы и методы с возможностью распарсить в expression tree, и вывод типов, и делегаты, и кортежи, и динамические типы когда надо, и Linq, и интеграция с COM. Знающий человек будет весьма компактный и ясный код писать.
А они еще один Паскаль придумывают, только ради того, чтобы лелеять любимый begin/end и какие-то мифические трюки с отказом от явного управления памятью производить. Ну понятно, если потренироваться, но ожидать, что этим кто-то вменяемый пользоваться будет, это верх самонадеянности.


 
oxffff ©   (2010-12-10 12:23) [28]


> DiamondShark ©   (10.12.10 12:16) [26]
>
> > oxffff ©   (10.12.10 11:41) [24]
>
> *facepalm*
> Какая же каша в голове...


?


 
tesseract ©   (2010-12-10 12:38) [29]


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


PascalABC таки есть. C# многое захватил у паскаля. Чудесный язык - это Smalltalk кстати. Он до сих пор по функциональности обо всех тапки трет, среда разработки, отладки и исполнения в одном флаконе.


 
oxffff ©   (2010-12-10 12:44) [30]


> DiamondShark ©   (10.12.10 12:16) [26]
>
> > oxffff ©   (10.12.10 11:41) [24]
>
> *facepalm*
> Какая же каша в голове...


CLS

http://msdn.microsoft.com/ru-ru/library/12a7a7h3.aspx
http://www.codenet.ru/progr/cpp/il.php
http://msdn.microsoft.com/ru-ru/library/bhc3fa7f.aspx


 
oxffff ©   (2010-12-10 12:47) [31]


> Ну понятно, если потренироваться, но ожидать, что этим кто-
> то вменяемый пользоваться будет, это верх самонадеянности.
>


Где я сказал, что крутой чувак?


 
triste   (2010-12-10 12:58) [32]

tesseract ©   (10.12.10 12:38) [29]

>C# многое захватил у паскаля.

Я бы сказал, что он кое-что захватил у Паскаля. А то прямо получается, что C# это наследник паскаля какой-то. На самом же деле, C# на данный момент вобрал в себя много разных витавших до этого в воздухе концепций, которые Дельфи, корчась, с разной степенью успеха тоже пытается в себя включить. И только потому, что кому-то не хочется терять свой кусок хлеба на разработке этого счастья. По сути, Дельфи это такой же специализированный инструмент для клепания формочек, как и пролог для логического программирования. И тот, кто рассматривает его как нечто большее просто рискует обмануться в своих ожиданиях.

>Чудесный язык - это Smalltalk кстати. Он до сих пор по функциональности обо всех тапки трет, среда разработки, отладки и исполнения в одном флаконе.

Это можно сказать не только про Smalltalk. А если уж и придумывать новый язык, то целесообразно делать это в какой-то еще неистоптанной области, включая в него еще широко не опробованные концепции с четко определенной целью, как Рик Хики, например делал и приуспел. В противном случае, придется бесконечно повторять функциональность уже существущих средств и быть в затмении их яркого света, что и происходит, например, сейчас с Дельфи.


 
tesseract ©   (2010-12-10 13:04) [33]


> И тот, кто рассматривает его как нечто большее просто рискует
> обмануться в своих ожиданиях.


Тогда c# это такой специализированный инструмент для клепания веб формочек и тестирования новых подходов к программированию с целью запутать код навечно. Рискуешь обмануться в своих ожиданиях :-)

> повторять функциональность уже существущих средств и быть
> в затмении их яркого света


Про с++ можно сказать что он сияет геммороем при попытке разобрать код. Но таки популярен. Незатменный такой гемморой.


 
Kerk ©   (2010-12-10 13:08) [34]

2 tesseract
Нафига ты с ним споришь?


 
tesseract ©   (2010-12-10 13:34) [35]


> Нафига ты с ним споришь?


Скучно :-)


 
jack128_   (2010-12-10 14:33) [36]


> Например в YAR есть процедурный тип, который не поддерживает
> + -,

в смысле не поддерживает proc+= someProc;  ??
посмотри как в F# или nemerle функциональные типы реализованы, они вроде вполне себе CLS совместимы.


 
DiamondShark ©   (2010-12-10 14:35) [37]


> oxffff ©   (10.12.10 12:23) [28]

Нельзя так путать понятия "процедурный тип" (как абстракция высокоуровнего языка) и "найтив поинтер" (как один из овер9000 возможных низкоуровневых механизмов).


 
oxffff ©   (2010-12-10 14:40) [38]


> jack128_   (10.12.10 14:33) [36]
>
> > Например в YAR есть процедурный тип, который не поддерживает
>
> > + -,
> в смысле не поддерживает proc+= someProc;  ??
> посмотри как в F# или nemerle функциональные типы реализованы,
>  они вроде вполне себе CLS совместимы.


Да, именно в смысле MultiCastDelegate.
Так это .NET языки, поэтому CLS совместимые.
Я пишу для YAR .NET backend исключительно для проверки результата.


 
oxffff ©   (2010-12-10 14:47) [39]


> DiamondShark ©   (10.12.10 14:35) [37]
>
> > oxffff ©   (10.12.10 12:23) [28]
>
> Нельзя так путать понятия "процедурный тип" (как абстракция
> высокоуровнего языка) и "найтив поинтер" (как один из овер9000
> возможных низкоуровневых механизмов).


Где я напутал эти понятия?
Я написал, что интеграция в VS будет требовать быть CLS совместимым, а это означает что определяемые сборки должны быть понятны другим .NET языкам, что означает некий общий стержень  являющийся общим для всех поддерживающих CLS языков, а это означает что типы должны следовать CLS правилам в том числе и быть безопасными и поддерживать например +- для методов обратного вызова, что для в YAR я делать пока не планирую, как и другие CLS требования.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2011.03.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 0.004 c
11-1232496242
Jon
2009-01-21 03:04
2011.03.27
FPC + KOL 2.88


1-1250807356
Ruzzz
2009-08-21 02:29
2011.03.27
Как проверить успешно ли начался "процесс" в другом потоке?


2-1293713150
сергей2010
2010-12-30 15:45
2011.03.27
Подскажите...


2-1293658710
Anthony
2010-12-30 00:38
2011.03.27
После апдейт SQL запросов - тормозит скроллинг


2-1293553811
RUu
2010-12-28 19:30
2011.03.27
кэш у adoquery





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский