Что такое низкоуровневое программирование

Низкоуровневые языки программирования: определение и список примеров

«1» — подача электрического импульса на процессо р ;

«0» — отсутствие электрического импульса.

Низк о уровневые языки программирования

Низкоуровневые языки программирования — это такие языки, при помощи которых есть возможность «напрямую» обращаться к аппаратному функционалу компьютера:

к оперативной памяти;

драйвер ы для периферийных устройств;

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

Низкоуровневые и высокоуровневые языки программирования

Говоря о низкоуровневых языках программирования, нужно несколько слов сказать о высокоуровневых языках.

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

Низкоуровневые языки: список представителей

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

Есть такие языки, которые являются «гибкими» или «среднеуровневыми», то есть они могут быть как высокоуровневыми, так и низкоуровневыми. К таким языкам относят С, С++, RUST и др. Почему так происходит? К языкам низкого уровня относят те языки, которые могут «напрямую» обращаться к аппаратным возможностям компьютера, например к процессору. «Гибкие» языки подходят под это определение. Поэтому их можно встретить в операционных системах и драйверах, где применяются языки низкого уровня. Но также можно встретить в разнообразных приложениях и играх, где применяются языки высокого уровня.

Заключение

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

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

по какому принципу работает процессор;

как работает оперативная память;

как распределяются ресурсы компьютера между процессами и потоками;

При высокоуровневом программировании о низкоуровневых процессах задумываться не надо.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Источник

Термин: Программирование низкоуровневое

Низкоуровневым программированием обычно называют программирование процессора или контроллера, который непосредственно связан своими периферийными устройствами со специфической внешней аппаратурой (прибором). При этом сама задача программирования тесно связана с уровнем взаимодействия с аппаратурой, с устройством интерфейсов ввода-вывода, временными диаграммами этих интерфейсов и с физической задачей, которая должна решаться данной аппаратурой. Как следствие, низкоуровневый программист должен не только владеть языками, средами и методами программирования, не только владеть основами ЦОС, но также должен иметь определённый технический (инженерный) кругозор, чтобы уметь (или быть расположенным, чтобы) разобраться в физической задаче, стоящей перед аппаратурой.

Языком низкоуровневого программирования традиционно считался язык ассемблера (специфический для каждой архитектуры). В наши дни для низкоуровневых задач широко применяется язык высокого уровня Си, который поддерживается большинством сред разработок современных процессоров (контроллеров).

Важными источниками информации для низкоуровневого программиста являются: User’s Мanual, Programming Manual, Data Sheet на процессор (контроллер), а также Руководство и Низкоуровневое описание на аппаратуру (прибор).

Для низкоуровневого программиста важными вспомогательными возможностями при отладке ПО являются: внутрисхемные отладчики (например, подключаемые через интерфейс JTAG), свободные порты и интерфейсы ввода-вывода процессора (контроллера), индикаторы и органы управления прибора. Навык обращения с осциллографом, безусловно, пригодится такому программисту.

Дискуссионным вопросом (вопросом о терминах) является вопрос: включать ли процесс проектирования на основе CPLD или FPGA (FPGA design) в понятие низкоуровневое программирование? С одной стороны, FPGA design требует языков параллельного программирования для описания параллельных физических процессов (а фактически – описания цифровой электрической схемы), требует большого количества физических привязок проекта FPGA к возможностям FPGA, к её временны́м физическим характеристикам, требует описания средствами языка физических процессов на линиях и интерфейсах при верификации проекта. С другой стороны, языки параллельного программирования активно впитывают, например, наработки на языке Си. Проекты FPGA могут включать в себя процессоры и контроллеры, которые требуют классических инструментов низкоуровневого программирования.

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

Пример использования термина

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

АЦП: 14 бит; 16/32 каналов;
±0,156 В…10 В; 400 кГц
ЦАП: 12 бит; 2 канала; ±5 В; 8 мкс
Цифровые входы/выходы:
16/16 TTL 5 В
Интерфейс: USB 2.0

Модуль АЦП/ЦАП
16/32 каналов, 14 бит, 400 кГц, USB

E14-440

АЦП: 16 бит; 16/32 каналов;
±0,2 В…10 В; 2 МГц
ЦАП: 16 бит; 2 канала; ±5 В; 1 МГц
Цифровые входы/выходы:
17/16, ТТЛ 5 В
Интерфейс: USB 2.0 (high-speed), Ethernet (100 Мбит)
Гальваническая развязка.

Модуль АЦП/ЦАП
16/32 каналов, 16 бит, 2 МГц, USB, Ethernet

E-502

АЦП: 16 бит; 16/32 каналов;
±0,2 В…10 В; 2 МГц
ЦАП: 16 бит; 2 канала; ±5 В; 1 МГц
Цифровые входы/выходы:
18/16 TTL 5 В
Интерфейс: PCI Express

Плата АЦП/ЦАП
16/32 каналов, 16 бит, 2 МГц, PCI Express

L-502

АЦП: 12 бит; 8 каналов;
±0,16 В…5 В; 120 кГц
ЦАП: 8 бит; 1 канал; ±5 В; 10 мс
Цифровые входы/выходы: 8 TTL 5 В
Интерфейс: USB 2.0

Модуль АЦП/ЦАП
8 каналов, 12 бит, 120 кГц, USB

E-154

220 В, =12 В, =27 В
Габариты: 236x133x378 мм, переносная конструкция

Крейт на 8 модулей

LTR-EU-8

220 В, =12 В, =27 В
Габариты: 481х136х406 мм, ширина 19″, высота 3U

Крейт на 16 модулей

LTR-EU-16

220 В, внешний адаптер
Габариты: 135х61х189 мм

LTR-EU-2

АЦП: 14 бит; 16/32 каналов;
±0,08 В…5 В; 400 кГц
ЦАП: 14 бит; 2 канала; ±5 В; 8 мкс
Цифровые входы/выходы:
16/16 TTL 5 В
Интерфейс: PCI

Плата АЦП/ЦАП
16/32 каналов, 14 бит, 400 кГц, PCI

L-780M

АЦП: 12 бит; 16/32 каналов;
±0,6 В…5 В; 3 МГц
ЦАП: 12 бит; 2 канала; ±5 В; 8 мкс
Цифровые входы/выходы:
16/16 TTL 5 В
Интерфейс: PCI

Плата АЦП/ЦАП
16/32 каналов, 12 бит, 3 МГц, PCI

Источник

Низкоуровневые языки программирования

Вы будете перенаправлены на Автор24

Понятие о низкоуровневых языках программирования

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

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

Низкоуровневые языки программирования (ЯП) представляют собой формализованные синтаксисы, призванные облегчить запоминание машинных кодов, применяемых для управления компьютерными процессорами.

Характеристики и назначение низкоуровневых языков

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

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

Готовые работы на аналогичную тему

Низкоуровневые языки, напротив, предполагают, что ответственность за все внутрикомпьютерные ресурсы (время загрузки процессора, объемы выделяемой памяти и т.п.) программист берет на себя. По этой причине языки низкого уровня относятся к «небезопасным»: при написании с их помощью более-менее обширных программ, в коде появляется больше ошибок, чем при написании на языках высокого уровня. Низкоуровневое программирование применяется в основном для создания компактного ПО, например, для программирования систем реального времени (когда недопустимы задержки в работе), встраиваемых систем (микроконтроллеров), а также драйверов, управляющих внешними устройствами:

Рисунок 1. Прошивка микроконтроллера программой на ассемблере. Автор24 — интернет-биржа студенческих работ

Язык ассемблера

Программирование на ассемблере сводится к занесению в регистры компьютера данных из памяти (к которой с точки зрения процессора относятся и подключенные к компьютеру устройства), выполнению операций над ними и записи результата в память. За регистрами процессора закреплены буквенные обозначения, номенклатура которых зависит от типа процессора (Intel x86, ARM и др).

Рисунок 2. Регистры процессора. Автор24 — интернет-биржа студенческих работ

Особый регистр-указатель команд (EIP) отвечает за последовательность выполнения команд. Его изменение недоступно программисту. Управление регистром-указателем производятся командами условных и безусловных переходов, циклов, вызова процедур и возврата из них.

Несмотря на сложный синтаксис, на ассемблере можно писать довольно сложные приложения, в том числе приложения с графическим интерфейсом. Для облегчения работы используются макросы, внешние подключаемые библиотеки, а также возможности операционной системы, предоставляемые разработчикам в задокументированном виде (API).

Рисунок 3. Программа на ассемблере. Автор24 — интернет-биржа студенческих работ

Язык программирования Си обычно относят к высокоуровневым, но он располагает возможностями и для низкоуровневого программирования: написанные на нем программы способны непосредственно обращаться к набору процессорных команд, выделять и освобождать память в произвольном порядке и т.п. Программы на Си также могут содержать в себе ассемблерные вставки.

Источник

Разница между низкоуровневыми и высокоуровневыми языками программирования

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

Языки программирования низкого и высокого уровня

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

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

1]Что такое высокоуровневое программирование

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

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

Основными примерами языков программирования высокого уровня являются C #, Python, Java, Ruby и другие.

Читать: Что такое язык программирования R?

2]Что такое низкоуровневое программирование

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

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

Что касается примеров, посмотрите на машинный код и язык ассемблера, чтобы понять, о чем мы говорим.

Читать: Изучите компьютерное программирование с помощью Microsoft Small Basic.

3]Более глубокая интерпретация языков программирования высокого уровня

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

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

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

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

Читать: IDE Netbeans — это язык программирования нового поколения.

4]Более глубокая интерпретация языков программирования низкого уровня.

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

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

Теперь нам не следует, чтобы Машины понимали только байты, хотя они в основном представлены в десятичной, шестнадцатеричной или двоичной системе счисления. Мы понимаем, что двоичный код используется чаще, чем другие.

Пример машинных кодов:

Как видите, невозможно прочитать приведенный выше код, чтобы понять, что он будет делать. С другой стороны, компьютер очень способен читать этот язык, если программист указывает четкие указания.

5]Следует ли изучать один или оба типа языков программирования?

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

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

Источник

Какой язык программирования называется низкоуровневым

Низкоуровневый язык программирования — что под этим понимается

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

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

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

Осторожно! Если преподаватель обнаружит плагиат в работе, не избежать крупных проблем (вплоть до отчисления). Если нет возможности написать самому, закажите тут.

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

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

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

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

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

Понятие, характеристики и назначение

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

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

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

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

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

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

Такой процесс гарантирует высокую скорость функционирования программ, что объясняется отсутствием скрытых фрагментов кода, добавляющих автоматически компилятор во время трансформации исходного кода в бинарный.

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

Низкоуровневое программирование используют для разработки компактного программного обеспечения: такого, как системы реального времени; микроконтроллер; драйверы, управляющие внешними устройствами (включая принтеры, сканеры, камеры).

Примеры таких языков, список популярных

Низкоуровневые языки программирования характеризуются достаточно объемной историей, однако распространение получили лишь некоторые из них. Такой выбор объясняется конкретным назначением каждого языка.

Ассемблер

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

Указанные достоинства являются основными из списка. Примеры кода рассматриваемого семейства в настоящее время активно применяют в образовании, так как это эффективный способ обучения процессу взаимодействия с микропроцессорами.

Forth

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

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

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

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

Преимущества и недостатки, в чем отличие от языков высокого уровня

Низкоуровневые языки обычно применяют для создания системных программ небольшого объема, драйверных устройств, стыковых модулей для нестандартного оборудования, в процессе программирования специальных микропроцессоров. Это оптимальное решение в тех случаях, когда в приоритете такие качества, как компактность, быстродействие, обеспечение прямого доступа к аппаратным ресурсам.

Преимущества языков низкого уровня:

Недостатки низкоуровневых языков:

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

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

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

Будущее низкоуровневого программирования

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

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

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

Не так давно была разработана новая типобезопасная версия языка низкого уровня Форт. Язык Factor создал Слава Пестов и работает над его развитием.

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

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

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • что такое неуправляемость в 12 шаговой программе
  • что такое необязательные обновления windows 10
  • что такое нелицензионное программное обеспечение
  • Что такое нейросеть простым языком в программировании
  • что такое нейросеть в программировании

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии