Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2012, 12:05   #1
WizarD.89
Форумчанин
 
Аватар для WizarD.89
 
Регистрация: 02.12.2010
Сообщений: 160
Радость Общие вопросы.

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

1) Есть программа. Ядро написано на c++,оболочка java. Как достигается
кроссплатформенность, если ядро написано на c++? получается для каждой ОС ядро перекомпилируется ?

2) Первая программа нового языка программирования - это компилятор. Получается компилятор пишется с помощью машинного кода на логи данного языка?

3) Для того что бы работала ОС ему нужен процессор который обладает определенными стандартными инструкциями? получается если создать процессор с другими инструкциями процессора, ОС не будет работать?
WizarD.89 вне форума Ответить с цитированием
Старый 05.11.2012, 12:19   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

1)да
2)вообще то компиляторы уже не пишутся под голый комп, а пишутся под ОС.
и уж явно уже не актуально там писать на опкодах.
3)ОС пишется под процессор, а не процессор под ОС.
а так, конечно не будет, если процы не совместимы.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.11.2012, 12:28   #3
WizarD.89
Форумчанин
 
Аватар для WizarD.89
 
Регистрация: 02.12.2010
Сообщений: 160
По умолчанию

Пепел Феникса, спасибо.

3)А как определить какая ОС больше подходит к процессору, то есть выполняет больше количество инструкции ?или он в любом случае будет выполнять их все?
2) если компиляторы пишутся под ОС, как они пишутся? так и хочется сказать в какой программе. )
WizarD.89 вне форума Ответить с цитированием
Старый 05.11.2012, 13:07   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

2)сейчас уже не то время, когда нет компиляторов.
потому пишут под компилятор уже существующий под эту ОС(я например использую g++)
3)что значит больше подходит?
у вас дома какой проц?

все идет от целевой платформы, занимаясь разработкой ОС(ну это баловство скорее) писал под i386.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.11.2012, 13:46   #5
WizarD.89
Форумчанин
 
Аватар для WizarD.89
 
Регистрация: 02.12.2010
Сообщений: 160
По умолчанию

Пепел Феникса
2) я просто не могу понять каким образом допустим компилятор java, написан на java?
3) Ну допустим я слышал такое предложение: "Какое то ПО добавило определенную инструкцию процессора, что позволила программа более быстрей работать" Это предложение родила в моей голове мысль, что не все инструкции процессора используются Программами и ОС.

AMD какой то)
WizarD.89 вне форума Ответить с цитированием
Старый 05.11.2012, 15:51   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

2)первая версия компилятора должна быть написана на чем то ином(может и машинные коды, но врятли в наше время).
потом же может быть переписана под этот же язык.
так например FASM написан на FASM.
3)ПО не может добавить инструкцию процессору.
оно может использовать какие то новые инструкции, и соответственно процессор на котором её нет, не может запустить его.
например если приложение юзает расширение SSE, то на старом процессоре работать не сможет.

AMD совместимы с интел в основном.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 05.11.2012 в 15:58.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.11.2012, 16:06   #7
m0nax
Форумчанин
 
Аватар для m0nax
 
Регистрация: 25.09.2009
Сообщений: 525
По умолчанию

ПО может использовать особенности процессоров даже без потери совместимости
например вот так в недрах 4.0 .net при сравнении строк используется особенность AMD (SSE4 насколько я понимаю)
Код:
#if AMD64
                // for AMD64 bit platform we unroll by 12 and
                // check 3 qword at a time. This is less code
                // than the 32 bit case and is shorter 
                // pathlength
 
                while (length >= 12) 
                {
                    if (*(long*)a     != *(long*)b) return false; 
                    if (*(long*)(a+4) != *(long*)(b+4)) return false;
                    if (*(long*)(a+8) != *(long*)(b+8)) return false;
                    a += 12; b += 12; length -= 12;
                } 
#else
                while (length >= 10) 
                { 
                    if (*(int*)a != *(int*)b) return false;
                    if (*(int*)(a+2) != *(int*)(b+2)) return false; 
                    if (*(int*)(a+4) != *(int*)(b+4)) return false;
                    if (*(int*)(a+6) != *(int*)(b+6)) return false;
                    if (*(int*)(a+8) != *(int*)(b+8)) return false;
                    a += 10; b += 10; length -= 10; 
                }
#endif
m0nax вне форума Ответить с цитированием
Старый 05.11.2012, 16:09   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

это платформо-зависимо тем не менее.
dotNET то компилирует библиотеки под платформу.

я не говорил что нельзя писать код использующий расширения, но работающий и без них.
я имел в виду строгое применение особенностей.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.11.2012, 16:27   #9
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
ПО не может добавить инструкцию процессору.
Но эмулировать выполнение инструкции запросто. Раньше вовсю эмулировали математический сопроцессор , когда он еще не был обязателен, но это уже считайте экзотика.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 05.11.2012, 16:53   #10
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
так например FASM написан на FASM.
Если считать разные версии языка разными языками то никакой компилятор не может быть написан на том же языке.
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
АСКУЭ, общие вопросы difuzor Помощь студентам 18 27.09.2011 16:08
3Ds Max(общие вопросы) ололошенько Помощь студентам 43 09.08.2011 21:35
Общие вопросы по C# smartboy Общие вопросы .NET 1 17.07.2009 21:14
Общие вопросы по mysql pushok PHP 1 14.01.2008 22:57