Re[9]: Мое видение того как можно разработать новый язык для
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.12.03 18:40
Оценка:
Здравствуйте, V.Petrovski, Вы писали:

VP>Но чтобы этот парсер шустрым был лучше всего писать его рекурсивным с возможностью

VP>заглядования на К символов.

Погоди ка. Насколько я знаю яки создают ДКА, а ДКА — это самый эффективный алгоритм по распознованию. Или я не прав? А парсеры с заглядыванием обычно — это LL(k)-парсеры, ди и они обычно не в силах порождать ДКА. Я так понимаю у яков проблемы с простотой отладки (хотя тоже жить моно) и обработкой ошибок (но это уже вообще проблемы всех парсеров).

Проблема еще в том, что на яке есть нехилые наработки (почки готовая граматика и разбор в дерево половины этой граматики).

Что же касается
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Мое видение того как можно разработать новый язык для
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.12.03 18:40
Оценка:
Здравствуйте, John Scherbatov, Вы писали:

JS>Подскажите плиз, что такое Видби


Следующая версия дотнета и студии.

JS> и где его взять?


Раздовался на PDC. Можно получить если вхдишь в Московское дотнет офлайн комьюнити.

Рантайм нелегально можно надыбать в Интернете... Тут как-то народ ссылки приводил.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Почему я не буду участвовать в этом проекте :)
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.12.03 18:40
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


AVK>Например?


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

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

В общем, есть куча мест где формальные парсеры не могут дать четкую классификацию выражения и делают по контексту
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Добавляем фичи...
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.12.03 18:40
Оценка:
Здравствуйте, Andir, Вы писали:

A>А как разрешать конфликты синтаксиса для плагинов ?


Нужно вообще стараться изменять синтаксис шарпа по минимуму. А все навороты делать на базе атрибутов и иной интерпретации кода.

Проблема в том, что синтаксический анализатор — это монолитная программа и изменить ее частично будет не просто.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Прикидки по структуре меташаблонов
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.12.03 18:40
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Пока без комментариев, просто кусочек кода


Не. Это птичий язык. Первый пример легко переписывается так:

// Генерирует типизированные списки для всех интерфейсов, наследников IList
[RSDN.Meta.MetaClass(Name = "ItemType + Collection")]
[RSDN.Meta.TypeParam(typeName = "ItemType")]
[RSDN.Meta.ApplayTo(Assmbly = "This", ImplementInterface = "System.Collections.IList")]
class ItemTypeCollection : CollectionBase
{
      ItemType this[int index]
      {
          get { return (ItemType)List[index]; }
      }
    
        public void Add(ItemType item)
        {
            List.Add(item);
        }
        
        ...
    }
}


Вот только это не так сложно и на жденириках сделать.

Второй вариант сделать по человечески сложнее. Тут уже ужно конкретно думать...

Основная проблема в том, что по этому коду нужно будет производить отладку. А тут уже чистая генерация кода.

ЗЫ

Кстати, где взять Яву 1.1?
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Прикидки по структуре меташаблонов
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 12.12.03 18:56
Оценка:
Здравствуйте, Miem, Вы писали:

AVK>>Пока без комментариев, просто кусочек кода


M>Только не так! Пожалуйста! Вся прелесть такого читабельного языка как С# пропадает.


Предложи свой вариант. По мне так вполне читаьельно. Что конкретно тебя смущает?
... << RSDN@Home 1.1.2 beta 2 (Win32NT 5.1.2600.0) >>
AVK Blog
Re[11]: Мое видение того как можно разработать новый язык дл
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 12.12.03 18:56
Оценка: :))) :))) :)))
Здравствуйте, Воронков Василий, Вы писали:

IT>>Смотря на что. Пару-тройку Владо-дней на генерацию идей и ещё 3-4 человеко-года на их реализацию.


ВВ>А что такое Владо-день? Чем он отличается от Васе-дня?


Тем что он ночью
... << RSDN@Home 1.1.2 beta 2 (Win32NT 5.1.2600.0) >>
AVK Blog
Re[2]: Прикидки по структуре меташаблонов
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 12.12.03 19:29
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Не. Это птичий язык.


И что ты там птичьего увидел?

VD>Первый пример легко переписывается так:


VD>
VD>// Генерирует типизированные списки для всех интерфейсов, наследников IList
VD>[RSDN.Meta.MetaClass(Name = "ItemType + Collection")]
VD>[RSDN.Meta.TypeParam(typeName = "ItemType")]
VD>[RSDN.Meta.ApplayTo(Assmbly = "This", ImplementInterface = "System.Collections.IList")]
VD>class ItemTypeCollection : CollectionBase
VD>{
VD>      ItemType this[int index]
VD>      {
VD>          get { return (ItemType)List[index]; }
VD>      }
    
VD>        public void Add(ItemType item)
VD>        {
VD>            List.Add(item);
VD>        }
        
VD>        ...
VD>    }
VD>}
VD>


Намного менее очевидно. Кроме того совсем непонятно.

VD>Вот только это не так сложно и на жденириках сделать.


На дженериках можно этот конкретный пример еще лучше сделать. Не в этом суть.

VD>Второй вариант сделать по человечески сложнее. Тут уже ужно конкретно думать...


О! О том и речь. Если бы задача стояла делать типизированные коллекции то достаточно было бы шаблоноподобного синтаксиса. Но речь то не о создании механизма для типизированных коллекций, с этим и дженерики справляются, речь то о о куда более мощном механизме. И второй пример это самое простое что лично мне нужно. Могу тебе привести самый простой, но реальный пример генерации кода на xslt.
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:helper="urn:codegen-helper">

    <xsl:output method="text"/>
    
    <xsl:include href="InterfaceNames.xslt"/>
    <xsl:include href="MethodSignature.xslt"/>
    
    <xsl:template match="/Workspace">
using System;

using Parus.OBJ;

namespace <xsl:value-of select="@root-namespace"/>
{
    <xsl:apply-templates select="Classes/Class"/>
}
    </xsl:template>
    
    <xsl:template match="Class"></xsl:template>
    
    <xsl:template match="Class[IsPersistent/text() = 'True']">
        <xsl:variable name="class-name">
            <xsl:value-of select="helper:GetName(@name)"/>
        </xsl:variable>
        <xsl:variable name="ns-name">
            <xsl:value-of select="helper:GetNamespace(@name)"/>
        </xsl:variable>
        <xsl:if test="string-length($ns-name) > 0">
namespace <xsl:value-of select="$ns-name"/>
{</xsl:if>
    /// &lt;summary&gt;
    /// Клиентский интерфейс класса <xsl:value-of select="@name"/>.
    /// &lt;/summary&gt;
    public interface I<xsl:value-of select="$class-name"/>Client<xsl:if test="BaseClass/@ref-id"> : <e/>
        <xsl:call-template name="client-interface-name">
            <xsl:with-param name="name" select="BaseClass/@ref-name"/>
        </xsl:call-template>
    </xsl:if>
    {
        <xsl:apply-templates select="ClassPhysicalAttributes/ClassPhysicalAttribute"/>
        <xsl:apply-templates select="ClassRefAttributes/ClassRefAttribute"/>
        
        <xsl:apply-templates select="ClassMethods/ClassMethod"/>
    }
        <xsl:if test="string-length($ns-name) > 0">
}
</xsl:if>
    </xsl:template>
    
    <xsl:template match="ClassPhysicalAttribute">
        /// &lt;summary&gt;
        /// Атрибут <xsl:value-of select="@name"/>.
        /// &lt;/summary&gt;
        [Transactional]
        <xsl:value-of select="Domain/@ref-name"/> <xsl:value-of select="@name"/>
        {get; set;}
    </xsl:template>
    
    <xsl:template match="ClassRefAttribute">
        /// &lt;summary&gt;
        /// Ссылочный атрибут <xsl:value-of select="@name"/>.
        /// &lt;/summary&gt;
        [Transactional]
        <xsl:call-template name="client-interface-name">
            <xsl:with-param name="name">
                <xsl:value-of select="RefClass/@ref-name"/>
            </xsl:with-param>
        </xsl:call-template>
        <xsl:value-of select="' '"/>
        <xsl:value-of select="@name"/>
        {get; set;}
    </xsl:template>
    
    <xsl:template match="ClassMethod">
        /// &lt;summary&gt;
        /// Метод <xsl:value-of select="@name"/>.
        /// &lt;/summary&gt;
        <xsl:if test="BeginTransaction/text() = 'True'">[Transactional]</xsl:if>
        <xsl:call-template name="method-signature"/>;
    </xsl:template>
    
</xsl:stylesheet>


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

VD>Основная проблема в том, что по этому коду нужно будет производить отладку. А тут уже чистая генерация кода.


По поводу компилятора я уже говорил — меня это не вдохновляет.

VD>ЗЫ


VD>Кстати, где взять Яву 1.1?


Зачем именно 1.1. Скачай 1.4.2. Брать разумеется на java.sun.com
... << RSDN@Home 1.1.2 beta 2 (Win32NT 5.1.2600.0) >>
AVK Blog
Re[3]: Добавляем фичи...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 12.12.03 19:33
Оценка: -1 :)
Здравствуйте, VladD2, Вы писали:

AVK>>Вот только не надо этих сишных префиксов


VD>Не, тут ты не прав. Перфиксы это не сишные.


Тем не менее в шарпе такого нет и слава богу.

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


Кривой, надо заметить способ. Я за добавление небольшого количества ключевых слов или реюз существующих. Меня всякие _printf __printf и прочая всегда в сях не нравились. ИМХО уродство это.

VD> Есть соглашение по которому двойное подчеркивание зарезервировано для компилятора и не может использоваться для обозначения идентификаторов. Именно по этому __ilasm или __msil.


А если я использую __ilasm — опять не совместимость? Инвалидное какое то, надо сказать решение. Уж давай тогда гуиды использовать?
ilasm4F4ED94F3E34483091ABF3F3229EF1E6
Как тебе? Такое точно вряд ли кто использует в качестве идентификатора

VD>Например, у МС есть недукументированное ключевое слово __arglist. Называно именно по этим соображениям.


Именно что недокументированное.

VD>Попробуй создать переменную:

VD>
VD>        int __arglist;
VD>


А ты попробуй создать getProp при наличии свойства Prop.

VD>У нас просто нет другого выхода.


Ну вот еще один довод почему не стоит писать свой компилятор
... << RSDN@Home 1.1.2 beta 2 (Win32NT 5.1.2600.0) >>
AVK Blog
Re[10]: Мое видение того как можно разработать новый язык дл
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 12.12.03 19:37
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Погоди ка. Насколько я знаю яки создают ДКА, а ДКА — это самый эффективный алгоритм по распознованию. Или я не прав?


В плане производительности? Да, прав.

VD> А парсеры с заглядыванием обычно — это LL(k)-парсеры,


Да

VD> ди и они обычно не в силах порождать ДКА.


Они не для этого и придумывались.
... << RSDN@Home 1.1.2 beta 2 (Win32NT 5.1.2600.0) >>
AVK Blog
Re[4]: Добавляем фичи...
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.12.03 21:51
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

AVK>Тем не менее в шарпе такого нет и слава богу.


Такие вещи используются когда нужно расширить язык и ну потерять обатной совместимости. В С++ такого тоже нет. Это делают те кто расширяет (нестандартно) компилятор и хочет добиться 100%-ой совместимости со стандартом.

AVK>Кривой, надо заметить способ. Я за добавление небольшого количества ключевых слов или реюз существующих.


Добавлять ключевые слова значит делать язык несовместимым с оригиналом, так как они могут использоваться в качестве идентификаторов.

AVK> Меня всякие _printf __printf и прочая всегда в сях не нравились. ИМХО уродство это.


Называть функции с двойным подчеркиванием вообще нельзя. Это могут себе позолить делать только разработчики компилятора.

Ну, а на счет эстетики... Ничего страшного. Другие способы еще кривее.

Если стоит выбор между эстетикой и совместимостью, то даже думать нечего.

AVK>А если я использую __ilasm — опять не совместимость?


Где используешь? В качестве названия идентификатора? Ну, это нарушение правил, и ответственность только на тебе. Вероятность такой дури равна нул.

AVK> Инвалидное какое то, надо сказать решение. Уж давай тогда гуиды использовать?

AVK>ilasm4F4ED94F3E34483091ABF3F3229EF1E6
AVK>Как тебе? Такое точно вряд ли кто использует в качестве идентификатора

Ну, раз ты согласен...

