Тип данных в программировании.
От: Albatros  
Дата: 27.02.11 15:30
Оценка:
Здравствуйте! Написал небольшую работу, на неформальном языке, посвященную месту типа данных в программировании. Это не учебник, а систематизация моих знаний. Подумал может быть полезна для других. Был бы очень признателен за отзывы по работе. Если она выдержит критику, то в планах написать полную 3-ю главу в журнал. Архив с примерами доступен по ссылке. Там всего 24 страницы с примерами и списком использованной литературы.
Являясь Вечным Двигателем, Они приветствуют нашу наивность в попытках Его изобрести.
Re: Тип данных в программировании.
От: deniok Россия  
Дата: 27.02.11 16:01
Оценка:
На 22 странице опечатка "инерфейс" вместо, очевидно, интерфейса.

Рекомендую изучить TAPL, если вас интересует эта тема.
Re[2]: Тип данных в программировании.
От: Albatros  
Дата: 27.02.11 16:09
Оценка:
Спасибо. Буду читать
Являясь Вечным Двигателем, Они приветствуют нашу наивность в попытках Его изобрести.
Re: Тип данных в программировании.
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.11 04:52
Оценка: 12 (1) +1
Здравствуйте, Albatros, Вы писали:

A>Здравствуйте! Написал небольшую работу, на неформальном языке, посвященную месту типа данных в программировании. Это не учебник, а систематизация моих знаний. Подумал может быть полезна для других. Был бы очень признателен за отзывы по работе. Если она выдержит критику, то в планах написать полную 3-ю главу в журнал. Архив с примерами доступен по ссылке. Там всего 24 страницы с примерами и списком использованной литературы.


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

На нашем сайте есть сервис Файлы. Добавляйте свои материалы в список своих файлов и давайте на них ссылки в сообщении. И не надо при этом сжимать материалы! Все равно на дохлых конектах используется аппаратное сжатие.

Оптимальные форматы публикации RSDN ML, HTML и PDF.

Еще лучше просто присылать статьи отверстанные в нашем шаблоне. Если хотите чтобы материал был без обработки и внутреннего рецензирования выложен в конкретный форум, то просто упомяните об этом и мы выложим материал с пометкой "не рецензировалось".
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Тип данных в программировании.
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.11 05:24
Оценка: 6 (1) +1
Здравствуйте, Albatros, Вы писали:

A>Здравствуйте! Написал небольшую работу, на неформальном языке, посвященную месту типа данных в программировании. Это не учебник, а систематизация моих знаний. Подумал может быть полезна для других. Был бы очень признателен за отзывы по работе. Если она выдержит критику, то в планах написать полную 3-ю главу в журнал. Архив с примерами доступен по ссылке. Там всего 24 страницы с примерами и списком использованной литературы.


Почитал... Не понял только одного. Как работа связанная с введением в Дельфи и списком всевозможных терминов (большая часть не имеющая никакого отношения ни к Дельфи, ни тем более, к типам) относится к типам данных?

К типам данных это писание не имеет никакого отношения.

Как введение в программирование этот материал тоже, на мой взгляд, плох, так как перепачкан не относящимися к делу вопросами. А идея начинать программирование с формочек порочна в принципе. Заниматься формолепством ради того чтобы вывести строку содержащую сумму двух числе — это верх отвлечения от темы. Сдается мне, что даже Дельфи к 21-ому веку доросла до применения консоли, которой здесь самое место.

Даже самое название статьи выглядит как-то странно — "Тип данных в прикладном программировании". Чем типы данных в системном программировании отличаются от них же в прикладном? Очевидно, ничем. Это одно и то же.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Тип данных в программировании.
От: Albatros  
Дата: 28.02.11 05:58
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Albatros, Вы писали:


VD>Почитал... Не понял только одного. Как работа связанная с введением в Дельфи и списком всевозможных терминов (большая часть не имеющая никакого отношения ни к Дельфи, ни тем более, к типам) относится к типам данных?


VD>К типам данных это писание не имеет никакого отношения.


VD>Как введение в программирование этот материал тоже, на мой взгляд, плох, так как перепачкан не относящимися к делу вопросами. А идея начинать программирование с формочек порочна в принципе. Заниматься формолепством ради того чтобы вывести строку содержащую сумму двух числе — это верх отвлечения от темы. Сдается мне, что даже Дельфи к 21-ому веку доросла до применения консоли, которой здесь самое место.


VD>Даже самое название статьи выглядит как-то странно — "Тип данных в прикладном программировании". Чем типы данных в системном программировании отличаются от них же в прикладном? Очевидно, ничем. Это одно и то же.


