Кто создал язык программирования 1с
История программы 1С начинается в 1991 году, когда российский разработчик Б.Г. Нуралиев создал приложение для пакетной обработки результатов электронных биржевых торгов. В основу разработки легли электронные таблицы Lotus. Изобретение предназначалось для крупных предприятий и стоило достаточно дорого, поэтому распространялось только через дилерскую сеть. Первая версия программы работала на компьютерах с системой DOS и была мало похожа на современные способы отражения хозяйственных операций. Наша организация оказывает услуги по доставке оборудования для применения технологий радиочастотной идентификации RFID.
Становление и развитие программы 1С
Прототип современной версии 1С-Бухгалтерия появился в 1992 году и выпускался на дискетах. Активное внедрение 1С на предприятиях России началось в 1994 году с создания программы для Windows и запуска собственной франчайзинговой сети. Важнейшим моментом деятельности компании стал 1998 год, когда 1С стала совместима с протоколом MS SQL и получила собственный конфигуратор.
В 2002 году была улучшена производительность программы, создан собственный язык запросов и система компоновки данных. Это позволило компании конкурировать и мировыми производителями и переработать систему удаленного взаимодействия с клиентами. Версия 8.0 была дополнена готовыми решениями для автоматизации прикладных задач различной сложности. Благодаря гибкости настроек, программа стала применима в торговой деятельности, сфере обслуживания, транспорте, бухгалтерском и налоговом учете, при планировании, бюджетировании и выполнении финансового анализа. В значительной степени расширился спектр стандартных решений на базе 1С.
До версии 8.2 программа не работала с тонкими клиентами связи и внешними источниками данных. Нововведения позволило пользователям подключать сторонние базы данных и переносить информацию из приложений для Windows. Версии 1С нового поколения имеют приложения для электронных устройств, совместимые с Android и IOS, а также улучшенную масштабируемость и облачные сервисы для хранения информации. Система контроля и сбора данных Моби-С позволяет автоматизировать мобильные продажи и обрабатывать любую мерчендайзинговую информацию.
Средой исполнения языка является программная платформа «1С:Предприятие». Визуальная среда разработки («Конфигуратор») является неотъемлемой частью пакета программ «1С:Предприятие».
Диалекты языка для платформ 1С 7 версий (7.0, 7.5, 7.7) совместимы «снизу вверх» с незначительными исключениями. Языки для платформ 1С:7х и 1С:8х совместимы по основным операторам, но значительно отличаются в работе с прикладными объектами, вследствие чего перенос кода из 1С:7х в 1С:8х не имеет смысла.
Встроенный язык 1С:8 наиболее подобен по своему синтаксису языку Visual Basic.
Платформой предоставляется фиксированный набор базовых классов, ориентированных на решение типовых задач прикладной области:
- Константа,
- Справочник,
- Документ,
- Журнал документов,
- Перечисление,
- Отчет,
- Обработка
- План счетов и др.
Основными видами объектов метаданных являются: Справочники, Документы, Отчеты, Обработки, Планы видов характеристик, Планы счетов, Планы видов расчета, Регистры сведений, Регистры накопления, Регистры расчета, Бизнес-процессы, Задачи.
Поддерживаются русский и английский синтаксис команд.
Содержание
История развития
Объектно-ориентированные диалекты
Существует несколько дополнительных компонентов, расширяющих основные классы, их свободное добавление и изменение; фирмой- разработчиком они не рекомендованы к использованию. Это означает, что фирма 1С и её франчайзи отказываются от какой-либо технической поддержки конфигураций, использующих такие компоненты.
Так компонента 1С++ [1] расширяет язык 1С средствами полноценного объектно-ориентированного программирования. Её использование значительно расширяет возможности конфигурирования 1С. Это свободный программный продукт, распространяемый под лицензией GPL.
Пожалуйста, оформите его согласно правилам оформления статей.Пример программы
Классический пример вывода текстовой строки встроенный язык 1С:Предприятие 7.7:
Сообщить( "Здравствуй, Мир!" );
Пример функции, возвращающей квадрат числа:
Функция КвадратЧисла ( прЧисло )
Возврат прЧисло * прЧисло ;
См. также
Примечания
Ссылки
- Языки программирования по алфавиту
- Языки программирования с русскими ключевыми словами
Wikimedia Foundation . 2010 .
Полезное
Смотреть что такое "Встроенный язык программирования 1С:Предприятие" в других словарях:
Языки программирования, основанные не на английском — языке такие языки программирования, которые, в отличие от большинства распространенных языков, не используют ключевые слова, взятые из английской лексики. Содержание 1 Преобладание языков программирования, основанных на английском … Википедия
Языки программирования c ключевыми словами не на английском — Языки программирования, основанные не на английском языке такие языки программирования, которые, в отличие от большинства распространенных языков, не используют ключевые слова, взятые из английской лексики. Содержание 1 Преобладание языков програ … Википедия
1С:Предприятие — Проверить нейтральность. На странице обсуждения должны быть подробности … Википедия
RSL — Класс языка: процедурный, объектно ориентированный Тип исполнения: интерпретируемый Появился в: 1994 Автор(ы): Сергей Кубрин Расширение файлов: mac … Википедия
Встроенный язык программирования 1С:Предприятие — язык программирования, который используется в семействе программ «1С:Предприятие». Данный язык является предварительно компилируемым предметно-ориентированным языком высокого уровня.
Средой исполнения языка является программная платформа «1С:Предприятие». Визуальная среда разработки («Конфигуратор») является неотъемлемой частью пакета программ «1С:Предприятие».
Диалекты языка для платформ 1С 6; 7 версий (7.0, 7.5, 7.7) совместимы «снизу вверх» с незначительными исключениями; языки для платформ 1С:6 и 1С:7х и 1С:8.0 несовместимы. Встроенный язык 1С:8 наиболее подобен по своему синтаксису языку Visual Basic.
Платформой предоставляется фиксированный набор базовых классов, ориентированных на решение типовых задач прикладной области:
- Константа,
- Справочник,
- Документ,
- Журнал документов,
- Перечисление,
- Отчет,
- Обработка
- План счетов и др.
На основании базовых классов средствами визуального конфигурирования можно создавать любое количество порождённых классов (возможность определить новый класс программно - отсутствует). Допускается только одна явная ступень наследования классов. Как правило, объекты порождённых классов представляют собой записи (или некоторые наборы записей) в базе данных. Такие классы образуют «Дерево метаданных». В терминах встроенного языка программирования 1С такие классы называются объектами метаданных.
Основными видами объектов метаданных являются: Справочники, Документы, Отчеты, Обработки, Планы видов характеристик, Планы счетов, Планы видов расчета, Регистры сведений, Регистры накопления, Регистры расчета, Бизнес-процессы, Задачи.
Поддерживаются русский и английский синтаксис команд.
Проекты на встроенном языке 1С:Предприятия называются конфигурациями. Распространение (продажа) и внедрение таких конфигураций — это основная коммерческая деятельность фирм-партнёров 1С.
Рабочее название языка — «1Сик» («одинэсик») — очень быстро исчезло из официальных источников. Сейчас при упоминании этого языка в письменных документах нужно писать 1С Язык программирования. Сейчас язык не имеет никакого названия, которое можно было бы произнести устно. Впрочем часто этот язык называют «встроенный язык», в контексте обсуждения 1С:Предприятия.
Содержание
История развития
Объектно-ориентированные диалекты
Существует несколько дополнительных компонент, расширяющих основные классы, их свободное добавление и изменение; фирмой- разработчиком они не рекомендованы к использованию. Это означает, что фирма 1С и её франчайзи отказываются от какой либо технической поддержки конфигураций, использующих такие компоненты.
Так компонента 1С++ [1] расширяет язык 1С средствами полноценного объектно-ориентированного программирования. Её использование значительно расширяет возможности конфигурирования 1С. Это свободный программный продукт, распространяемый под лицензией GPL.
Более того — существует полностью свободный проект 2C [2] [3] , не использующий каких либо проприетарных модулей фирмы 1С или других производителей. Это переписанное «с нуля» свободно распространяемое под лицензией GPL расширяемое ядро 1С-подобной системы, в котором даже такие «встроенные объекты» 1C как справочники и регистры — переопределяемые прикладным программистом классы.
Язык платформы 2С проектировался с целью максимальной преемственности с существующими для 1С наработками, и является расширением базового языка 1С. Путём написания соответствующих базовых классов язык 2С может быть приближен как к 1С 7.7, так и к 1С 8.0, хотя 2С:Платформа и не может обеспечить 100 % автоматическую переносимость конфигураций из той или иной версии 1С:Предприятия.
При создании языка D была сделана попытка соединить производительность компилируемых языков с безопасностью и выразительностью динамических языков программирования. Код на языке D обычно работает так же быстро как эквивалентный код на C++, при этом программа на D короче и обеспечивает безопасный доступ к памяти.
Стабильная версия компилятора 1.0 вышла 2 января 2007 [3] . Экспериментальная версия компилятора 2.0 выпущена 17 июня 2007 года. [4]
Стабильная версия компилятора 1.0 работает на Windows, Linux, Mac OS, а с версии 1.043 также и на FreeBSD. Также для загрузки доступны исходные коды DMD (официальная реализация компилятора от Digital Mars) [5] .
на страницу обсуждения участника, создавшего статью
Автору статьи: Авторские права, Получение разрешений, Что делать?
Содержание
Возможности, унаследованные от C++
Для D не существует виртуальной машины. Программы, написанные на D, компилируются в объектные файлы, которые затем могут быть объединены компоновщиком в исполняемый файл. Стандартные инструменты для разработки на С++ (например make) могут быть использованы для D.
- Частично сохранены синтаксис и семантика языков C и C++.
- Программы на D могут быть написаны с использованием функционального и объектно-ориентированного подходов, а также с использованием шаблонов или любой комбинации этих трех подходов.
- Поддерживается модель разработки по этапам компиляция/компоновка/отладка (compile/link/debug).
- Код D возможно скомпилировать в байт-код стандартными средствами и интерпретировать его. . в реальном времени. Отчасти это было реализовано и в C++. Способ приведения типов в языке D позволяет улучшить процесс сборки мусора и облегчить процесс отладки.
- D сохранил совместимость с соглашением о вызове функций в языке C, что оставило возможность прямого доступа из кода на языке D напрямую к API. . .
Что отсутствует в языке D
Для чего предназначен язык D
- Использование анализаторов кода;
- Компиляция с максимальным количеством включенных уровней предупреждений (warning levels);
- Упрощение и укрощение ООП C++;
- Автоматическое управление памятью;
- Встроенное тестирование и верификация;
- Написание крупных приложений;
- Встроенное автоматическое написание программ;
- Абстрактная работа с указателями;
- Программирование математики. Язык D поддерживает работу с комплексными числами и операторами определения NaN’ов (not a number) и бесконечностей (infinity). Они были добавлены в стандарт C99, но не были добавлены в C++;
Для чего D не предназначен
- Для переноса на него в неизменном виде старого (legacy) кода на С/С++;
- Скриптового программирования;
- Изучения в качестве первого языка программирования.
Особенности языка D
Объектно-ориентированное программирование
Классы
Объектно-ориентированная природа языка D происходит от классов. Модель наследования не поддерживает наследования от нескольких классов, зато расширяется за счет использования интерфейсов. На вершине иерархии наследования находится класс Object , от которого все классы наследуют базовый набор функциональности. Экземпляры классов работают по ссылке, поэтому после обработки исключений не требуется писать сложный код для очистки памяти.
Перегрузка операторов
Классы могут быть приспособлены для работы с уже существующими операторами. Например, можно создать класс для работы с большими числами и перегрузить операторы + , - , * и / , чтобы использовать алгебраические операции с этими числами.
Эффективность
Модули
Объявление против описания
И более нет необходимости отдельного описания функций-членов, атрибутов и спецификаций внешних объявлений ( extern ), как в языке C++:
Заметка: Конечно же, в C++ тривиальные функции вроде < return 7; >тоже могут быть описаны внутри класса, но более сложные рекомендуется определять вне класса. Вдобавок, если нужны опережающие ссылки (ссылки на класс или функцию, которые объявлены, но ещё не определены), то для этих объектов нужны прототипы (prototype). Следующий код не будет работать в C++:
Но эквивалентный код на языке D будет рабочим:
А то, будет ли функция встраиваемой (при компиляции вызов такой функции заменяется ее кодом) или нет, в языке D зависит от настроек оптимизатора.
Шаблоны
Шаблоны в языке D предлагают простой путь поддержки обобщенного программирования, в то же время обеспечивая использование частичной специализации.
Ассоциативные массивы
Настоящий typedef
В языках C и C++ оператор typedef на самом деле просто создает синоним типа данных и никакого нового типа данных не объявляется. В языке D оператор typedef объявляет новый тип данных. Таким образом, код
создает новый тип данных handle. К новому типу данных применяется проверка на соответствие типу данных, а также при перегрузке функций новый тип данных отличается от того типа данных, на основе которого он был создан. Например:
Документация
Для генерации документации в языке C++ существуют инструментальные средства, разрабатываемые отдельно от компиляторов. Использование этих инструментальных средств имеет ряд недостатков:
Будучи встроенным в компилятор, генерирование документации является единой для всех реализаций языка D.
Функции
Язык D имеет поддержку обычных функций, включая глобальные функции, перегруженные функции, встраивание функций, методы классов, виртуальные методы классов, указатели на функции. Также в D реализованы:
Вложенные функции
Функции могут быть объявлены в теле других функций, что очень полезно для ограничения области видимости вспомогательных функций.
Функциональные литералы (function literals)
Анонимные функции могут быть встроены напрямую в выражение.
Динамические делегирования (closure)
Встроенные функции и методы классов могут использоваться при делегировании обязанностей, что делает обобщенное программирование проще.
Спецификаторы доступа к параметрам функций: in, out и inout
Данные спецификаторы не только делают объявления функций говорящими сами за себя, но и открывает возможности компилятора для помощи в нахождении ошибок.
Все эти возможности D позволяют использовать больше различных программных интерфейсов, а также избавляет от необходимости использовать различные искусственные приемы, как, например IDL (Interface Definition Languages).
Массивы
Массивы в языке C имеют несколько недостатков, которые приходится корректировать:
В языке D оператор [] при объявлении массива ставится после типа данных:
Этот код более легок для восприятия. В языке D можно использовать несколько видов массивов: указатели, статические массивы, динамические массивы и ассоциативные массивы.
Строки
Управление ресурсами (resource management)
Автоматическое управление памятью
Выделение памяти в языке D полностью контролируется методикой «сборки мусора». Опыт показывает, что большинство сложных возможностей языка C++ требуют последующего освобождения памяти. Методика «сборки мусора» делает жизнь проще. Существует мнение, что механизм «сборки мусора» нужен только ленивым и начинающим программистам. В конце концов, в C++ нет ничего такого, чего нельзя было бы сделать в C или в ассемблере. «Сборка мусора» избавляет от утомительного написания кода, отслеживающего процесс выделения памяти, который, к тому же, может быть подвержен появлению ошибок. Конечно, «сборку мусора» можно использовать и в C++, но этот язык не дружественен по отношению к «сборщикам мусора», что не может не сказаться на эффективности «сборки мусора».
Явное управление памятью
Несмотря на то, что язык D поддерживает автоматическую сборку мусора, операторы new и delete могут быть перегружены для определенных классов.
Производительность
Легковесные составные типы данных
Язык D поддерживает простые структуры в стиле языка C не только для совместимости с этим языком, но и потому что они очень полезны в тех случаях, когда возможностей классов слишком много.
Встроенный ассемблер
Драйверы устройств, высокопроизводительные системные приложения, а также встраиваемые системы (embedded systems) требуют углубления до уровня команд ассемблера. Программирование на языке D не требует использования ассемблера, но он реализован и является частью языка.
Отладочный код
Теперь отладка является частью языка. Отладочный код может быть включен или отключен перед компилированием, при этом не требуется использовать макросы или команды препроцессора. Такой вариант использования отладки делает код непротиворечивым, переносимым и обеспечивает понимание того, что один и тот же код используется для компиляции и отладочных версий программы и релизов.
Обработка исключений
Модель try-catch-finally предпочтительнее, чем просто try-catch, потому что не требует создания временных (dummy) объектов, деструктор которого будет выполнять то, что может сделать finally.
Синхронизация
Многопоточное программирование становится всё более распространенным, поэтому в языке D реализованы базовые возможности для создания многопоточных приложений. Синхронизация может быть применена ко всему объекту или к отдельным его методам.
Синхронизированные функции разрешают в один момент времени исполнять код функции только одному потоку.
Устойчивые к ошибкам методики
- Динамические массивы вместо указателей;
- Переменные-ссылки вместо указателей;
- Ссылки на объекты вместо указателей;
- Сборка мусора вместо явного управления памятью;
- Встроенные возможности синхронизации потоков;
- Встраиваемые функции вместо макросов;
- Уменьшение необходимости использовать указатели;
- Явные размеры целого типа данных;
- Отсутствие неопределенности, касающейся наличия знака у символьного типа;
- Отсутствие необходимости повторного объявления;
Проверки во время компиляции
- Более строгая проверка на соответствие типа данных;
- Никаких пустых условий в цикле for;
- Присвоения не возвращают булевого значения;
- Проверка использования устаревших API;
Проверки во время выполнения
- Выражения assert();
- Проверка на выход за пределы массива;
- Исключение при нехватке памяти;
Совместимость
Приоритеты операторов и правила вычисления
Язык D сохранил операторы из языка C, а также их приоритеты и правила вычисления. Это позволит избежать ситуаций, когда операторы ведут себя неожиданным образом (тем не менее Кёрниган и Ритчи, авторы языка C, признаю́т, что где-то приоритет операторов в этом языке нелогичен [17] ).
Прямой доступ к API языка C
Язык D не только имеет типы данных, соответствующие типам данных языка C, но и обеспечивает прямой доступ к функциям языка C. В таком случае нет необходимости писать функции-обертки (wrapper functions) или копировать значения членов составных типов по одному.
Поддержка всех типов данных языка C
Это делает возможным взаимодействие с API языка C или с кодом существующей библиотеки языка C. Эта поддержка включает структуры, объединения, перечисления, указатели и все типы данных, введённые в стандарте C99.
Обработка исключений операционной системы
Механизм обработки исключений языка подключается к механизмам обработки исключений операционной системы.
Использование существующих инструментариев
Код на языке D преобразуется в объектный файл стандартного формата, что делает возможным использование стандартных ассемблеров, компоновщиков, отладчиков, профайлеров и компрессоров исполняемых файлов.
Управление проектом
Контроль версий
Устаревание
Код со временем изменяется, поэтому старый код со временем заменяется новым, улучшенным. Старая версия кода должна быть доступна для обратной совместимости, но может быть отмечена как не рекомендованная к использованию (deprecated). Это облегчает работу команды поддержки по определению зависимостей от устаревшего кода.
Отсутствие предупреждений (warnings)
Отсутствие макросов
Отказ создателей языка от препроцессора (как, например, в языке Си) многие расценивают как рискованный и неверный шаг. Но в D имеются встроенные средства, которые позволяют обходиться без препроцессора. По мнению многих, препроцессор C чересчур мощный и опасный.
Стандартная библиотека
В отличие от многих других языков, в D две стандартные библиотеки: Phobos и Tango. Phobos поставляется вместе с компилятором.
Существование двух разных стандартных библиотек создаёт некоторые трудности. Для написания кода, работающего с обеими библиотеками, можно использовать следующую конструкцию:
Tangobos
Примеры
См. также
Примечания
Ссылки
- Появились в 1999 году
- Языки программирования по алфавиту
- Языки программирования семейства C
- Язык программирования D
Wikimedia Foundation . 2010 .
Полезное
Смотреть что такое "D (язык программирования)" в других словарях:
Язык программирования C++ — Эта статья о книге; о языке программирования см.: C++. Язык программирования C++ The C++ Programming Language Автор: Бьёрн Страуструп Язык оригинала: английский Оригинал издан: 1986 Издательство: Addison–Wesley … Википедия
Язык программирования Форт — процедурно ориентированный язык программирования, предназначенный для эффективной работы с персональными системами. Форт близок к языку ассемблера. См. также: Процедурно ориентированные языки программирования Финансовый словарь Финам … Финансовый словарь
Читайте также: