Кто знает на каком языке написаны файлы с расширениями .erl и .hrl?
-
- Администратор
- Posts: 17199
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Кто знает на каком языке написаны файлы с расширениями .erl и .hrl?
Попались какие-то файлы. Похоже, описание протоколов.
Привет.
-
- Администратор
- Posts: 17199
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Кто знает на каком языке написаны файлы с расширениями .erl и .hrl?
Пример .hrl - видимо header
Code: Select all
-type(trie_node_id() :: binary() | atom()).
-record(trie_node,
{ node_id :: trie_node_id(),
edge_count = 0 :: non_neg_integer(),
topic :: binary() | undefined,
flags :: [retained | static]
}).
-record(trie_edge,
{ node_id :: trie_node_id(),
word :: binary() | atom()
}).
-record(trie,
{ edge :: #trie_edge{},
node_id :: trie_node_id()
}).
Привет.
-
- Администратор
- Posts: 17199
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Кто знает на каком языке написаны файлы с расширениями .erl и .hrl?
Это отрывок .erl
Code: Select all
-include("emqttd_internal.hrl").
%% API Function Exports
-export([start_link/5]).
%% gen_server Function Exports
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
terminate/2, code_change/3]).
-define(PING_DOWN_INTERVAL, 1000).
-record(state, {pool, id,
node, subtopic,
topic_suffix = <<>>,
topic_prefix = <<>>,
mqueue :: emqttd_mqueue:mqueue(),
max_queue_len = 10000,
ping_down_interval = ?PING_DOWN_INTERVAL,
status = up}).
-type(option() :: {topic_suffix, binary()} |
{topic_prefix, binary()} |
{max_queue_len, pos_integer()} |
{ping_down_interval, pos_integer()}).
-export_type([option/0]).
%%--------------------------------------------------------------------
%% API
%%--------------------------------------------------------------------
%% @doc Start a bridge
-spec(start_link(any(), pos_integer(), atom(), binary(), [option()]) ->
{ok, pid()} | ignore | {error, term()}).
start_link(Pool, Id, Node, Topic, Options) ->
gen_server2:start_link(?MODULE, [Pool, Id, Node, Topic, Options], []).
%%--------------------------------------------------------------------
%% gen_server callbacks
%%--------------------------------------------------------------------
init([Pool, Id, Node, Topic, Options]) ->
?GPROC_POOL(join, Pool, Id),
process_flag(trap_exit, true),
case net_kernel:connect_node(Node) of
true ->
true = erlang:monitor_node(Node, true),
Share = iolist_to_binary(["$bridge:", atom_to_list(Node), ":", Topic]),
emqttd:subscribe(Topic, self(), [local, {share, Share}, {qos, ?QOS_0}]),
State = parse_opts(Options, #state{node = Node, subtopic = Topic}),
MQueue = emqttd_mqueue:new(qname(Node, Topic),
[{max_len, State#state.max_queue_len}],
emqttd_alarm:alarm_fun()),
{ok, State#state{pool = Pool, id = Id, mqueue = MQueue},
hibernate, {backoff, 1000, 1000, 10000}};
false ->
{stop, {cannot_connect_node, Node}}
end.
Привет.
-
- Администратор
- Posts: 17199
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Кто знает на каком языке написаны файлы с расширениями .erl и .hrl?
Нашёл. Это Erlang. Что сие за новшество?
Erlang has built-in support for concurrency, distribution and fault tolerance.
Erlang has built-in support for concurrency, distribution and fault tolerance.
Привет.
-
- Уже с Приветом
- Posts: 20297
- Joined: 01 Dec 2003 23:16
- Location: Russia->USA
Re: Кто знает на каком языке написаны файлы с расширениями .erl и .hrl?
функциональный. родом, кажется, из телекома . ещё в банках пытаются использовать. Знаю в РФ ребят делавших на нём что-то в телекоме, потом телеком+медицинское оборудование.
сам на функциональных не программировал (слегка игрался со скалой), но впечатление: при должном переформатировании мозгов, хорошо делать стейт-автоматы - типа при таких входных, получаем такой-то стейт. и соответственно плохо приспособленны для обработки эвентов.
Слышал, что у начинающих программеров с не переформатироваными мозгами обычно получается лажа - типа делают операции с массивами не учитывая, что каждая операция создаёт новый итп, зато профи на подходящей задаче решают гораздо более эффективно и компактно чем процедурными\OO
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
Маразм крепчал и скрепы гнулись
-
- Уже с Приветом
- Posts: 8485
- Joined: 02 Aug 2003 01:32
- Location: SPb->SFBA
Re: Кто знает на каком языке написаны файлы с расширениями .erl и .hrl?
Erlang - экзотический язык из 80х.
WhatsApp на нем написан.
WhatsApp на нем написан.
-
- Администратор
- Posts: 17199
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Кто знает на каком языке написаны файлы с расширениями .erl и .hrl?
Т.е. приспособлен для создания конечных автоматов, но переход между состояниями и происходит по событиям. Событие (нажатие клавиши) -> входные данные (код клавиши) -> переход в новое состояние. Разве не так? Или там другая терминология?
Есть в нём механизмы синхронизации? Если он предназначен для программирования параллельных процессов, то они должны как-то синхронизироваться между собой.
Непонятно насчёт непроцедурности. Даже в примере видно, что там описывается некая процедура Init.
По работе мне приходилось писать много конечных автоматов или систем автоматического тестирования, когда запускается процесс и описываются возможные ожидаемые результаты и действия при каждом из них.
Судя по коду, там описываются какие-то протоколы, что тоже подходит под Ваше описание, но в протоколах тоже не обойтись без событий, как говорят мне мои мозги.
Привет.
-
- Уже с Приветом
- Posts: 1964
- Joined: 11 Mar 2015 01:12
Re: Кто знает на каком языке написаны файлы с расширениями .erl и .hrl?
Не процедура, а функция Init. Erlang - функциональный язык с прологообразным синтаксисом и паттерн-матчингом. Реализация позволяет создавать 100500 "потоков", которые общаются между собой посредством сообщений, и которые выполняются значительно меньшим числом настоящих потоков. Жить потоки могут как на том же хосте, так и на других.
Естественно, побочные эффекты у "функций" ввода-вывода есть, но так у любого практического функционального языка.
Естественно, побочные эффекты у "функций" ввода-вывода есть, но так у любого практического функционального языка.