Термины — это фиксация предмета обсуждения. Работа не полностью написана, есть 3-я глава где идет попытка достучаться, что необходимо вводить изменения в ООП. Пишется 4-я, как взгляд на базы данных через типы данных. В примерах же идет акцентирование на типах данных. Работа — это не ввод в дельфи, эта работа задумывалась больше для старшеклассников, сам я работал 3 года преподавателем программирования в МГТУ "СТАНКИН", поэтому могу что-то написать на эту тему. В частности в полной 3-й главе предлагается ввести еще один вид сущностей, призванный закрыть один недостаток в ООП (либо использовать как архитектурный шаблон). Как узнаю как можно права защитить, так сразу выложу. Полную третью главу планирую оформить как статью, по вашим правилам.
С формочек начинал чтобы учились сразу работать с РАД системами. Там форма — только средство написания оконной программы, акцентирование идет на математике. Первый пример — раскрытие понятия тип данных. Второй — важность граммотного применения типов данных и заодно модульность в архитектуре ПО.
Название "Тип данных в прикладном программировании" — это отражение того, что работа имеет более широкий вопрос рассмотрения, нежели чисто понятие типа данных. В работе даются советы при программировании задач, востребованных бизнесом. Работа не привязана к дельфям, на них только примеры.
Являясь Вечным Двигателем, Они приветствуют нашу наивность в попытках Его изобрести.
Re[2]: Тип данных в программировании.
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.11 06:15
Оценка:
Здравствуйте, deniok, Вы писали:

D>На 22 странице опечатка "инерфейс" вместо, очевидно, интерфейса.


D>Рекомендую изучить TAPL, если вас интересует эта тема.


Хороший перевод, хотя это явно не для всех. Слишком формализовано и опять таки на базе типизирвоанных лямбда-ичислений, т.е. интересно в основном теоретикам.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Тип данных в программировании.
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 28.02.11 06:24
Оценка:
Здравствуйте, Albatros, Вы писали:

A>Здравствуйте, VladD2, Вы писали:


VD>>Здравствуйте, Albatros, Вы писали:


VD>>Почитал... Не понял только одного. Как работа связанная с введением в Дельфи и списком всевозможных терминов (большая часть не имеющая никакого отношения ни к Дельфи, ни тем более, к типам) относится к типам данных?


VD>>К типам данных это писание не имеет никакого отношения.


VD>>Как введение в программирование этот материал тоже, на мой взгляд, плох, так как перепачкан не относящимися к делу вопросами. А идея начинать программирование с формочек порочна в принципе. Заниматься формолепством ради того чтобы вывести строку содержащую сумму двух числе — это верх отвлечения от темы. Сдается мне, что даже Дельфи к 21-ому веку доросла до применения консоли, которой здесь самое место.


VD>>Даже самое название статьи выглядит как-то странно — "Тип данных в прикладном программировании". Чем типы данных в системном программировании отличаются от них же в прикладном? Очевидно, ничем. Это одно и то же.


A>Термины — это фиксация предмета обсуждения. Работа не полностью написана, есть 3-я глава где идет попытка достучаться, что необходимо вводить изменения в ООП. Пишется 4-я, как взгляд на базы данных через типы данных. В примерах же идет акцентирование на типах данных. Работа — это не ввод в дельфи, эта работа задумывалась больше для старшеклассников, сам я работал 3 года преподавателем программирования в МГТУ "СТАНКИН", поэтому могу что-то написать на эту тему.


1)Все что написано очень мало относится к типам данных. Скорее получилось введение в делфи с кучей непонятных слов.
2)Старшеклассники не знают множеств (это уже вышка, которую дают в универе), как объяснить типы не через множества —
3)Классическая ошибка для пейсателей статей по программированию: попытка объяснить ООП "на пальцах" с примерами типа наследования четырехугольника от многоугольника. В реальной разработке применение ООП на порядок сложнее, а вы пытаетесь учить неправильному.

A>В частности в полной 3-й главе предлагается ввести еще один вид сущностей, призванный закрыть один недостаток в ООП (либо использовать как архитектурный шаблон).

Не думаю что сферические старшеклассники осилят.

A>С формочек начинал чтобы учились сразу работать с РАД системами.Там форма — только средство написания оконной программы, акцентирование идет на математике.

На это уходит немалая часть объема. С консолькой, а лучше с каким-нить repl, можно было бы упростить себе жизнь.
Re: Тип данных в программировании.
От: batu Украина  
Дата: 28.02.11 06:32
Оценка:
Здравствуйте, Albatros, Вы писали:

A>Здравствуйте! Написал небольшую работу, на неформальном языке, посвященную месту типа данных в программировании. Это не учебник, а систематизация моих знаний. Подумал может быть полезна для других. Был бы очень признателен за отзывы по работе. Если она выдержит критику, то в планах написать полную 3-ю главу в журнал. Архив с примерами доступен по ссылке. Там всего 24 страницы с примерами и списком использованной литературы.

