Так прямо на ваш вопрос:
Where can i find an implementation of the coordination language linda in c?
Здесь: http://www.comp.nus.edu.sg/~wongwf/linda.html
Его можно скачать и использовать!
Если вы загружаете его, вы должны получить это:
linda //dir
|
| - linda.c //file
| - linda.h //file
| - primes.c //file
| - README.txt //file
Но вы должны знать:
- Вы должны позвонить
linda_init()
, прежде чем делать Линду вещи
- Вы должны вызвать
linda_end()
перед выходом
- Нет
eval()
функция, но вы можете использовать spawn()
- Библиотека
varargs.h
устарела! Поэтому я бы порекомендовал вам использовать: stdarg.h
- Так что это может означать, что вам нужно переписать материал!
Так что есть только одна вещь TODO!
Скачайте его и начните!
EDIT:
Другим способом вы могли бы пойти, чтобы загрузить Linda-C
компилятор и писать программы в Линда-C (*.clc
).
Так, но обратно в библиотеку сверху:
я получил программу, работающую с Линдой в с с этой библиотекой!
у меня есть: GNU GCC compiler(tdm64-1) 4.7.1 MinGW64
То, что вы должны обратить внимание:
- В
linda.h
вы должны изменить включают sys/varargs.h
к stdarg.h
, поскольку переменные аргументы устарела!
- Это также означает, что вы должны изменить в
linda.c
всех va_arg()
вызовов и изменить следующий тип:
float
->double
char
->int
- После того как вы что вы должны иметь возможность компилировать
linda.c
в linda.o
с данным комм. и линия:
gcc -c -O linda.c
(Также может быть, что вы должны направить на gcc.exe
так, что команда gcc
известна в Windows cmd
)
Так как пример:
Путь до gcc compiler
:
"C:\Program Files (x86)\Dev-Cpp\MinGW64\bin"
Путь в linda library
:
"C:\Users\xy\Downloads\linda\linda"
Итак, если вы откроете cmd
и введите: gcc --version
и не нашли, вы должны направить в gcc.exe
файл, как это (в противном случае ваш прекрасный, и вы не должны направлять компилятором реж):
cd "C:\Program Files (x86)\Dev-Cpp\MinGW64\bin"
Так что, если ваш в directory
где gcc.exe
находится, вы должны быть в состоянии выполнить эту команду: gcc --version
И оттуда вы можете выполнить команду для создания linda.o
! Это выглядит следующим образом:
gcc -c -O C:\Users\xy\Downloads\linda\linda\linda.c
Если все сработало! Вы должны в конечном итоге с файлом linda.o
в каталоге компилятора
И теперь с файлом linda.o
вы можете скомпилировать primes.c
(который находится в этой библиотеке в качестве примера) и получить linda
программка в c
работает! с помощью следующей строки:
gcc -o C:\Users\xy\Downloads\linda\linda\primes -O C:\Users\xy\Downloads\linda\linda\primes.c C:\Users\xy\Downloads\linda\linda\linda.o -lpthread -lm
С помощью этой линии вы должны в конечном итоге с файлом .exe
: primes.exe
! Которые можно скопировать в каталог компилятора и выполнить! Если у вас его нет в этом каталоге, то lpthreadGC2_64.dll
неизвестен и он не может быть выполнен!
- Несколько боковые заметки к составлению этого примера:
- lpthread -> потоковой библиотеки
- лм -> математическая библиотека
- Также я рекомендовал бы вам добавить следующую строку в файле
primes.c
в конце, так что если вы выполняете его, окно не закрывается мгновенно: system("pause");
- Кроме того, для вашей проблемы, что с этой библиотекой вы не можете использовать
eval()
Есть несколько способов решения проблем/решения:
- Вы можете сделать
for
петли и называете ваши функции несколько раз! (Так как функция вы звоните с spawn()
должен иметь void
, как return type
)
- Вы можете определить константу с:
#define CALLS 5
и использовать это в самой функции для команды для выполнения в for
цикле или также в функции main
позвонить spawn()
несколько раз
- Я думаю, что есть больше способов решить это!
Таким образом, все, что сказал. Ваша программа должна выглядеть примерно так:
#include "linda.h"
#define NUM 5
void worker() {
int i;
for (i = 0; i < NUM; i++)
out("%s", "hello, world");
}
int main() {
int result;
spawn(worker);
in("%s", "hello, world");
in("%s", "hello, world");
in("%s", "hello, world");
in("%s", "hello, world");
in("%s", "hello, world");
in("%s?d", "worker", &result);
system("pause");
return 0;
}
Надеюсь, это вам поможет!
Приветствия
уже пробовали первые 20 результатов на Google, MSN и внешних ссылок на Wikipedia, если это имеет значение !! и они дали мне голосование вниз :( – QuakeCore
Какой 'OS' вы используете и какой' компилятор' с 'версией' у вас есть? – Rizier123
OS windows или linux все, что вы найдете @ Rizier123 – QuakeCore