Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Fortress] Fortress programming language, Sun разрабатывает новый язык 
V
    Опции темы
Sardar
Дата 15.1.2006, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



Цитата(Void @ 15.1.2006, 21:39 Найти цитируемый пост)
длина массивов в OCaml ограничена ~4M, а строк - 16M для 32-разрядных машин.

4Мб или 4.Е6 элементов? В принципе в 4Мб много ссылок и примитивов влезет, но это сильное ограничение...
У себя со строками хорошо провернул, не мутируемые, созданные из блоков и связанных списков "указателей" на части блоков. Это помогает не транжирить память при многих строковых операциях, например "test: " + 90 +"Mb" или "[pad]" * 3 (создать новую строку как сложив "[pad]" три раза), также подстроки и другое. Цена этому накладные расходы при чтении строк, например выбирать посимвольно charAt(индекс) будет жутко не эффективно, но решением будет открыть stream на строке и читать её как поток символов (текущую позицию сохраняет "драйвер" потока для строк и не прыгает по блокам). Xотя это всё overkill для простого шаблонизатора вебстраничек для вебинтерфейса мудрёной железки smile

Цитата(Void @ 15.1.2006, 21:39 Найти цитируемый пост)
P.S. Как-то скачкообразно дискуссия движется smile Может посты сугубо про OCaml выделить из темы?

Не думаю, ведь серьёзно Fortress пока не обсуждаем, только гадаем что вкусного у него есть + просто свои мысли, полезно читая спецификацию врубаться как же оно реализовываеться smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Cr@$h
Дата 16.1.2006, 05:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 4
Всего: 41



Цитата(Void @ 15.1.2006, 22:27 Найти цитируемый пост)

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

Это я имел в виду. Конечно .Net та же будет одна. Но все равно, как пользователю выбирать и настраивать кодогенератор. Сейчас по оптимизации много фич накрутили: можно даже автопрофилирование делать -- прога запускается и во время своей "стандартной работы" кидает "какую-то" хитрую инфу в отдеьный файл. Потом компилируешь снова, указываешь использовать наработанный файл. На основе него он делает оптимизацию, и при стандартной работе твоя прога ведет себя довольно шустро.
Компиляция в MSIL -- вещь не благодарная. Там же все в простых терминах написано, на псевдо ассемблере, а про саму библиотеку .Net я вообще молчу -- она же вообще не должна компилиться, на сколько я знаю, стоит себе и стоит под Виндой.
Заботливый компилятор показывает, какие циклы векторизовались, какие нет, почему так и т.д. А тут у него один MSIL. А ведь векторизация -- это грубо увеличение скорости работы цикла со стандартными операциями во столько раз, сколько АЛУ по плавающей точе установлено на проце. У камней с SSE3 их, кажись, 4. Актуально, не правда ли?
Про управляемый код -- можешь обозвать любой язык .Net'ом (например, MC++) и использовать для него соотв. компилятор, но, объясняя все в терминах MSIL, особо не разгонишься, никакой специфики проца. А выполнять его будет только CLR, на к. покушаться третьим лицам не разрешено вообще-то.
Цитата(Sardar @ 15.1.2006, 23:29 Найти цитируемый пост)

malloc/free для "обычной" памяти

Да мне бы матрицу или массив освободить самому через какой-нить deallocate -- так ведь и этого не дают.
Цитата(Sardar @ 16.1.2006, 00:58 Найти цитируемый пост)

Не думаю, ведь серьёзно Fortress пока не обсуждаем, только гадаем что вкусного у него есть + просто свои мысли, полезно читая спецификацию врубаться как же оно реализовываеться

Sun этим серьехно занилась. Слышал тестирования и разработка и в Питере проходит.
PM MAIL ICQ   Вверх
Void
Дата 16.1.2006, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 6
Всего: 173



Цитата(Sardar @ 16.1.2006, 01:58 Найти цитируемый пост)
4Мб или 4.Е6 элементов?

4 миллиона элементов (ну и соответственно 16 Мб). Для float array - только 2 млн., потому что компилятор трактует массив вещественных чисел особым образом, храня их сразу в unboxed виде.
Цитата(Sardar @ 16.1.2006, 01:58 Найти цитируемый пост)
У себя со строками хорошо провернул, не мутируемые, созданные из блоков и связанных списков "указателей" на части блоков. Это помогает не транжирить память при многих строковых операциях, например "test: " + 90 +"Mb" или "[pad]" * 3 (создать новую строку как сложив "[pad]" три раза), также подстроки и другое. Цена этому накладные расходы при чтении строк, например выбирать посимвольно charAt(индекс) будет жутко не эффективно

Кстати, вот в этом документе описывается интересная структура данных VList, с амортизированным временем конкатенации и произвольного доступа к элементу в O(1), при некоторой избыточности по памяти.

Цитата(Cr@$h @ 16.1.2006, 07:06 Найти цитируемый пост)
А тут у него один MSIL. А ведь векторизация -- это грубо увеличение скорости работы цикла со стандартными операциями во столько раз, сколько АЛУ по плавающей точе установлено на проце. У камней с SSE3 их, кажись, 4.

Я знаю, что такое векторизация smile Правда, на плавающей арифметике двойной точности больше двухкратного ускорения получить сложновато.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Cr@$h
Дата 18.1.2006, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 4
Всего: 41



Цитата(Void @ 16.1.2006, 16:25 Найти цитируемый пост)

Правда, на плавающей арифметике двойной точности больше двухкратного ускорения получить сложновато

Будет 8 АЛУ с регистрами длиною в 8 байт -- будет в восемь раз прирост, грубо, конечно.
Но мы отошли. Так или иначе от управляемого кода никто уходить не собирается, и незачем, поэтому обязательно что-то придумают и для аппаратной специфики...
PM MAIL ICQ   Вверх
regis
Дата 17.3.2006, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 12.12.2005
Где: Москва, Россия

Репутация: 2
Всего: 7



Занятно: хотя название предполагает родство с Фортраном, язык значительно больше напоминает APL. Также собственный набор символов, близость к нормальной математической нотации, мощная матричная алгебра и пр. Но идея может быть и неплохая.


--------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой.
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Добро пожаловать в раздел "Другие языки" форума Vingrad!

Void
Void

Раздел посвящён различным языкам программирования, для которых (в силу невысокой популярности) нет отдельного раздела (GPSS, Lua, MATLAB, Ada, Forth, Smalltalk, Tcl, REXX, AWK и др.)

  • Обязательно следуйте правилам Форума.
  • Пожалуйста, прочитайте и следуйте рекомендациям по работе в разделе и навигации по Форуму.
  • Для вставки текстов исходных кодов используйте подсветку синтаксиса из выплывающего списка Код в форме ответа. Если Ваш язык в списке не представлен, то используйте тег: [code=ваш_язык]код[/code], например, [code=ada]код[/code]. Если в будущем подсветка синтаксиса для указанного языка будет реализована, исходный код преобразится.
  • Помните, один вопрос - одна тема.

Приятного времяпрепровождения! С уважением, Void, kemiisto .

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие языки | Следующая тема »


 




[ Время генерации скрипта: 0.1172 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.