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

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

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2016, 15:27   #1
Des80
Пользователь
 
Регистрация: 09.09.2013
Сообщений: 21
По умолчанию Про компилятор

Вопрос не совсем про delphi, это скорее общий вопрос, но так как я сижу на этом форуме решил его задать здесь. Недавно скачал delphi xe5 и решил попробовать написать что нибудь под андройд и выяснилось, что машинный код, который получается в результате компиляции работает не на всех процессорах, на некоторых он выдает ошибки типо segmentation fault, но суть не в этом.Я задумался, а почему на компах такого нет? Ведь компилятор создает по сути инструкции низкого уровня что то типо: открой этот регистр, передай туда данные из этой ячейки и тд. Но почему независимо от того какой у компа проц, какая там архитектура внутри, какие регистры код всегда выполняется? может мне кто нибудь объяснить?
Des80 вне форума Ответить с цитированием
Старый 18.09.2016, 15:30   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

на PC в среднем применяются лишь две архитектуры, x86 и x86_64.
на андроиде их гораздо больше
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 18.09.2016, 15:36   #3
Des80
Пользователь
 
Регистрация: 09.09.2013
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
на PC в среднем применяются лишь две архитектуры, x86 и x86_64.
на андроиде их гораздо больше
то есть все компиляторы создают машинные команды под обе архитектуры?
Des80 вне форума Ответить с цитированием
Старый 18.09.2016, 15:39   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

x86 совместима с x86_64
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 18.09.2016, 16:43   #5
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Des80
Delphi XE - скороспелый продукт. Поэтому в нём много ошибок.

Цитата:
Но почему независимо от того какой у компа проц, какая там архитектура внутри, какие регистры код всегда выполняется? может мне кто нибудь объяснить?
Процессоры x86 обратно совместимы. Т.е все новый процессоры интела поддерживают все предыдущие инструкции добавляя незначительно новых.

Delphi до сих пор использует набор инструкций процессора i586 выпуск 1991 года. И практически не использует новые. Разве вы, что подключите библиотеку или сами напишете на BASM. Вот тогда у вас появятся вопросы совместимости.

х86-64 более свежая разработка около 2002 года.



С ARM на которых работают Android, IOS сложнее. Там каждый суслик - агроном. Каждый производитель делает свой процессор отличный от другого. Из-за чего имеем различных процессоров ARM в 100 раз больше. Там семейств только около 10 шт. Вот и проблем по совместимости в 10 раз больше.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 18.09.2016, 17:30   #6
Des80
Пользователь
 
Регистрация: 09.09.2013
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
Des80
Delphi XE - скороспелый продукт. Поэтому в нём много ошибок.


Процессоры x86 обратно совместимы. Т.е все новый процессоры интела поддерживают все предыдущие инструкции добавляя незначительно новых.

Delphi до сих пор использует набор инструкций процессора i586 выпуск 1991 года. И практически не использует новые. Разве вы, что подключите библиотеку или сами напишете на BASM. Вот тогда у вас появятся вопросы совместимости.

х86-64 более свежая разработка около 2002 года.



С ARM на которых работают Android, IOS сложнее. Там каждый суслик - агроном. Каждый производитель делает свой процессор отличный от другого. Из-за чего имеем различных процессоров ARM в 100 раз больше. Там семейств только около 10 шт. Вот и проблем по совместимости в 10 раз больше.
тогда есть ли смысл писать под андройд на джаве, т.к. байт код сделанный на джаве будет запускаться через java vm или на джаве меня ожидают аналогичные проблемы с совместимостью процов??
Des80 вне форума Ответить с цитированием
Старый 18.09.2016, 17:36   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нельзя про политику - может про географию можно? Alar Свободное общение 36 01.10.2015 17:04
Топик НЕ про политику, а про розовые миры в наших головах rpy3uH Свободное общение 30 11.02.2015 09:38
Негативные анекдоты про Россию и про всё в ней происходящее... Ваше мнение? Вадим Мошев Свободное общение 16 26.09.2011 08:02
[Turbo Pascal] - задачи про подбрасывание монеты и про определение истины. Sent Tools Помощь студентам 10 28.10.2010 18:11
У меня вопрос про базы данных,а точнее про таблицы!!! Alexij Общие вопросы Delphi 1 13.04.2008 23:24