Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.sci.electronics > #345128
| From | Helmut Schellong <var@schellong.biz> |
|---|---|
| Newsgroups | de.sci.electronics |
| Subject | Re: Workstation: erste Tests |
| Date | 2023-10-21 15:41 +0200 |
| Message-ID | <uh0kde$gt82$1@solani.org> (permalink) |
| References | (21 earlier) <kpctg1FfckgU4@mid.individual.net> <ugrmmh$ej6r$3@solani.org> <kpert6Fqt4vU5@mid.individual.net> <ugu8tl$fphf$1@solani.org> <kphfpiFbuumU5@mid.individual.net> |
Am 21.10.2023 um 10:17 schrieb Arno Welzel:
> Helmut Schellong, 2023-10-20 18:12:
>
>> Am 20.10.2023 um 10:26 schrieb Arno Welzel:
> [...]
>> Ich behaupte nicht, daß das NIST Makros vorgibt.
>> Schließlich schreibe ich "NIST:", nicht aber "NIST-Makros:".
>
> Zitat von Dir aus <ubqj4f$9n5h$2@solani.org> auf meinen Einwand, dass
> der Code mit vielen verschachtelten Makros arbeitet und ich das als
> schlechten Stil ansehe:
Es geht also um die Verschachtelung, die schlechter Stil sein soll.
> "Die Vorgabe des NIST ist nun mal so.
> Es ist guter Stil, die wichtigen Komponenten des Algorithmus, erkennbar
> beizubehalten. Dies nicht zu tun, wäre das Verhalten eines Dämelacks."
>
> Damit hast Du faktisch behauptet, dass das NIST die Verwendung von
> Makros vorgeben würde und Du die verschachtelten Makros nur deswegen so
> gebaut hast und nicht als Funktionen.
Ich habe das jedoch mit keinem einzigen Wort geschrieben.
Du willst das /rückwärts/ in Bedeutung bringen.
Meine Aussage bezieht sich auf "Verschachtelung".
Siehe [19.08.2023, 19:36]:
--------------------------------------------------------------------------
> Ich rede nicht von Komponenten, sondern das in Form "mehrfach
> verschachtelter Makros" zu tun.
Das ist auch Vorgabe des NIST.
Makros:
ROTR(x,n) ((x)>>(n)|(x)<<32-(n))
SUM0(x) (ROTR((x),2)^ROTR((x),13)^ROTR((x),22))
NIST:
ROTR^n (x) = (x >> n) v (x << w - n)
SUM0 (x) = ROTR^2(x) (+) ROTR^13(x) (+) ROTR^22(x)
--------------------------------------------------------------------------
Meine Aussage bezieht sich auf "Verschachtelung".
Fernab jeder Behauptung, das NIST würde seine Funktionen() als Makros()
in der Implementation fordern.
Das NIST stellt den Algorithmus vernünftigerweise _mit_ Verschachtelung dar.
> [...]
>> Das NIST bezeichnet seine Darstellungen als /Functions/ im Kapitel "4. Functions and Constants".
>> Und ich habe diese Funktionen in C mittels /function-like/ Makros() implementiert.
>> Das ist total logisch, sinnvoll und effizient!
>
> Makros *sind* aber keine Funktionen.
Genau deshalb wählte ich Makros, weil diese deutlich besser sind.
> Es gibt auch keine "function-like"
> Makros.
Im C-Standard steht 26-mal "function-like macro".
Bei Google 24,5 Mio Resultate.
https://www.ibm.com/docs/en/i/7.5?topic=directive-function-like-macros
|Function-like macros
|Last Updated: 2023-10-10
|
|More complex than object-like macros, a function-like macro definition declares the names
|of formal parameters within parentheses, separated by commas.
|An empty formal parameter list is legal: such a macro can be used to simulate a function
|that takes no arguments.
|C99 adds support for function-like macros with a variable number of arguments.
|ILE C++ supports function-like macros with a variable number of arguments, as a
|language extension for compatibility with C C++0x and as part of C++0x.
|
|Function-like macro definition:
|An identifier followed by a parameter list in parentheses and the replacement tokens.
|The parameters are imbedded in the replacement code.
|White space cannot separate the identifier (which is the name of the macro) and the left
|parenthesis of the parameter list.
|A comma must separate each parameter.
|For portability, you should not have more than 31 parameters for a macro.
|The parameter list may end with an ellipsis (…).
|In this case, the identifier __VA_ARGS__ may appear in the replacement list.
|
|Function-like macro invocation:
> Makros werden bei der Compilierung zu Code expandiert, basierend auf der
> Definition des Makros. Wenn ein Makro 10x verwendet wird, wird auch der
> selbe Code 10x in das Binary eingebaut. Effizent ist das gegenüber einem
> Funktionsaufruf ganz sicher nicht und "logisch" ebenso wenig. Logisch
> wäre, dass man *Funktionen* auch als solche implementiert, damit diese
> im Binary auch nur *einmal* vorhanden sind und nicht mehrfach redundant.
Das mußt Du mir, als Autor von drei C-Büchern, nicht erklären.
Ich habe schon über 20-fach verschachtelte Makros definiert, mit
enormer Problemlösungskraft.
--
Mit freundlichen Grüßen
Helmut Schellong
Back to de.sci.electronics | Previous | Next — Previous in thread | Next in thread | Find similar
Re: Workstation: erste Tests Arno Welzel <usenet@arnowelzel.de> - 2023-10-19 16:41 +0200
Re: Workstation: erste Tests Helmut Schellong <var@schellong.biz> - 2023-10-19 18:49 +0200
Re: Workstation: erste Tests Arno Welzel <usenet@arnowelzel.de> - 2023-10-20 10:26 +0200
Re: Workstation: erste Tests Helmut Schellong <var@schellong.biz> - 2023-10-20 18:12 +0200
Re: Workstation: erste Tests Arno Welzel <usenet@arnowelzel.de> - 2023-10-21 10:17 +0200
Re: Workstation: erste Tests Helmut Schellong <var@schellong.biz> - 2023-10-21 15:41 +0200
Re: Workstation: erste Tests Arno Welzel <usenet@arnowelzel.de> - 2023-10-23 15:38 +0200
csiph-web