www.mikrocontroller.net

Forum: PC-Programmierung Adjektiv zu Template


Autor: S. F. (deffman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, wollte mal fragen wie denn das Adjektiv zu Templates heißt (auf 
englisch templated)??? Templatisiert?!? Bei google findet man das zwar 
öfter, aber irgendwie finde ich, dass sich das doch sehr nach Denglisch 
anhört. Schreibe gerade meine Masterthesis und finde das hört sich 
irgendwie nicht wirklich wissenschaftlich an. Habt ihr bessere 
Vorschläge?!

Es geht vor allem um den Satz:

Dass die Parameter NR_OF_SIs, NR_OF_MIs, SI_BW und MI_BW nicht auch über 
den Konstruktor übergeben werden, liegt an der Gegebenheit, dass diese 
bei der Deklaration der templatisierten Socketinstanzen vom Typ 
simple_target_socket_tagged und simple_initiator_socket_tagged vom 
Präprozessor benötigt werden.

Macht der Satz so überhaupt Sinn für einen Außenstehenden? Ich weiß 
persönlich halt was ich meine, aber ob das jmd anderes versteht?

Bin für alle Vorschläge dankbar!

Gruß

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Statt "templatisiert" vielleicht "mittels eines Templates 
realisiert/implementiert" verwenden?

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder "templatebasiert"?
Das wäre etwas kürzer; der Satz ist eh ziemlich überladen.

Autor: Nils (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder so:
> ... dass diese bei der Deklaration der templatisierten Socketinstanzen ...
... dass diese bei der Deklaration der Template-basierten 
Socketinstanzen ...

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
:-)

Autor: Nils (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... Klaus Wachtler schrieb ...
Geichzeitig ein Gedanke, nur anders geschrieben.

Autor: Zwie Blum (zwieblum)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> liegt an der Gegebenheit
wie ist denn so die Gegebenheit? Eckig, rund, etwas wie eine Wiese oder 
doch eine Mauer? Hast du die verlötet?

Würd' mal so vorschlagen:
Die Parameter NR_OF_SIs, NR_OF_MIs, SI_BW und MI_BW werden nicht über
den Konstruktor übergeben werden, sondern bei der Deklaration der 
Socketinstanzen. ....

Autor: S. F. (deffman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, danke schon mal für eure Tips. Okay templatebasiert hört sich doch 
schon einiges besser an :)

@ Klaus, ja da muss ich dir zustimmen. Habe gerade beim Durchlesen auch 
gedacht, dass da ziemlich viel Information in einem Satz steckt.

So besser? :

Die Parameter NR_OF_SIs, NR_OF_MIs, SI_BW und MI_BW werden hingegen 
nicht über den Konstruktor übergeben, da sie schon bei der Deklaration 
der templatebasierten Socketinstanzen vom Präprozessor benötigt werden.

Gruß
Stefan

Autor: Zwie Blum (zwieblum)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das "hingegen" schreit nach einem "sondern", etwa:

Die Parameter NR_OF_SIs, NR_OF_MIs, SI_BW und MI_BW werden hingegen
nicht über den Konstruktor übergeben, sondern schon bei [....], da sie 
der Präprozessor bei der Deklaration der templatebasierten 
Socketinstanzen benötigt.

Autor: S. F. (deffman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Zwie: Danke auch für den Tip! Hm davor beschreibe ich eben die 
restlichen Parameter, die alle in einer Struktur gekapselt über den 
Konstruktor übergeben werden. Nun will ich halt erklären, warum 
ausgerechnet diese vier Variablen mit Templates definiert werden. 
Deshalb halt das hingegen...

Aber gut glaub das hingegen kann ich auch einfach weglassen. glaube dann 
müsste es so einigermaßen passen.

Autor: Mark Brandis (markbrandis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn es schon um eine Masterarbeit geht: "templatisiert" wäre dann ein 
Partizip. ;-)

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zwie Blum schrieb:
> Die Parameter NR_OF_SIs, NR_OF_MIs, SI_BW und MI_BW werden hingegen
> nicht über den Konstruktor übergeben, sondern schon bei [....], da sie
> der Präprozessor bei der Deklaration der templatebasierten
> Socketinstanzen benötigt.

Das ist fachlich falsch! Zzumindest, wenn es um c++ geht.
Da hat der Präprozessor mit Templates nichts zu tun, das ist Sache des 
Kompilers.

Autor: S. F. (deffman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Vlad

Ja es geht um C++. Also:

das sie schon bei der[...]vom Compiler benötigt werden?

gruß und Danke!

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
S. F. schrieb:
> @ Vlad
>
> Ja es geht um C++. Also:
>
> das sie schon bei der[...]vom Compiler benötigt werden?
>
> gruß und Danke!

Übersetzung, Compilierung, Code-Erzeugung?
Nimmt man es beim anderen Satz "dass diese bei der Deklaration der 
templatisierten Socketinstanzen vom Typ
simple_target_socket_tagged und simple_initiator_socket_tagged vom
Präprozessor benötigt werden." ganz genau, müsste es eigentlich "dass 
diese (vom Compiler, zur Code-Erzeugung) bei der Instantiierung der 
generischen Socketklassen vom Typ... benötigt werden" heißen.

Autor: S. F. (deffman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich dachte bis jetzt dass beispielsweise in meinem Fall

tlm_utils::simple_initiator_socket_tagged<interconnect_component,SI_BW,t 
lm::tlm_base_protocol_types>*  SI_read;

als Deklaration bezeichnet wird und

SI_read  = new 
tlm_utils::simple_initiator_socket_tagged<interconnect_component,SI_BW,t 
lm::tlm_base_protocol_types>[NR_OF_SIs];

als die Definition.

Zumindest ist die Bezeichnung bei Visual Studio so. Und meiner Ansicht 
nach ist beides zusammen die Instanziierung eines Members. Bitte 
korrigiert mich, wenn ich daneben liege!

Gruß & Danke vielmals!

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
S. F. schrieb:
> SI_read  = new
> tlm_utils::simple_initiator_socket_tagged<interconnect_component,SI_BW,t 
lm::tlm_base_protocol_types>[NR_OF_SIs];

ist die instanzierung


bei funktionen differenziert man zwischen deklaration und definition

int foo(bool bar);

ist die deklaration

int foo(bool bar)
{
  return bar*bar;
}
ist die definition.

Autor: S. F. (deffman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay alles klar vielen Dank. Im Visual Studio gibt es die Bezeichnung 
Deklaration und Definition nämlich auch für Members (so wie ich es oben 
beschrieben habe)

Aber gut, dann wäre das ja jetzt geklärt!

Gruß
Stefan

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich dachte bis jetzt dass beispielsweise in meinem Fall
tlm_utils::simple_initiator_socket_tagged<interconnect_component,SI_BW,tlm::tlm_base_protocol_types>*
SI_read;

> als Deklaration bezeichnet wird und

Das ist eine Definition, wobei jede Definition auch gleichzeitig eine 
Deklaration ist.
 SI_read  = new tlm_utils::simple_initiator_socket_tagged<interconnect_component,SI_BW,tlm::tlm_base_protocol_types>[NR_OF_SIs];

> als die Definition.

Nein, das ist keine Defininiton. Es ist eine Instanziierung und eine 
Zuweisung.

> Und meiner Ansicht nach ist beides zusammen die Instanziierung eines
> Members.

Der zweite Teil ist die Instanziierung eines namenlosen dynamischen 
Objekts (keines Members), dessen Adresse an SI_read zugewiesen wird. 
Wenn SI_read also ein Member sein sollte, ist es höchstens eine 
Member-Zuweisung.

Autor: S. F. (deffman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Rolf,

vielen Dank für die ausführliche Erklärung! Das Problem ist, dass ich 
teilweise das Gefühl habe, dass viele Leute unterschiedliche Ansichten 
darüber haben. Zumindest war es so bei mir an der FH. Viele verwenden 
die Begrifflichkeiten, aber keiner zu 100% sicher. So wundere ich mich 
auch dass es bei Visual Studio so ist.

Wenn ich irgendwo im Code auf eine Instanz der Sockets rechts klicke, 
und "gehe zu Deklaration" auswähle, dann springt er in die Zeile
tlm_utils::simple_initiator_socket_tagged<interconnect_component,SI_BW,tlm::tlm_base_protocol_types>*
SI_read;

Wenn ich das gleiche mache, aber dann "gehe zu Definition" klicke, 
springt er in die Zeile
SI_read  = new tlm_utils::simple_initiator_socket_tagged<interconnect_component,SI_BW,tlm::tlm_base_protocol_types>[NR_OF_SIs];

Gruß

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
S. F. schrieb:

> vielen Dank für die ausführliche Erklärung! Das Problem ist, dass ich
> teilweise das Gefühl habe, dass viele Leute unterschiedliche Ansichten
> darüber haben.

Was ich geschrieben hab, ist das, was ISO-C++ dazu zu sagen hat.

> Wenn ich irgendwo im Code auf eine Instanz der Sockets rechts klicke,
> und "gehe zu Deklaration" auswähle, dann springt er in die Zeile
> tlm_utils::simple_initiator_socket_tagged<interconnect_component,SI_BW,t 
lm::tlm_base_protocol_types>*
> SI_read;
>
>
> Wenn ich das gleiche mache, aber dann "gehe zu Definition" klicke,
> springt er in die Zeile
>
> SI_read  = new 
tlm_utils::simple_initiator_socket_tagged<interconnect_component,SI_BW,t 
lm::tlm_base_protocol_types>[NR_OF_SIs];

Interessant. Microsoft hat's allerdings ganz allgemein nicht so mit der 
richtigen Verwendung von Begriffen. Die haben auch schon nicht 
verstanden, was eine Bitmap eigentlich ist.

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rolf Magnus schrieb:
> S. F. schrieb:
>
>> vielen Dank für die ausführliche Erklärung! Das Problem ist, dass ich
>> teilweise das Gefühl habe, dass viele Leute unterschiedliche Ansichten
>> darüber haben.
>
> Was ich geschrieben hab, ist das, was ISO-C++ dazu zu sagen hat.
>
>> Wenn ich irgendwo im Code auf eine Instanz der Sockets rechts klicke,
>> und "gehe zu Deklaration" auswähle, dann springt er in die Zeile
>>
> tlm_utils::simple_initiator_socket_tagged<interconnect_component,SI_BW,t 
lm::tlm_base_protocol_types>*
>> SI_read;
>>
>>
>> Wenn ich das gleiche mache, aber dann "gehe zu Definition" klicke,
>> springt er in die Zeile
>>
>> SI_read  = new
> tlm_utils::simple_initiator_socket_tagged<interconnect_component,SI_BW,t 
lm::tlm_base_protocol_types>[NR_OF_SIs];
>
> Interessant. Microsoft hat's allerdings ganz allgemein nicht so mit der
> richtigen Verwendung von Begriffen. Die haben auch schon nicht
> verstanden, was eine Bitmap eigentlich ist.

Auch die Bezeichnungen von MS sind richtig, da es in C/C++ mehrere 
Varianten gibt und alles zusammengefasst werden kann:
// Deklarationen
void aFunction(int aParameter);
extern Object anObject;
extern Object *anObjectPtr;

// Definitionen
typedef aType typeName;
void aFunction(int aParameter) {
}

// Deklaration und Definition
Object *anObjectPtr; 
// laut Standard ist das eine Zeiger-Deklaration und eine Definition, 
// da Speicher für ein Objekt vom Typ Zeiger auf Object reserviert wird

// Deklaration, Definition und Instantiierung, wenn es eine Klasse ist
Object anObject;

// Instantiierung
*anObjectPtr = new Object(); // Instantiierung

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arc Net schrieb:
> // Instantiierung
> *anObjectPtr = new Object(); // Instantiierung

hier ist der Stern zuviel.

Außerdem gehört der Stern bei der Definition an den Typ ;-P

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arc Net schrieb:

> // Instantiierung
> *anObjectPtr = new Object(); // Instantiierung

Eben. Speziell das ist nur eine Instantiierung und keine Definition und 
auch keine Deklaration. Laut S. F. nennt Visual Studio es aber 
"Definition".

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rolf Magnus schrieb:
> Arc Net schrieb:
>
>> // Instantiierung
>> *anObjectPtr = new Object(); // Instantiierung
>
> Eben. Speziell das ist nur eine Instantiierung und keine Definition und
> auch keine Deklaration. Laut S. F. nennt Visual Studio es aber
> "Definition".

Laut aktuellem ISO-C++-Draft 
(http://www.open-std.org/jtc1/sc22/wg21/docs/papers...)
7 Absatz 8
"An object declaration, however, is also a definition unless it contains
the extern specifier and has no initializer (3.1). A definition causes 
the appropriate amount of storage to be reserved and any appropriate 
initialization (8.5) to be done."
C99 6.7 Absatz 5
"A declaration specifies the interpretation and attributes of a set of 
identifiers. A definition of an identifier is a declaration for that 
identifier that:
— for an object, causes storage to be reserved for that object;"

Autor: S. F. (deffman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah okay super vielen Dank!!!! Jetzt ists klar. Mal wieder super, dass 
unser Prof das in der Vorlesung nie erwähnt hat :)

Gruß
Stefan

Autor: Иван S. (ivan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da Template ja im Deutschen Schablone heisst, würde ich "schablonisiert" 
vorschlagen.

Iwan

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wer wird denn hier on topic werden?

Autor: Zwie Blum (zwieblum)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Иван S. schrieb:
> würde ich "schablonisiert"
> vorschlagen.

"schablonisieren" oder besser "schablonieren" ... ist aber verdächtig 
nahe an "schwadronieren" dran ...

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Arc Net:

Diese Ausschnitte haben irgendwie nichts mit der besagten Codezeile zu 
tun.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.