Тоже не понял предмета обсуждения.
Категорчиески не согласен с
1. определением
"Класс – пользовательский тип данных, представляющий такие члены класса, как атрибуты (создают структуру данных класса), события и методы (функции и процедуры). Значениями класса являются объекты."
Логичнее что бы класс порождал объекты, а типы порождали значения. Разница между объектами и значениями в операциях сравнения. И вообще объект равный себе один, а равных значений может быть много.. Ну, и еще там есть.. это классика..
2.
"И так, тип данных определяет множество значений, а также набор операций, которые можно применять к таким значениям."
Все таки операции определяются отдельно а не типом и это отдельная тема..
3. Потому следующее определение операций несколько легкомысленное.
"Оператор (операция) языка программирования. Это структурная единица языка программирования, представляющая инструмент человеку для формирования алгоритмов обработки данных (значений, операндов). Операторы бывают унарными и бинарными. Унарный оператор – действие над одним значением или переменной (или операндом). Бинарный оператор – над двумя. Возьмем, например, оператор «+» в Delphi. Если он стоит слева от значения, то это оператор обозначения знака числа. Если между двумя значениями (либо переменными) – то это оператор сложения."
Оператор и операция несколько разные вещи..Да и операции (в каком-то определении) бывают ассоциативными, префиксные, дистрибутивные и т.д... это все не маловажно..
4. Определение переменных может быть более менее справедливым только для императивной парадигмы.
"Переменная. С точки зрения архитектуры ЭВМ переменная – это структурная единица памяти, ячейка, куда кладутся данные. На аппаратном уровне переменная в процессоре – это регистры (ячейки) процессора, в хранилищах данных – набор единиц и нулей, имеющий свой адрес, чтобы можно было во множестве хранимых данных найти требуемые. С точки зрения языка программирования переменная – это структурная единица, необходимая для определения самого языка (это кирпичик языка). Но мы-то не процессоры, поэтому важнее понимать, что есть переменная для нас, программистов, владеющих каким-нибудь языком программирования. С точки зрения программиста переменная – это изменяемые данные прикладной области, их представление в тексте программы."


И вообще, я не понял о чем тут речь. И причем тут типы?
Re[4]: Тип данных в программировании.
От: Albatros  
Дата: 28.02.11 06:39
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>1)Все что написано очень мало относится к типам данных. Скорее получилось введение в делфи с кучей непонятных слов.

G>2)Старшеклассники не знают множеств (это уже вышка, которую дают в универе), как объяснить типы не через множества —
G>3)Классическая ошибка для пейсателей статей по программированию: попытка объяснить ООП "на пальцах" с примерами типа наследования четырехугольника от многоугольника. В реальной разработке применение ООП на порядок сложнее, а вы пытаетесь учить неправильному.

A>>В частности в полной 3-й главе предлагается ввести еще один вид сущностей, призванный закрыть один недостаток в ООП (либо использовать как архитектурный шаблон).

G>Не думаю что сферические старшеклассники осилят.

A>>С формочек начинал чтобы учились сразу работать с РАД системами.Там форма — только средство написания оконной программы, акцентирование идет на математике.

G>На это уходит немалая часть объема. С консолькой, а лучше с каким-нить repl, можно было бы упростить себе жизнь.

1. Это предмет обсуждения фиксируется. Невозможно типы данных описать без того, где они используются. Я же писал, что это неполный вариант. Полную 3-ю главу буду оформлять как статью. Пишу 4-ю главу про БД.
2. Можно и так, если сложно написано: тип данных "целые числа" включает в себя, например, значения ...,-3, -2, -1, 0, 1,... Усё
3. ООП я знакю что такое, разработал библиотеку визуальных компонентов Delphi(порядка 70 модулей по 1..30 классов в каждом)

Хорошо, если ООП описано неправильно, то что там неверно более конкретно?
Являясь Вечным Двигателем, Они приветствуют нашу наивность в попытках Его изобрести.
Re[2]: Тип данных в программировании.
От: Albatros  
Дата: 28.02.11 06:46
Оценка:
Здравствуйте, batu, Вы писали:

B>Тоже не понял предмета обсуждения.

B> Категорчиески не согласен с
B>1. определением
B>"Класс – пользовательский тип данных, представляющий такие члены класса, как атрибуты (создают структуру данных класса), события и методы (функции и процедуры). Значениями класса являются объекты."
B>Логичнее что бы класс порождал объекты, а типы порождали значения. Разница между объектами и значениями в операциях сравнения. И вообще объект равный себе один, а равных значений может быть много.. Ну, и еще там есть.. это классика..
B>2.
B>"И так, тип данных определяет множество значений, а также набор операций, которые можно применять к таким значениям."
B>Все таки операции определяются отдельно а не типом и это отдельная тема..
B>3. Потому следующее определение операций несколько легкомысленное.
B>"Оператор (операция) языка программирования. Это структурная единица языка программирования, представляющая инструмент человеку для формирования алгоритмов обработки данных (значений, операндов). Операторы бывают унарными и бинарными. Унарный оператор – действие над одним значением или переменной (или операндом). Бинарный оператор – над двумя. Возьмем, например, оператор «+» в Delphi. Если он стоит слева от значения, то это оператор обозначения знака числа. Если между двумя значениями (либо переменными) – то это оператор сложения."
B>Оператор и операция несколько разные вещи..Да и операции (в каком-то определении) бывают ассоциативными, префиксные, дистрибутивные и т.д... это все не маловажно..
B>4. Определение переменных может быть более менее справедливым только для императивной парадигмы.
B>"Переменная. С точки зрения архитектуры ЭВМ переменная – это структурная единица памяти, ячейка, куда кладутся данные. На аппаратном уровне переменная в процессоре – это регистры (ячейки) процессора, в хранилищах данных – набор единиц и нулей, имеющий свой адрес, чтобы можно было во множестве хранимых данных найти требуемые. С точки зрения языка программирования переменная – это структурная единица, необходимая для определения самого языка (это кирпичик языка). Но мы-то не процессоры, поэтому важнее понимать, что есть переменная для нас, программистов, владеющих каким-нибудь языком программирования. С точки зрения программиста переменная – это изменяемые данные прикладной области, их представление в тексте программы."