VD>>Например, у МС есть недукументированное ключевое слово __arglist. Называно именно по этим соображениям.


AVK>Именно что недокументированное.


А наши что будут по отношению к языку документированны? __arglist назван именно так, чтобы не противоречить стандарту.

AVK>А ты попробуй создать getProp при наличии свойства Prop.


Ээээ... Наверно get_Prop? Ну, да это вроде оговорено. А наши ключевые слова по определению не оговорены.

VD>>У нас просто нет другого выхода.


AVK>Ну вот еще один довод почему не стоит писать свой компилятор


Это не довод.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Прикидки по структуре меташаблонов
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.12.03 21:51
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>И что ты там птичьего увидел?


Грязь. Не код, а каша. О поддержке такой каши редактором даже и речи быть не может.

AVK>Намного менее очевидно. Кроме того совсем непонятно.


Все прекрасно понятно. Твой код тоже без коментариев непонятен. Зато читается легко и совместим с синтаксисом Шарпа. По сути меняется только семантика. Причем меняется она атрибутами.

AVK>О! О том и речь. Если бы задача стояла делать типизированные коллекции то достаточно было бы шаблоноподобного синтаксиса. Но речь то не о создании механизма для типизированных коллекций, с этим и дженерики справляются, речь то о о куда более мощном механизме. И второй пример это самое простое что лично мне нужно.


Понятно. Но кроме того, что "нужно", нужно еще учитывать и много других факторов:

1. Синтаксис должен быть максимально близок к Шарпу, чтобы работали редакторы и т.п.
2. Код должен легко читаться. Тут, кстати, тоже лучше быть похожим на Шарп, чтобы программисту не приходилось сильно переключаться.

AVK>Могу тебе привести самый простой, но реальный пример генерации кода на xslt...


Вот это уже вообще райт-онли.

Надо как-то наложить Шарп на Шарп. Т.е. чтобы метаязык был самим шарпом.

Ну, нечто вроде:

[Metaclass]
class Metaclass
{
  static void MakeProperty(ClassBuilder cb, Enum aEnum)
    {
        string[] names = MetaUtils.GetEnumNames(aEnum);

      foreach (string name in names)
        {
          string varName = MetaUtils.MakeVarName(name);
          string propName = MetaUtils.MakePropName(name);
            cb.AddLacalVar(varName);
            cb.AddProperty(propName, PropertyFlag.Get | PropertyFlag.Set,
                varName);
        }
    }
}

// Применерие

enum Some
{
  Some1,
  Some2,
  Some3,
}

[MetaCall, MakeProperty(this, Some)]
class MyTemplate
{
    ...
}



За одно такой подход позволит именно метопрограммировать, т.е. писать код пишущий код.


AVK>Вот и надо придумать способ записать тоже самое, но более внятным языком.


Согласен. Как тебе предложение о принятии синтаксиса Шарпа плюс хитрые атрибутц?

AVK> В приведенном примере я постарался это сделать. Буду рад увидеть более читабельные варианты.


К сожалению я не смог по большому счету прочесть это дело. Уситчивости не хватило.

Но, думаю, общей идее будут вложенные мета-вызовы. Т.е. вместо шаблона хслт выступает обычная функция. А вместо apply-templates некий атрибут выполняющий схожие действия.

AVK> Пример с атрибутами меня не воодушевил, а точнее совсем не понравился. Мешает все в одну кучу — непонятно где собственно код, а где его генерация, сразу сказать какой код получится в результате генерации крайне сложно.


Отчего же не понятно? Вопрос в том, что сами атрибуты — это уже применение. Генерация же должна быть в отдельных методах. И должна быть возможность повышения абстракции.

VD>>Основная проблема в том, что по этому коду нужно будет производить отладку. А тут уже чистая генерация кода.


AVK>По поводу компилятора я уже говорил — меня это не вдохновляет.


А что ты предлогаешь? Генерировать гигобайты кода и разбираться с ним? Ты даже не сможешь вынести каждый сгенерированный класс в отдельный файл, так как это уже связано со средой.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Прикидки по структуре меташаблонов
От: Lloyd Россия  
Дата: 15.12.03 08:09
Оценка: :)
Здравствуйте, AndrewVK, Вы писали:

