Портал аспирантов
 

Вернуться   Портал аспирантов > Обучение в аспирантуре > Обучение в аспирантуре

Ответ
 
Опции темы
Старый 14.12.2009, 20:31   #1
george
Newbie
 
Регистрация: 03.08.2009
Сообщений: 14
По умолчанию Организация исследования 05.13.11

Всем доброго времени суток.
Читаю форум уже примерно полгода; к людям, что здесь общаются, почти привык вот решил первый раз написать и попросить совета.
Если такая тема уже обсуждалась - сорри, не нашел.

Я обучаюсь по 05.13.11 (математическое и программное обеспечение), тема диссертации связана с внутренней организацией вычислений в функциональном языке программирования. Мы хотим реализовать исполняемую среду языка таким образом, чтобы выполнять автоматическую подстройку программы под вычислительную архитектуру (без изменения исходного кода программы).
Направление без "быстрой" практической ценности (не думаю, что скоро из этого вырастет то, что можно использовать на практике при программировании), поэтому приходится многое выдумывать самому (самому придумывать модели, применимость на практике). Т.е. исследование пока ведется вокруг идей, а не конкретного ПО/алгоритмов.

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

2. Как я уже сказал выше, пока не понятно, когда мы можем пожать плоды исследования на практике. Поэтому сейчас написание программного кода под вопросом, потому как не все модели проработаны, и что писать, пока еще не очень понятно (т.е. если бы я сейчас попробовал написать техзадание на реализацию, у меня бы не получилось это сделать). Но мне уже надоело "жонглировать словами", я хочу начать писать программный код.
Был ли у кого-нибудь опыт преодоления такой ситуации? Может, стоить "положить" на то, что еще не все понятно, а начать писать программный код - просто чтоб посмотреть, что будет получаться на практике, а также для поддержания мотивации - посмотреть на результат труда?
Или это нормально, если к окончанию срока обучения у меня будет проработанные модели (в графическом виде, в UML, записанные с помощью формальной логики), и идеи, но не будет программного кода? Как считают господа аспиранты?
Работаю в программировании уже пять лет, может, поэтому такое желание закрепить результаты в коде

Буду рад мнениям. Если кто-то заинтересован темой или работает по смежной тематике - пишите в личку, буду рад пообщаться с коллегами.

P.S. Научник мне всем помогает, мнение по этим вопросам есть. Но хотелось бы еще мнений.
george вне форума   Ответить с цитированием
Реклама
Старый 14.12.2009, 20:43   #2
Ink
Киберпанк
 
Регистрация: 24.04.2009
Сообщений: 10,958
По умолчанию

Цитата:
Сообщение от george Посмотреть сообщение
Всем доброго времени суток.
Читаю форум уже примерно полгода; к людям, что здесь общаются, почти привык вот решил первый раз написать и попросить совета.
Если такая тема уже обсуждалась - сорри, не нашел.
[Смотрит с уважением]
Цитата:
Сообщение от george Посмотреть сообщение
тема диссертации связана с внутренней организацией вычислений в функциональном языке программирования. Мы хотим реализовать исполняемую среду языка таким образом, чтобы выполнять автоматическую подстройку программы под вычислительную архитектуру (без изменения исходного кода программы).
ЛОЛШТО? Я ни*** ничего не понял. Мну гуманитарий
Цитата:
Сообщение от george Посмотреть сообщение
В связи с этим есть пара вопросов:
1.
Вам идем чисто для себя хранить, или нужно хранить идеи, чтоб не потырили? Про депонирование не думали?
Цитата:
Сообщение от george Посмотреть сообщение
2.
Здесь есть коллеги по вашей специальности, подождите их мнения. Но я так понимаю вы хотите предложить код, как результат диссертации?
Ink вне форума   Ответить с цитированием
Старый 15.12.2009, 01:00   #3
Carro
Gold Member
 
Регистрация: 23.01.2006
Сообщений: 1,089
По умолчанию