B>И вообще, я не понял о чем тут речь. И причем тут типы?


1. Значения, как и объекты, равные себе только одни. Город Москва — он один, число 7 — тоже одно. Это значения, как и объекты.
2. Это практически определение из ГОСТ.
3. Не понял замечания. Для неформальной фиксации предмета обсуждения считаю моего определения достаточно.
4. А для ООП, там нет переменных-указателейна объекты?? Бертрана Мейера не читали случаем, разработчика Эйфеля?
Являясь Вечным Двигателем, Они приветствуют нашу наивность в попытках Его изобрести.
Re[3]: Тип данных в программировании.
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.11 07:07
Оценка: +2
Здравствуйте, Albatros, Вы писали:

A>Термины — это фиксация предмета обсуждения.


Термины они нужны для чего-то, а ради самих себя. Вы же суете их без малейшей системы и следовательно смысла.
Нельзя излагать что-то от печки (т.е. рассчитывая на полное отсутствие знаний по предмету). Иначе вы начнете вводить "термины" для повседневных, общепринятых понятий и ваша работа превратится в некому не нужны сборник терминов.

A>Работа не полностью написана,


Мне кажется совершенно не важно дописана они или нет. Важно то, что она не отвечает задачам которые озвучены в ее названии.

A>есть 3-я глава где идет попытка достучаться, что необходимо вводить изменения в ООП.


Что само по себе весьма спорно. К тому же ООП это очень общий термин. В конце концов Смолток или ЖабаСкрип — это тоже ООП.

A>Пишется 4-я,


Я бы для начала разобрался с первой. Определился бы с целями работы и выкинул из нее все лишнее. В первую очередь формочки и не относящиеся к делу термины. Все термины давно описаны в инциклопедиях. Например, в Википедии, откуда вы, как я понимаю, и черпали определения. Ну, так не давайте ссылки на эти определения, если считаете, что читатель может быть с ними не знаком.

A>как взгляд на базы данных через типы данных.


Лет за 30 до вас это сделал Кодд. Вы хотите изложить его мысли в более доступной форме или у вас есть новая теория?

A>В примерах же идет акцентирование на типах данных.


В примерах ваших идут кнопки формы и простейшие мысли. Причем за кнопками уже этих простейших мыслей не разглядеть.

A> Работа — это не ввод в дельфи, эта работа задумывалась больше для старшеклассников,


"Работа не по Дельфи, а для старшеклассников" — это само по себе пример демонстрации алогичного мышления. Какая связь между тем о чем материал и на кого он рассчитан? Будь ваша работа рассчитана на докторов наук, она не перестала бы быть посвящена введению в дельфи.

A> сам я работал 3 года преподавателем программирования в МГТУ "СТАНКИН", поэтому могу что-то написать на эту тему.


На какую тему то? У вас получился рассказ на тему как сложить два числа с использованием формы Дельфи. К теории типов и типам это имеет очень отдаленное отношение.

Вам выше привели ссылку на классическую работу по теории типов. Единственная ее проблема — это сильная заформализованность. Очень советую прочесть ее и подумать как изложить тоже самое до менее формально (в расчете на тех самых старшеклассников, хотя им вряд ли это нужно... не тот уровень базовых знаний).

A> В частности в полной 3-й главе предлагается ввести еще один вид сущностей, призванный закрыть один недостаток в ООП (либо использовать как архитектурный шаблон). Как узнаю как можно права защитить, так сразу выложу.


Пока что это все выглядит как клоунада. Наивно полагать, что при столь поверхностном рассмотрении вопросов вы смогли сказать новое слово в науке.

Права ваши же защищаются законами нашей и других стран. По нашим законам авторское право всегда принадлежит автору. И уже на основании этого права автор может давать права на публикацию своих работ. Права на алгоритмы защитить нельзя. Права на изобретения регулируются патентами (но как я уже сказал запатентовать алгоритм невозможно).

Так что вам надо определиться с тем, что вы хотите добиться. Если первенства идей, то вам достаточно опубликовать эти идеи под своим именем первым. В принципе для этого достаточно публикации в Интернет. Если есть желание получить более официальный статус публикации, то нужно опубликоваться в одном из научных журналов (если конечно публикацию не зарежут), одним из которых является RSDN Magazine (т.е. журнал этого сайта).