AVK>Пока без комментариев, просто кусочек кода



XSLT переел?
... << RSDN@Home 1.1.2 beta 1 >>
Re: Мое видение того как можно разработать новый язык для до
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 16.12.03 11:49
Оценка:
Здравствуйте, VladD2, Вы писали:
Выскажу свое очень скргмное мнение.
Вообщето люди как бы уже делают в этом направлении
http://se.math.spbu.ru/Courses/dotNETCompilerEngineering/DEFAULT.HTM

Просто даже M$ не чурается работать с университетами которые как раз выпускают будующих программистов компиляторов. Реально было бы посодрудничать с ними а заодно дать людям пищу для будущих диссертаций и научных изысканий. И помочь вырастить новое поколение программистов.
и солнце б утром не вставало, когда бы не было меня
Re[2]: Мое видение того как можно разработать новый язык для
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.12.03 14:10
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Здравствуйте, VladD2, Вы писали:

S>Выскажу свое очень скргмное мнение.
S> Вообщето люди как бы уже делают в этом направлении
S>http://se.math.spbu.ru/Courses/dotNETCompilerEngineering/DEFAULT.HTM

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


S> Просто даже M$ не чурается работать с университетами которые как раз выпускают будующих программистов компиляторов.


У нас почти все программисты этот курс проходят.

S> Реально было бы посодрудничать с ними а заодно дать людям пищу для будущих диссертаций и научных изысканий.


Я не против. Можно написать им писма и пригласить в проект.

S> И помочь вырастить новое поколение программистов.


Эээ... Пщай само растет. А то мы его скорее всего загубим.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Мое видение того как можно разработать новый язык для
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 16.12.03 15:09
Оценка:
Здравствуйте, VladD2, Вы писали:



VD>У нас почти все программисты этот курс проходят.


Во во курс проходят. Теория и практика две ооочень разные вещи. Сколько у тебя уйдет времени на вникание всех проблем. А у них есть уже наработки, свой парсер,
исходники. Но я абсолютно не говорю, что у них будет лучше чем у вас, но раз уж задумали такое дело то лучше привлечь практиков. При том, что они за это все равно хоть небольшую но денежку получают и могут потратить все Рабочее время, в отличии от некоторых.
Шутка.
и солнце б утром не вставало, когда бы не было меня
Re[2]: Мое видение того как можно разработать новый язык для
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.12.03 15:58
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>http://se.math.spbu.ru/Courses/dotNETCompilerEngineering/DEFAULT.HTM


Описание языка Си-бемоль. 5 баллов
... << RSDN@Home 1.1.2 beta 2 >>
AVK Blog
Re[3]: Мое видение того как можно разработать новый язык для
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 16.12.03 16:04
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


S>>http://se.math.spbu.ru/Courses/dotNETCompilerEngineering/DEFAULT.HTM


AVK>Описание языка Си-бемоль. 5 баллов

Ну начали с Си-бемоль закончат Ъ#. Лиха беда начала.
и солнце б утром не вставало, когда бы не было меня
Re[4]: Мое видение того как можно разработать новый язык для
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.12.03 01:02
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Во во курс проходят. Теория и практика две ооочень разные вещи. Сколько у тебя уйдет времени на вникание всех проблем. А у них есть уже наработки, свой парсер,

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

Да они скорее теоретики. Хотя, как я уже сказал, я только за.

S> При том, что они за это все равно хоть небольшую но денежку получают и могут потратить все Рабочее время, в отличии от некоторых.

S> Шутка.

Ну, некоторые могут и все свободные ночи потратить.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Мое видение того как можно разработать новый язык для до
От: Glоbus Украина  
Дата: 17.12.03 13:19
Оценка:
Твое видение того как можно разработать новый язык для дотнет -> А на кой ляд он нужен. какие в нем будут преимущества перед уже существующими. Для каких задач будет применятся. Или это просто милое упражнение по теории компиляторов после прочтения книжки Ахо. Не сочтите вышеприведенную фразу за оскорбление — не хотел вас обидеть, клянусь — но действительно непонятна цель. То есть какждый язык для чего-то нужен. Как пример: пролог, лисп, С и все остальное. У каждого своя ниша. А какую нишу ваш займет?
Удачи тебе, браток!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.