именно по 05.13.11 - реализованный код обязателен. Т.е. не он является основным результатом, но без него не нужно на эту специальность выходить. Специальность же программисткая.
Вы знаете еще 10 лет назад американскйи ун-т писал первую реализацию CORBA 3.0 TAO , она базируется на библиотеке ACE . Мое мнение - это великая вещь (ученые, которые этим занимались - это центральные ученые группы OMG). Библиотека работает во всех возможных ОС. написана на С++. И код нужно просто оттранслировать для нужной ОС. Конечно, это может быть не совсем не, что вы имеете в виду - но я вам рекомендую изучить этот опыт. У них много статей, есть сайты .. вообщем - это вещь в программировании великая, не побоюсь этого слова и я бы ее вообще рекомендовала всем ее изучить, кто идет дальше бакалавра по программированию.
Carro вне форума   Ответить с цитированием
Старый 15.12.2009, 05:11   #4
Jacky
Администратор
Jack of Shadows
 
Аватар для Jacky
 
Регистрация: 13.05.2002
Адрес: Москва
Сообщений: 7,533
По умолчанию

Цитата:
Сообщение от Ink Посмотреть сообщение
ничего не понял. Мну гуманитарий
Не обязательно комментировать все сообщения, которые, попадаются на глаза. Не владеете темой -- пройдите мимо. Полезной информации ноль, флуд + пункт правил об олбанском языке и кащенизме.

Добавлено через 2 минуты 53 секунды
Цитата:
Сообщение от george Посмотреть сообщение
1. Как лучше хранить свои идеи, ссылки на прочитанную литературу, которая чем-то помогает либо дает пищу для размышлений?
Вопрос по картотеке и каталогизации, по сути. Тут в свое время что-то подобное обсуждалось, но довольно вяло. Подозреваю, что стройной системы хранения информации ни у кого или почти ни у кого нет, т.ч. все в рамках кустарных методоы (файлы, папки, записи на листочках).
---------
Рано или поздно, так или иначе...
Jacky вне форума   Ответить с цитированием
Старый 15.12.2009, 06:59   #5
george
Newbie
 
Регистрация: 03.08.2009
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Jacky Посмотреть сообщение
Вопрос по картотеке и каталогизации, по сути. Тут в свое время что-то подобное обсуждалось, но довольно вяло. Подозреваю, что стройной системы хранения информации ни у кого или почти ни у кого нет, т.ч. все в рамках кустарных методоы (файлы, папки, записи на листочках).
Да, именно про стройную систему хранения информации и идет речь.
Информации, ссылок на литературу, своих идей и т.д.
Идеальной бы была какая-нибудь программа-каталогизатор типа электронной библиотеки. Но опять же, некоторое время назад я искал и не нашел.
Неужели ни у кого нет никакой системы? Я про свой ворд-файлик сказал; еще один вариант, который использовал мой преподаватель - он создавал файловую структуру, которая содержала статьи, его заметки и т.д. в электронном виде + некоторый индексный документ (Word или HTML). Но этот вариант мне как-то тоже не оч нравится.

2 Carro:
Я согласен, что код очень обязателен для 05.13.11, но дело-то, по сути, в том, что работа пока получается только теоретическая. Возможно, больше бы тут подошли физмат науки.
Может, у кого-то была подобная ситуация (теоретическая работа, в то время как ожидается какой-нибудь код, и как это на защите)?

Спасибо, по CORBA почитаю. Как-то так получилось, что эту технологию я совсем не знаю, т.к. использовал другое для распределения данных.

2 Ink:
Нет, до депонирования и защиты интеллектуальных прав пока еще далеко (как я сказал, практическая ценность работы непонятно когда еще будет видна). Хотя, может будет уже слишком поздно?

Последний раз редактировалось george; 15.12.2009 в 09:26. Причина: Дополнение, исправление
george вне форума   Ответить с цитированием
Старый 15.12.2009, 11:48   #6
Riper
Advanced Member
 
Аватар для Riper
 
Регистрация: 29.10.2008
Адрес: Москва
Сообщений: 394
По умолчанию

Что-то негативное настроение с утра. Извините если что не так.

