1.1, pavlinux (ok), 21:10, 13/09/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
>As a result, the first command below should not result in output while
>the second should be minimal.
> nm module.ko | egrep “^ +C ”
> nm module.ko | egrep “^ +U ”
U __kmalloc
U kfree
U krealloc
U mcount
U printk
Это Hello World! такой, c malloc и free :)
Ваще забавно, только не вижу смысла писать системные задачи на функциональном языке...
Ядро не должно думать, ядро должно ПРАВИЛЬНО передавать от юзера к железу и обратно.
| |
|
2.6, Аноним (-), 23:15, 13/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
Ну или железо должно думать, а пользователь только нажимать на кнопки...
| |
2.9, JLarky (?), 00:59, 14/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Ваще забавно, только не вижу смысла писать системные задачи на функциональном языке...
сходу кажется что immutable states и прочие штуки повышающие стабильность и предсказуемость языка по сравнению с C того стоят
| |
2.13, Zenitur (?), 11:23, 14/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
Пусть думает - надо же защиту от дурака, чтобы пользователь не раскаивался в итоге от своих ошибок.
| |
2.15, dq0s4y71 (??), 11:51, 14/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Это Hello World! такой, c malloc и free :)
А как же! Там же сборщик мусора. Без него теперь никак... ;)
| |
|
1.8, yantux (??), 00:03, 14/09/2009 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
в чём тут прикол? вот если бы на паскале можно было писать модули для ядра...
| |
|
2.11, pavlinux (ok), 02:30, 14/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
>в чём тут прикол? вот если бы на паскале можно было писать
>модули для ядра...
Какие проблемы? Паскаль знаете? Вперед!
Такие же объектники генерит, даже asm впаян... можно прогнать через p2c
| |
|
3.37, User294 (ok), 17:36, 19/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
> Какие проблемы? Паскаль знаете? Вперед!
Блин, ждем пример модуля ядра на брейнфаке. Уж ты извини, павлинукс, но gcc с асм вставками получается как-то сильно менее черезпопно и кроссплатформенно чем паскаль с оными, имхо :).Более того - в gcc как-то проще и понятнее генерация кода и упихивание всего этого в случаях когда на выходе надо получить что-то предсказуемое до битика (e.g. бинарь с предсказуемым размещением частей для зашивки в однокристалку, etc).
| |
|
2.12, daemontux (?), 04:46, 14/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
>в чём тут прикол? вот если бы на паскале можно было писать
>модули для ядра...
Лучше на брейнфаке.
| |
|
3.14, Knuckles (ok), 11:36, 14/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
Ты наверное свято веришь в то, что "настоящие" программисты пишут только на C/C++?
| |
|
4.16, dq0s4y71 (??), 11:54, 14/09/2009 [^] [^^] [^^^] [ответить]
| +2 +/– |
>Ты наверное свято веришь в то, что "настоящие" программисты пишут только на
>C/C++?
Настоящие программисты не забивают гвозди головой.
| |
|
5.18, Knuckles (ok), 13:44, 14/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Настоящие программисты не забивают гвозди головой.
ОК. Прошу в студию примеры того, что не умеет паскаль такого, что умеет Си? :)
| |
|
6.19, dq0s4y71 (??), 14:09, 14/09/2009 [^] [^^] [^^^] [ответить]
| +1 +/– |
Причем здесь "умеет - не умеет"? Можно ли гвозди забивать, например, плоскогубцами? Можно. Но никто так не делает - для этого есть молоток. Примерно так же и с языками программирования.
| |
6.20, Karbofos (??), 14:34, 14/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
по скорости он будет уступать. нужно более конкретно обяснить, какая конкретно скорость подразумевается, или вы сами знаете? даже не скорость оптимизации (в этом случае можно условно не учитывать).
| |
6.21, pavlinux (ok), 14:46, 14/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
>>Настоящие программисты не забивают гвозди головой.
>
>ОК. Прошу в студию примеры того, что не умеет паскаль такого, что
>умеет Си? :)
модули для ядра :)
Ах да, вспомнил, в Паскале незя мешать логику и математику...
( a || b ) * ( a && b ) << c
c + !( a || b ) * d
которая ох как нужна при работе с девайсами
В паскале указатель может ссылаться на не инициализируемую переменную - очень полезно для глюкофф
В Паскале нет арифметики с указателями
Вычисление чисел Фибоначчи, работает раз в 20 быстрее чем любая рекурсия, рекурсия с массивами,....
/* ---------------- */
#include <stdio.h>
void l(unsigned int* n1, unsigned int* n2, int n) {
unsigned int k1,k2;
if(n<=1) { *n1=1; *n2=1; return; }
if(n==2) { *n1=2; *n2=1; return; }
if(n%2) {
l(&k1, &k2, (n-1)/2 );
*n1 = k1 * ( k1 + k2 ) + k1 * k2;
*n2 = k1*k1 + k2*k2;
} else {
l(&k1, &k2, (n/2)-1);
*n1 = ( k1+k2 ) * ( k1+k2 ) + k1*k1;
*n2 = ( k1+k2 ) * k1 + k1*k2;
}
}
unsigned int f(int n) {
unsigned int n1, n2;
l(&n1,&n2,n);
return n1;
}
void f_print(int n) {
printf("%dth Fibonacci number is %lu\n",n,f(n));
}
int main(void) {
f_print(46);
return 0;
}
/* ---------------- */
Только ради такой красоты, можно выкинуть слово Pascal из мозга,
и поставить фаервол, чтоб не возвращалось.
У Паскаля есть один большой ПЛЮС, - С него ЛЕГКО перейти на С, обратно уже не возможно. :)
| |
|
7.22, dq0s4y71 (??), 15:52, 14/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Ах да, вспомнил, в Паскале незя мешать логику и математику...
Да можно. Но это опять забивание гвоздей при помощи плоскогубцев:
Integer( a or b ) * Integer( a and b ) shl c;
c + Integer(not( a or b) ) * d
>В паскале указатель может ссылаться на не инициализируемую переменную - очень полезно для глюкофф
Не совсем понятно что здесь имелось ввиду, но способность указателей ссылаться на все что угодно - это, скорее, свойство Си.
>В Паскале нет арифметики с указателями
Да есть. Но она тоже через жо^W^Wпреобразование типов.
| |
7.23, Karbofos (??), 15:53, 14/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
> В паскале указатель может ссылаться на не инициализируемую переменную - очень полезно для глюкофф
в сях тоже можно это сделать. или подразумевалось что-то специфичное?
int *pvariInt;
int variInt;
pVariInt = &variInt; // возможно, компайлер предупредит.
| |
|
6.38, User294 (ok), 17:50, 19/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
>ОК. Прошу в студию примеры того, что не умеет паскаль такого, что
>умеет Си? :)
А можно на паскале сформировать raw binary с предсказуемой структурой и поведением? А чтоб еще и под не самую простую архитектуру, типа гарвадрца (например, Atmel AVR, у которого флеш для кода и статичных данных, а оператива - только для временных данных и не может выполнять код вообще). Чтоб машинный код, статичные данные и динамичные данные можно было пхнуть в конкретные адреса (возможно, обитающие в разных адресных пространствах) и бинарь сразу мог бы выполняться процом из его флехи, не делая левых обращений куда попало, не ожидая никакого рантайма вообще, не нуждаясь в сложном предварительном загрузчике педалящем формат типа ELF'а и прочая. В свое такое с борланд паскалем это было напряжно. То есть, асм вставки воткнуть - можно, но вот получить гольный бинарь способный работать в нестандартном окружении - уже опаньки. А как с этим сейчас?
Грубо говоря - режим этакого "супер-ассемблера", когда компилер можно детально проинструктировать что и куда необходимо распихать, не геморроясь с выписыванием этого (или как минимум большинства из этого) на ассемблере (тем более что портировать будет сильно проще). В сях то оно с полпинка - язык для системных дел...
| |
|
7.39, Knuckles (ok), 13:54, 21/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Грубо говоря - режим этакого "супер-ассемблера", когда компилер можно детально проинструктировать что
>и куда необходимо распихать, не геморроясь с выписыванием этого (или как
>минимум большинства из этого) на ассемблере (тем более что портировать будет
>сильно проще). В сях то оно с полпинка - язык для
>системных дел...
Это верно, но тут речь больше идет о языке, чем о компиляторе или кодогенераторе.
| |
|
|
|
|
|
|
|