A>Полную третью главу планирую оформить как статью, по вашим правилам.

A>С формочек начинал чтобы учились сразу работать с РАД системами.

Зачем? Те кто начинают с РАДостей часто ими и заканчивают. Для ваших задач нужен банальный консольный вывод. Если работа посвящена типам, то о них и надо в основном говорить. А все остальное должно быть не более чем неизбежным антуражем.

A>Там форма — только средство написания оконной программы, акцентирование идет на математике. Первый пример — раскрытие понятия тип данных. Второй — важность граммотного применения типов данных и заодно модульность в архитектуре ПО.


Ваш первый пример — арифметическое выражение находится на четвертой странице и при этом до него нет ничего связанного с типами. До этого едет попытка изложить все что нужно человеку для понимания компьютера. Только вот работа не называется "введение в информатику". А уж определения вроде "Прикладная область" вообще ни в какие ворота не лезут.

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

Но, на мой взгляд, серьезное рассмотрение типов для начинающих просто не имеет смысла. У них другие проблемы. Им бы понять смысл программирования и т.п. А типы они, как не странно, проглотят без проблем даже если их отдельно не объяснять. Я учился программировать на С. В С типы везде. Но это не привело к кому-то не пониманию.

A>Название "Тип данных в прикладном программировании" — это отражение того, что работа имеет более широкий вопрос рассмотрения, нежели чисто понятие типа данных. В работе даются советы при программировании задач, востребованных бизнесом. Работа не привязана к дельфям, на них только примеры.


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

Ну, и хочется заметить, что бизнесу Дельфи уже вряд ли когда-то понадобится. Дельфи окончательно слила свои позиции. Сейчас ее место занял C# и VB, которые имеют ту же систему типов, что и Дельфи. В прочем, с точки зрения теории типов совершенно по барабану на чем излагать. В большинстве классических работ просто придумывается свой язык программирования, правда, обычно, он до боли похож на ML . Но это понятно почему происходит. Эти работы исходят из типизированных лямбда-исчислений, а все что не вписывается в него прибивают сбоку гвоздями.

ЗЫ

В общем, очень советую вам отложить ваш материал на пару недель. Потом сесть, описать на листочке список целей излоежения и попробовать критически прочесть свой материал еще раз.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Тип данных в программировании.
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.11 07:22
Оценка:
Здравствуйте, Albatros, Вы писали:

A>Здравствуйте! Написал небольшую работу, на неформальном языке, посвященную месту типа данных в программировании. Это не учебник, а систематизация моих знаний. Подумал может быть полезна для других. Был бы очень признателен за отзывы по работе. Если она выдержит критику, то в планах написать полную 3-ю главу в журнал. Архив с примерами доступен по ссылке. Там всего 24 страницы с примерами и списком использованной литературы.


Попробую пояснить свои претензии на примерах:

Выражение. Выражения используются программистами для общения с ЭВМ, поэтому выражение – это представление алгоритма закладываемого в программу во время проектирования. Выражения представляются операторами языка программирования.

Оператор (операция) языка программирования. Это структурная единица языка программирования, представляющая инструмент человеку для формирования алгоритмов обработки данных (значений, операндов). Операторы бывают унарными и бинарными. Унарный оператор – действие над одним значением или переменной (или операндом). Бинарный оператор – над двумя. Возьмем, например, оператор «+» в Delphi. Если он стоит слева от значения, то это оператор обозначения знака числа. Если между двумя значениями (либо переменными) – то это оператор сложения.

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


Зачем эти определения в статье по типам? С тем же успехом можно дать определения "ЭВМ", "языка" и т.п.

Кроме того определения очень поверхностные. По вашему Выражение — это представление алгоритма, а алгоритм последовательность обработки данных, то есть или что-то аморфное, или по сути последовательность выражений, т.е. рекурсивное определение.

Переменная Caption – это текст надписи Label1, которую мы кидали при создании примера. Сами слова «Caption» и «Label1» и полностью «Label1.Caption» являются именами переменных. Эти переменные были созданы автоматически, когда кидали компонент надписи на форму.


Зачем это поверхностное, но тем не менее сложное изложение? Почему нельзя было просто вывести надпись на консоль? Целая кипа концепций ушла бы из виду, а суть изложения осталась бы и стала бы яснее.

Символ «;» — в Delphi это символ разделения операторов.


И вы продолжаете утверждать, что пишете не о Дельфи, а о типах?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Тип данных в программировании.
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.02.11 07:25
Оценка: +1
Здравствуйте, Albatros, Вы писали:

A>Здравствуйте! Написал небольшую работу, на неформальном языке, посвященную месту типа данных в программировании. Это не учебник, а систематизация моих знаний. Подумал может быть полезна для других. Был бы очень признателен за отзывы по работе. Если она выдержит критику, то в планах написать полную 3-ю главу в журнал.