2 Carro: Корба это конечно хорошо (но это скорее идея кросплатформенной интеграционной платформы, а не кросплатформеного языка). У меня тоже честно говоря есть сомнения по новизне. Правда мне на ум в первую очередь приходит идеология Java.

2 george: Вы случайно не из МЦСТ? Если нет, то рекомендую почитать еще про идеологию современных компиляторов (помимо вникания в идеологию джавы). Там же любой язык (точнее код на любом языке верхнего уровня) приводится к мета-языку (коду на мета-языке) на котором осуществляются все оптимизации и эвристические проверки, а потом уже (после графовой оптимизации и проверок) код на мета-языке транслируется в машинный код в зависимости от текущей архитектуры. Это случайно не повторение вашей задачи (работа с мета-языком)?

По поводу "как не забыть умные мысли". Я когда писал диссер просто записывал отдельные куски текста (не сильно вычитывал) в отдельные файлы. Плюс было две директории -- отработанное и не отработанное. Соответственно изначально файл ложился в директорию "не отработанное". И дописывал я его там же если потом мысли возвращались к этой же теме. Когда эта мысль включалась в статью или текст диссера файл перемещался в "отработанное".
Riper вне форума   Ответить с цитированием
Старый 15.12.2009, 13:24   #7
george
Newbie
 
Регистрация: 03.08.2009
Сообщений: 14
По умолчанию

2 Riper:
Спасибо за ответ. Нет, я не из МЦСТ.
По поводу CORBA.. это не касается моей темы, Carro же, как я понял, рекомендовала изучить только их опыт, публикации, историю развития от идей до конкретного продукта. А не конкретно саму технологию.

По мета-языку... задача создания именно промежуточного языка не ставится. Тут задача - использовать некоторый язык для того, чтобы помочь преобразованию информационного графа (по сути, связей по данным в лямбда-исчислении) в управляющий императивный граф для конкретной архитектуры. Хотя такую трансляцию можно осуществить и через промежуточный язык; возможно, мы к этому и придем
george вне форума   Ответить с цитированием
Старый 15.12.2009, 14:31   #8
Riper
Advanced Member
 
Аватар для Riper
 
Регистрация: 29.10.2008
Адрес: Москва
Сообщений: 394
По умолчанию

Цитата:
Сообщение от george Посмотреть сообщение
По мета-языку... задача создания именно промежуточного языка не ставится. Тут задача - использовать некоторый язык для того, чтобы помочь преобразованию информационного графа (по сути, связей по данным в лямбда-исчислении) в управляющий императивный граф для конкретной архитектуры. Хотя такую трансляцию можно осуществить и через промежуточный язык; возможно, мы к этому и придем
Может вы к этому придете, но идея в том что это уже давно есть (в конце 90-х когда я этой темой интересовался уже книжки были, правда тогда только на английском. "Ахо-Ульман" (она же "книга с драконом") точно уже был, вроде сейчас уже давно есть он на русском).
Поэтому фирмы выпускающие пакеты для программирования часто выпускают компиляторы для нескольких языков программирования. Потому что задача оптимизации кода и автоматического нахождения логических ошибок в коде решается один раз для мета-языка. А потом просто дописываются трансляторы из языка высокого уровня в мета-язык и трансляторы из мета-языка в архитектурно-зависимый машинный код.

Вообще крайне рекомендую ознакомиться с "книгой с драконом" чтобы не изобретать велосипед и заниматься действительно новым.

Сейчас ссылку вам поищу

Добавлено через 45 секунд
Нашел: http://www.ozon.ru/context/detail/id/146264/
Riper вне форума   Ответить с цитированием
Старый 16.12.2009, 17:19   #9
george
Newbie
 
Регистрация: 03.08.2009
Сообщений: 14
По умолчанию

Riper, Спасибо за продолжение дискуссии!
Про промежуточный язык я знаю, 5 лет работаю с .NET.
"Книга дракона" у меня на полке стоит в бумажном виде

