2014-11-04 3 views
0

Может кто-нибудь объяснить, какие типы данных низкого и высокого уровня в контексте программирования в целом. Исходя из фона Java, я думал, что низкий уровень будет примитивными типами, такими как integer, boolean, String и т. Д., А высокий уровень - это сложные типы объектов. Не совсем уверен, что это общее понимание, хотя я не мог найти четкое определение онлайн.Типы данных низкого уровня и высокого уровня

+0

Правильное понимание: типы низкого уровня обычно являются примитивами, а типы высокого уровня обычно представляют собой типы, состоящие из примитивов или других типов высокого уровня. Это грубая, неформальная классификация типов. – xxbbcc

+0

Где вы слышали этот термин? Вы должны искать там определение. – svick

+0

@xxbbcc Спасибо – panas

ответ

0

Ваше понимание в целом правильное, но оно также очень зависит от вашего конкретного кода.

Например, вы указываете String как примитивный тип; но в C, например, строка обычно представляет собой только массив символов, в то время как полнофункциональная String (как и в Java) является очень высокоуровневым объектом. По крайней мере, более высокий уровень, чем некоторый struct s, вы можете легко определить, например, комплексное число или 2d-точку, например typedef struct {float x, y} Point.

Конечно, это можно объяснить просто потому, что Java является языком более высокого уровня, чем C, поэтому его примитивы более высокого уровня, чем C. В конце концов, это означает, что уровень «высокий/низкий» определяется только как относительные значения, некоторые вещи более высокого уровня, чем другие.

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

Целые числа, указатели, битовые поля, с плавающей запятой и т. Д. Являются общими для большинства процессоров. Некоторые из них также обрабатывают массивы и даже простые (C-стильные) строки.

Структуры и типизированные значения обычно являются «неявными» в коде, но не являются функцией ЦП, поэтому они немного выше уровня, но обычно настолько низки, что для их обработки не может быть явного кода, а только структура программа заставляет данные вести себя так, как планировалось.

+0

спасибо. Это дало мне понять – panas

0

Я бы сказал, что «низкий уровень» - это что-то, что зависит от вашей архитектуры операционной системы, например, «unsigned int» в C. Оно отличается от архитектуры 64 и 32 бит. с другой стороны, у вас может быть что-то, что абстрагируется от вашего оборудования. например, бесконечный список любого типа (в haskell)

Смежные вопросы