К типам статья имеет мало отношения. Но содержит множество неточностей и сомнительных утверждений. Например:

Качество программы задает необходимую степень минимизации трудозатрат на разработку программы и еѐ использование человеком.

Несерьезно, особенно о минимизации трудозатрат.

С точки зрения языка программирования переменная – это структурная единица,
необходимая для определения самого языка (это кирпичик языка).

а ведь есть языки без переменных, что ставит под сомнение необходимость.

Значение. В контексте того, что уже знаем, получаем следующее определение: значение
– это данные в переменной (в памяти компьютера), представленные в конкретный момент
времени.

Значения бывают и вне переменных.

По моему мнению, предшественницей объективно-ориентированного программирования была методология процедурного программирования с императивным синтаксисом языка.

что за императивный синтаксис и чему он противопоставляется?

Теперь давайте перейдем к объектно-ориентированной парадигме в программировании. Основным понятие в ООП является класс.

Это не так в отношении парадигмы. Класс — это специфика некоторых ООЯ.

Класс – пользовательский тип данных,

Неверно. Класс — это шаблон объекта, набор метаданных.

Класс – это статическое понятие времени проектирования, в то время как объекты – динамическое понятие времени выполнения.

специфично для языков со статической типизацией.

Говорят, что класс Б наследует от класса А, когда класс Б получает функциональность класса А при определении класса Б.

туманное определение

Для полного понимания различий необходимо определить еще одно понятие. Полиморфизм отражает ту характеристику методологии, согласно которой с объектом можно работать как с объектом другого класса, экземпляром которого он тоже является

Не уверен, что это определение. Тем более, речь о частном случае полиморфизма как такового.

Теперь о главном в примере: четырехугольник наследует характеристики многоугольников.

Букварный случай нарушения LSP в ООП.

Агрегация – еще один способ повторного использования кода и создания архитектуры классов, наряду с наследованием.

Где композиция?

Инкапсуляция (сокрытие информации) – механизм парадигмы, позволяющий скрывать внутренний функционал класса от классов, его использующих.

понятие вне парадигмы ООП, даже когда речь идет о сокрытии. Правильнее будет сказать "механизм, который использует парадигма". Но это опять определение в стиле "колесо — это то что у велосипеда круглое".
Re[4]: Тип данных в программировании.
От: Albatros  
Дата: 28.02.11 07:27
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Albatros, Вы писали:


A>>Термины — это фиксация предмета обсуждения.


VD>Термины они нужны для чего-то, а ради самих себя. Вы же суете их без малейшей системы и следовательно смысла.

VD>Нельзя излагать что-то от печки (т.е. рассчитывая на полное отсутствие знаний по предмету). Иначе вы начнете вводить "термины" для повседневных, общепринятых понятий и ваша работа превратится в некому не нужны сборник терминов.

A>>Работа не полностью написана,


VD>Мне кажется совершенно не важно дописана они или нет. Важно то, что она не отвечает задачам которые озвучены в ее названии.


A>>есть 3-я глава где идет попытка достучаться, что необходимо вводить изменения в ООП.


VD>Что само по себе весьма спорно. К тому же ООП это очень общий термин. В конце концов Смолток или ЖабаСкрип — это тоже ООП.


A>>Пишется 4-я,


VD>Я бы для начала разобрался с первой. Определился бы с целями работы и выкинул из нее все лишнее. В первую очередь формочки и не относящиеся к делу термины. Все термины давно описаны в инциклопедиях. Например, в Википедии, откуда вы, как я понимаю, и черпали определения. Ну, так не давайте ссылки на эти определения, если считаете, что читатель может быть с ними не знаком.


A>>как взгляд на базы данных через типы данных.


VD>Лет за 30 до вас это сделал Кодд. Вы хотите изложить его мысли в более доступной форме или у вас есть новая теория?


A>>В примерах же идет акцентирование на типах данных.


VD>В примерах ваших идут кнопки формы и простейшие мысли. Причем за кнопками уже этих простейших мыслей не разглядеть.


A>> Работа — это не ввод в дельфи, эта работа задумывалась больше для старшеклассников,


VD>"Работа не по Дельфи, а для старшеклассников" — это само по себе пример демонстрации алогичного мышления. Какая связь между тем о чем материал и на кого он рассчитан? Будь ваша работа рассчитана на докторов наук, она не перестала бы быть посвящена введению в дельфи.


A>> сам я работал 3 года преподавателем программирования в МГТУ "СТАНКИН", поэтому могу что-то написать на эту тему.


VD>На какую тему то? У вас получился рассказ на тему как сложить два числа с использованием формы Дельфи. К теории типов и типам это имеет очень отдаленное отношение.


VD>Вам выше привели ссылку на классическую работу по теории типов. Единственная ее проблема — это сильная заформализованность. Очень советую прочесть ее и подумать как изложить тоже самое до менее формально (в расчете на тех самых старшеклассников, хотя им вряд ли это нужно... не тот уровень базовых знаний).