У меня в работе немного по-другому. Опишу подробнее, идеи и критика очень приветствуется
Мы ориентируемся на запуск функциональных программ на различных параллельных системах (упростим задачу, пусть даже системах одной архитектуры, но с разными аппаратными ресурсами – например, числом ядер – ситуация сейчас вполне обычная).

--- небольшая мотивационная часть
Сейчас параллелизм в промышленном программировании в основном реализуется так: в качестве технологии программирования используется MPI, либо различные TBB, и прочие параллельные библиотеки с потоковой моделью. В функциональных языках F#, Haskell – по сути, те же самые потоки, только завуалированные (неготовые значения, преобразования в плоский параллелизм для одновременной обработки данных, например, в массиве несколькими потоками).
-- конец мотивационной части

При таком подходе исходный код программы имеет прямую связь с ресурсами вычислительной системы (создание потоков, например). Такие программы ресурсно-зависимые, и при переносе их на другую платформу могут работать неэффективно. Чтобы адаптировать программу, часто требуется модифицировать ее исходный код.
Это и есть основная проблема, к решению которой хочется подобраться.
Предполагается следующее: язык, который максимально абстрагирован от архитектуры - функциональный язык (минимальное число императивных конструкций, описывает только зависимости по данным без учета, как это будет оттранслировано в машинный код). На этом языке реализован прикладной алгоритм, некоторые вычисления.
Требуется оттранслировать этот язык в машинный код. Причем для разных архитектур. Или проинтерпретировать его на разных архитектурах.
По сути, это управление ресурсами целевой платформы для выполнения прикладной программы. Для цели управления ресурсами предполагается использовать некоторый язык. Он будет описывать, как ресурсы целевой платформы будут захватываться, использоваться и освобождаться. Ведь стратегий управления ресурсами достаточно много, мы можем по-разному их обслуживать.
Если это память, то освобождать/захватывать в разные моменты времени. Отсюда такие стратегии, как сборка мусора, использование регионов, ручное управление.
Если это процессорное время, то это то, как мы распределяем работу по процессорам и потокам.
Список можно продолжать.
Я сейчас работаю над описанием возможных операций над ресурсами, группировки операций в процесс, связи процесса с ресурсами. Над формированием концепции.
Но запрограммировать я пока ничего не могу. Я пока не представляю, как будет выглядеть этот язык управления ресурсами. Будет ли это некоторое декларативное описание того, как работать с ресурсами, или какие-нибудь атрибуты конструкций функционального языка (чего не хотелось бы), либо подпрограммы, императивно описывающие работу с ресурсами. Может, промежуточное представление будет генерироваться с использованием правил на этом языке.
Свой функциональный язык для опытов есть.
Ну вот так, вкратце

Собственно, это и есть проблема, советов по которой я попросил. Какие-то наработки есть, но как их воплотить в код? Если написать туфту, то надо ли оно? Если ждать, пока все прояснится и появится некоторое ТЗ на реализацию – можно окончания срока аспирантуры не дождаться.
P.S. Я не претендую на какую-то мега-новизну, просто несколько иной взгляд на задачу.
george вне форума   Ответить с цитированием
Старый 17.12.2009, 01:20   #10
Carro
Gold Member
 
Регистрация: 23.01.2006
Сообщений: 1,089
По умолчанию

ну собственно два альтернативных решения уже привели. Рипер предложил Java.. что вполне логично, так как создание потоков, работа с файловой службой, да со всем, что позволено - не зависит от архитектуры. Второй - я -библиотека ACE - она на С++. в отличии от Java - совместимость там на уровне исходного кода, т.е. надо перекомпилировать. Зато чего там только нет .. все мыслимые и немыслимые сетевые и системные вызовы - мы использовали их,например, для разработки комопненты, которая определяет загрузку компьютера незаивисимо от операционки. Работали на Solaris, Linux, Windows.
НО,конечно, и тот и иной подход имеет недостатки, поэтому вполне возможно вы предлагаете, что -то что имеет некоторые преимущества. Но надо обязательно объяснить что именно лучше, чем в ACE и Java.
Carro вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 00:03. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
© 2001—2024, «Аспирантура. Портал аспирантов»
Рейтинг@Mail.ru