A>> В частности в полной 3-й главе предлагается ввести еще один вид сущностей, призванный закрыть один недостаток в ООП (либо использовать как архитектурный шаблон). Как узнаю как можно права защитить, так сразу выложу.


VD>Пока что это все выглядит как клоунада. Наивно полагать, что при столь поверхностном рассмотрении вопросов вы смогли сказать новое слово в науке.


VD>Права ваши же защищаются законами нашей и других стран. По нашим законам авторское право всегда принадлежит автору. И уже на основании этого права автор может давать права на публикацию своих работ. Права на алгоритмы защитить нельзя. Права на изобретения регулируются патентами (но как я уже сказал запатентовать алгоритм невозможно).


VD>Так что вам надо определиться с тем, что вы хотите добиться. Если первенства идей, то вам достаточно опубликовать эти идеи под своим именем первым. В принципе для этого достаточно публикации в Интернет. Если есть желание получить более официальный статус публикации, то нужно опубликоваться в одном из научных журналов (если конечно публикацию не зарежут), одним из которых является RSDN Magazine (т.е. журнал этого сайта).


A>>Полную третью главу планирую оформить как статью, по вашим правилам.

A>>С формочек начинал чтобы учились сразу работать с РАД системами.

VD>Зачем? Те кто начинают с РАДостей часто ими и заканчивают. Для ваших задач нужен банальный консольный вывод. Если работа посвящена типам, то о них и надо в основном говорить. А все остальное должно быть не более чем неизбежным антуражем.


A>>Там форма — только средство написания оконной программы, акцентирование идет на математике. Первый пример — раскрытие понятия тип данных. Второй — важность граммотного применения типов данных и заодно модульность в архитектуре ПО.


VD>Ваш первый пример — арифметическое выражение находится на четвертой странице и при этом до него нет ничего связанного с типами. До этого едет попытка изложить все что нужно человеку для понимания компьютера. Только вот работа не называется "введение в информатику". А уж определения вроде "Прикладная область" вообще ни в какие ворота не лезут.


VD>Если вы позиционируете работу на новичков, то вместо того чтобы пудрить им мозг терминами лучше сосредоточьтесь на толковом и доходчивом объяснении сути типов. При этом рассчитайте на то, что человек уже имеет хоть какие-то знания в информатике.


VD>Но, на мой взгляд, серьезное рассмотрение типов для начинающих просто не имеет смысла. У них другие проблемы. Им бы понять смысл программирования и т.п. А типы они, как не странно, проглотят без проблем даже если их отдельно не объяснять. Я учился программировать на С. В С типы везде. Но это не привело к кому-то не пониманию.


A>>Название "Тип данных в прикладном программировании" — это отражение того, что работа имеет более широкий вопрос рассмотрения, нежели чисто понятие типа данных. В работе даются советы при программировании задач, востребованных бизнесом. Работа не привязана к дельфям, на них только примеры.


VD>Вы уж определитесь, или вы дате советы начинающим о том что им потребуется в бизнесе, или о типах данных при разработке программ. Для последнего нет никакой разницы пишется ли программа эмуляции физических процессов или бухгалтерия.


VD>Ну, и хочется заметить, что бизнесу Дельфи уже вряд ли когда-то понадобится. Дельфи окончательно слила свои позиции. Сейчас ее место занял C# и VB, которые имеют ту же систему типов, что и Дельфи. В прочем, с точки зрения теории типов совершенно по барабану на чем излагать. В большинстве классических работ просто придумывается свой язык программирования, правда, обычно, он до боли похож на ML . Но это понятно почему происходит. Эти работы исходят из типизированных лямбда-исчислений, а все что не вписывается в него прибивают сбоку гвоздями.


VD>ЗЫ


VD>В общем, очень советую вам отложить ваш материал на пару недель. Потом сесть, описать на листочке список целей излоежения и попробовать критически прочесть свой материал еще раз.


Спасибо за развернутый ответ. Наиболее точно цель работы описывается как "Строгая типизация в программировании". Допишу про строгую типизацию языка программирования, собственно. Если говорить о работе(на данном этапе её разработки), как о наброске советов начинающим, то акцентирование внимания на типах данных считаю важнейшем среди них. 3-я глава будет отдельно оформлена, по вашим правилам. Как выложить, чтобы подать заявку на рассмотрение для журнала?
С#, как язык с чисто объектно-ориентированным синтаксисом, не является тем, куда он позиционируется. Я это опишу в 3 главе. Хочу уже выложить .
Являясь Вечным Двигателем, Они приветствуют нашу наивность в попытках Его изобрести.
Re[5]: Тип данных в программировании.
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.02.11 07:33
Оценка:
Здравствуйте, Albatros, Вы писали:

A>Спасибо за развернутый ответ. Наиболее точно цель работы описывается как "Строгая типизация в программировании".

Этому названию работа тоже не соответствует. Да и странно писать такую работу с примерами где работает неявное приведение и на языке с нестрогой типизацией.

З.Ы. Оверквотинг не приветствуется
Re[6]: Тип данных в программировании.
От: Albatros  
Дата: 28.02.11 07:56
Оценка: :))) :)
Здравствуйте, samius, Вы писали:

S>Здравствуйте, Albatros, Вы писали:


A>>Спасибо за развернутый ответ. Наиболее точно цель работы описывается как "Строгая типизация в программировании".

S>Этому названию работа тоже не соответствует. Да и странно писать такую работу с примерами где работает неявное приведение и на языке с нестрогой типизацией.

S>З.Ы. Оверквотинг не приветствуется


В квоту будет помещаться только полная 3-я глава. Её оформлю как заявку на статью. Эта работа — возможная будущая книга на тему типизации.
Являясь Вечным Двигателем, Они приветствуют нашу наивность в попытках Его изобрести.
Re[3]: Тип данных в программировании.
От: batu Украина  
Дата: 28.02.11 08:15
Оценка:
Здравствуйте, Albatros, Вы писали:


B>>И вообще, я не понял о чем тут речь. И причем тут типы?


A>1. Значения, как и объекты, равные себе только одни. Город Москва — он один, число 7 — тоже одно. Это значения, как и объекты.

Имеем объект "Служащий". Меняем ему зарплату. Объект остался тот же. Имеем Дату. Меняем месяц. Значение изменилось. Кроме того таких же дат (равных) может хранится в памяти сколько угодно. Однако объект "Служащий" может быть только один и равен только самому себе.
A>2. Это практически определение из ГОСТ.
Хреновое определение.
A>3. Не понял замечания. Для неформальной фиксации предмета обсуждения считаю моего определения достаточно.
Увы, что я могу еще сказать..
A>4. А для ООП, там нет переменных-указателейна объекты?? Бертрана Мейера не читали случаем, разработчика Эйфеля?
И его читал.. А еще и функциональные языки (хаскель и лисп) и логические (пролог). Займись. Там не совсем так с переменными..
Re[7]: Тип данных в программировании.
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.02.11 08:32
Оценка: +2
Здравствуйте, Albatros, Вы писали:

A>Здравствуйте, samius, Вы писали:


S>>Здравствуйте, Albatros, Вы писали:


S>>З.Ы. Оверквотинг не приветствуется


A>В квоту будет помещаться только полная 3-я глава. Её оформлю как заявку на статью.

Я про избыточное цитирование других постов.

A>Эта работа — возможная будущая книга на тему типизации.

Без обид! уровень этой работы — реферат на вольную тему. Тема типизации не раскрыта.
Re[5]: Тип данных в программировании.
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 28.02.11 08:44
Оценка:
Здравствуйте, Albatros, Вы писали:

A>Здравствуйте, gandjustas, Вы писали:


G>>1)Все что написано очень мало относится к типам данных. Скорее получилось введение в делфи с кучей непонятных слов.

G>>2)Старшеклассники не знают множеств (это уже вышка, которую дают в универе), как объяснить типы не через множества —
G>>3)Классическая ошибка для пейсателей статей по программированию: попытка объяснить ООП "на пальцах" с примерами типа наследования четырехугольника от многоугольника. В реальной разработке применение ООП на порядок сложнее, а вы пытаетесь учить неправильному.

A>>>В частности в полной 3-й главе предлагается ввести еще один вид сущностей, призванный закрыть один недостаток в ООП (либо использовать как архитектурный шаблон).

G>>Не думаю что сферические старшеклассники осилят.

A>>>С формочек начинал чтобы учились сразу работать с РАД системами.Там форма — только средство написания оконной программы, акцентирование идет на математике.

G>>На это уходит немалая часть объема. С консолькой, а лучше с каким-нить repl, можно было бы упростить себе жизнь.

A>1. Это предмет обсуждения фиксируется. Невозможно типы данных описать без того, где они используются. Я же писал, что это неполный вариант. Полную 3-ю главу буду оформлять как статью. Пишу 4-ю главу про БД.

A>2. Можно и так, если сложно написано: тип данных "целые числа" включает в себя, например, значения ...,-3, -2, -1, 0, 1,... Усё
A>3. ООП я знакю что такое, разработал библиотеку визуальных компонентов Delphi(порядка 70 модулей по 1..30 классов в каждом)

1)Обсуждения как такового нет. Про типы сказано мало и не по теме. Вообще слабовата система типов в делфи, чтобы о типах в этом контексте говорить.
2)Компьютерная арифметика нереально сложна для того чтобы описывать типы, например сколько будет 2000000000+2000000000? Если говорить о целочесленных типах как о диапазонах, то тоже плохо получается. Например int-2^31..2^31), (+): (int,int) -> ? какой тип на выходе? По логике (-2^32..2^32), но почему то делфи и другие языки с этим несогласны.
Вообще у Кнута немалая часть книги посвящена компьютерной арифметике.

A>Хорошо, если ООП описано неправильно, то что там неверно более конкретно?

Примеры неадекватны.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.