WINAVR

Sep 05, 2005 Last reply: 20 years ago 816 Replies

Igor, ÔÙ Åݣ ÚÄÅÓØ ÓÉÄÉÛØ?

ðÏÎÅÄÅÌØÎÉË ïËÔÑÂÒØ 03 2005 17:01, Igor Ulanov wrote to George Shepelev:

IU>>> èÍ... á ×Ï ÞÔÏ ÒÁÚ×ÏÒÁÞÉ×ÁÀÔÓÑ ËÏÎÓÔÒÕËÃÉÉ ÑÚÙËÁ óÉ? GS>> á ÎÅÉÚ×ÅÓÔÎÏ! IU> ôÏÇÄÁ ÜÔÁ ÂÅÄÁ:)))

âÙ×ÁÅÔ É ÔÁË ;)

GS>> ëÏÇÄÁ ÐÒÏÇÒÁÍÍÉÓÔ ÐÏÌØÚÕÅÔÓÑ ÁÓÓÅÍÂÌÅÒÎÙÍÉ ÍÁËÒÏÓÁÍÉ, GS>> ÏÎ ÄÏ×ÏÌØÎÏ ޣÔËÏ ÐÒÅÄÓÔÁ×ÌÑÅÔ, ËÁËÏÊ ËÏÄ ÂÕÄÅÔ ÓËÏÍÐÉÌÉÒÏ×ÁÎ. ÷ GS>> ÏÔÌÉÞÉÅ ÏÔ... IU> HÁ ËÏÊ ÌÑÄ ÍÎÅ ÚÎÁÔØ ËÁËÏÊ ËÏÄ ÓÇÅÎÅÒÉÒÕÅÔ ËÏÍÐÉÌÑÔÏÒ? üÔÏ ÎÕÖÎÏ IU> ÍÏÖÅÔ × 1% ÏÔ ×ÓÅ ÒÁÂÏÔÙ.

ïÔ ÒÁÂÏÔÙ ÚÁ×ÉÓÉÔ. åÓÌÉ ÒÅÚÕÌØÔÁÔ ÎÅ ÌÅÚÅÔ × ÐÁÍÑÔØ ËÏÎÔÒÏÌÌÅÒÁ ÉÌÉ ÎÅ È×ÁÔÁÅÔ ÂÙÓÔÒÏÄÅÊÓÔ×ÉÑ - ÐÒÉģÔÓÑ-ÔÁËÉ ÒÁÚÂÉÒÁÔØÓÑ Ó ËÏÄÏÍ...

GS>> HÅËÏÔÏÒÙÅ ×ÅÝÉ × ÉÓÈÏÄÎÏÍ ÔÅËÓÔÅ ÍÏÇÕÔ _ËÁÚÁÔØÓÑ_ ÐÒÏÓÔÙÍÉ, ÎÏ GS>> ÏÇÒÁÎÅÞÅÎÉÑ ÁÒÈÉÔÅËÔÕÒÙ ËÏÎËÒÅÔÎÏÇÏ ËÏÎÔÒÏÌÌÅÒÁ ÐÒÉ×ÅÄÕÔ Ë ËÒÁÊÎÅ GS>> ÎÅÜÆÆÅËÔÉ×ÎÏÍÕ ËÏÄÕ, Á ÚÎÁÎÉÅ ÜÔÉÈ ÏÇÒÁÎÉÞÅÎÉÊ ÐÏÚ×ÏÌÑÅÔ ÒÅÛÉÔØ GS>> ÜÔÕ ÖÅ ÚÁÄÁÞÕ ÇÏÒÁÚÄÏ ÜÌÅÇÁÎÔÎÅÅ. IU> þÅÓÔÎÏ ÇÏ×ÏÒÑ ÄÁÖÅ ÎÅ ÐÒÅÄÓÔÁ×ÌÑÀ, ÞÔÏ ÔÙ ÉÍÅÅÛØ ××ÉÄÕ. HÁ ÐÒÉÍÅÒÅ ÂÙ IU> ÐÏËÁÚÁÌ.

õÖÅ ÎÅÏÄÎÏËÒÁÔÎÏ ÏÚ×ÕÞÉ×ÁÌÏÓØ × ÜÈÅ: "ËÓÏÒËÉ", ÃÉËÌÉÞÅÓËÉÊ ÓÄ×ÉÇ, dsp- ËÏÍÁÎÄÙ...

IU> HÏ × ÃÅÌÏÍ ÎÁÄÏ ÐÏÎÑÔØ, ÞÔÏ ÜÆÆÅËÔÉ×ÎÏÓÔØ ËÏÄÁ ÚÁ×ÉÓÉÔ ÏÔ ÒÅÁÌÉÚÁÃÉÉ IU> ËÏÍÐÉÌÑÔÏÒÁ, Á ÎÅ ÏÔ ÏÐÉÓÁÎÉÑ ÁÌÇÏÒÉÔÍÁ ÎÁ óÑÈ.

åÓÌÉ ÑÚÙË ÎÅ ÉÍÅÅÔ ÓÒÅÄÓÔ×, ÞÔÏÂÙ ÚÁÓÔÁ×ÉÔØ ËÏÍÐÉÌÑÔÏÒ ÚÁÄÅÊÓÔ×Ï×ÁÔØ ÜÆÆÅËÔÉ×ÎÕÀ ËÏÍÁÎÄÕ - ÂÕÄÅÔ ËÏÍÐÉÌÉÒÏ×ÁÔØÓÑ ÎÅÜÆÆÅËÔÉ×ÎÙÊ ËÏÄ.

IU> åÓÌÉ ËÏÍÐÉÌÑÔÏÒ ÐÉÓÁÌÓÑ ÒÅÂÑÔÁÍÉ ÉÚ ÏÔÄÅÌÁ ÍÁÒËÅÔÉÎÇÁ ËÁË IU> ÕÎÉ×ÅÒÓÁÌØÎÙÊ ÐÒÏÄÕËÔ ÎÁ ×ÓÅ ÍÙÓÌÉÍÙÅ ÁÒÈÉÔÅËÔÕÒÙ, ÔÏ ÎÁ×ÅÒÎÏ ÔÙ ÐÒÁ×. IU> HÏ ËÁË ÐÒÁ×ÉÌÏ ËÏÍÐÉÌÑÔÏÒÙ ÐÉÛÕÔ ÎÅÍÎÏÇÏ ÄÒÕÇÉÅ ÌÀÄÉ.

HÕ É ËÁË ÜÔÉ "ÄÒÕÇÉÅ ÌÀÄÉ" ÚÁÓÔÁ×ÑÔ ËÏÍÐÉÌÑÔÏÒ ÐÏÓÔÁ×ÉÔØ ËÏÍÁÎÄÕ XCHG ÉÌÉ RCR ÉÌÉ ROR (ÍÎÅÍÏÎÉËÉ ÓÅÍÅÊÓÔ×Á x86)?

GS>> éÎÏÇÄÁ ÚÎÁÎÉÅ ÏÓÏÂÅÎÎÏÓÔÅÊ "ÖÅÌÅÚÁ" ÍÅÎÑÅÔ _ÓÔÒÕËÔÕÒÕ GS>> ÐÒÅÄÓÔÁ×ÌÅÎÉÑ ÄÁÎÎÙÈ_, Á ÜÔÏ ÍÏÖÅÔ ÉÚÍÅÎÉÔØ ÜÆÆÅËÔÉ×ÎÏÓÔØ GS>> ÒÅÁÌÉÚÁÃÉÉ ÁÌÇÏÒÉÔÍÁ × ÎÅÓËÏÌØËÏ ÒÁÚ. IU> õ ÍÅÎÑ ÎÅÔ ÓÔÏÌØ ÂÏÇÁÔÏÇÏ ÏÐÙÔÁ ÒÁÂÏÔÙ Ó ÒÁÚÎÙÍ ÖÅÌÅÚÏÍ, ÞÔÏÂÙ ÓÕÄÉÔØ IU> Ï ÜÔÏÍ. HÏ × ÌÀÂÏÍ ÓÌÕÞÁÅ "ÓÔÒÕËÔÕÒÁ ÐÒÅÄÓÔÁ×ÌÅÎÉÑ ÄÁÎÎÙÈ" ×ÅÝØ ÎÅ IU> ÐÏÎÑÔÎÁÑ.

ôÅÂÅ ÎÅ ÐÏÎÑÔÎÁÑ ×ÅÝØ? þÔÏ-Ö, ÒÅËÏÍÅÎÄÕÀ ÐÏÞÉÔÁÔØ "íÉÆÉÞÅÓËÉÊ ÞÅÌÏ×ÅËÏ-ÍÅÓÑÃ", ÒÁÚÄÅÌ "ðÒÅÄÓÔÁ×ÌÅÎÉÅ ÄÁÎÎÙÈ - ÓÕÝÎÏÓÔØ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ".

GS>> þÔÏ-Ö, ×ÉÄÉÍÏ ÔÙ ÎÅ ÄÅÌÁÌ ÂÏÌØÛÉÈ É ÓÌÏÖÎÙÈ ÐÒÏÅËÔÏ×, ÎÅ ÒÁÂÏÔÁÌ GS>> Ó ËÏÎÔÒÏÌÌÅÒÁÍÉ Ó "ÕÒÏÄÓËÉÍÉ" ÆÉÒÍÅÎÎÙÍÉ ÍÎÅÍÏÎÉËÁÍÉ, ×ÒÏÄÅ 8080 GS>> ÉÌÉ PIC... IU> ÷ ËÏÎÃÅ 80È ÎÁÞÁÌÅ 90È ÄÅÌÁÌ ÐÅÞËÕ ÏÂÖÉÇÁ ËÅÒÁÍÉËÉ ÄÌÑ ËÏÎÄÅÓÁÔÏÒÏ×. IU> ôÒÉ ËÁÎÁÌÁ. ÷ ËÁÖÄÏÍ ËÁÎÁÌ 6 ðð ÔÅÒÍÏÐÁÒ É 18 ÎÁÇÒÅ×ÁÔÅÌÅÊ. âÙÌÁ IU> ÚÁÄÁÞÁ ÐÏÌÕÞÉÔØ ÐÒÅÄÓËÁÚÕÅÍÕÀ ÔÅÍÐÅÒÁÔÕÒÕ ÎÁ ÐÒÏÔÑÖÅÎÉÉ ×ÓÅÇÏ ËÁÎÁÌÁ. IU> þÔÏÂÙ ÕÓÔÒÁÎÉÔØ ×ÌÉÑÎÉÅ ÒÁÚÂÒÏÓÁ ÐÁÒÁÍÅÔÒÏ× ÎÁÇÒÅ×ÁÔÅÌÅÊ, ËÁÖÄÙÊ IU> ÎÁÇÒÅ×ÁÔÅÌØ ÒÅÇÕÌÉÒÏ×ÁÌÓÑ ÏÔÄÅÌØÎÏ, Ó ÚÁÍÅÒÏÍ ÅÇÏ ÐÁÒÁÍÅÔÒÏ×. IU> ðÅÒ×ÏÎÁÞÁÌØÎÏ ÄÅÌÁÌÏÓØ ÎÁ 580×Í80 × ÐÏÓÌÅÄÕÝÅÍ ÐÅÒÅ×ÅÌÉ ÎÁ z80 - ×ÓÅ IU> ÄÅÌÁÌÏÓØ ÎÁ ÁÓÓÅÍÂÌÅÒÅ.

üÔÏ ÐÒÉÍÉÔÉ×ÎÁÑ ÚÁÄÁÞÁ, ÕÖ ÉÚ×ÉÎÉ ;)))

GS>> ðÏÎÉÍÁÅÛØ, ËÏÇÄÁ ÔÅÂÑ ÔËÎÕÌÉ ÎÏÓÏÍ × ÏÛÉÂËÕ × ÐÒÏÇÒÁÍÍÅ, ÔÙ GS>> ×ÉÄÉÛØ, ÞÔÏ ÎÅÐÒÁ×ÉÌØÎÏ ÓÄÅÌÁÌ. HÏ ÐÏËÕÄÁ ÔÙ ţ ÉÝÅÛØ - ÚÁÞÁÓÔÕÀ GS>> ÇÏÔÏ× ÐÏËÌÑÓÔØÓÑ, ÞÔÏ ×ӣ ÓÄÅÌÁÎÏ ÐÒÁ×ÉÌØÎÏ É ÓÏ×ÅÒÛÅÎÎÏ GS>> ÏÄÎÏÚÎÁÞÎÏ ;-) IU> ðÏÄ óÉ Õ×ÉÄÅÔØ ÐÒÏÝÅ,

íÅÞÔÙ, ÍÅÞÔÙ...

IU> ÔÁË ËÁË ÄÅÊÓÔ×ÉÊ ÏÐÉÓÙ×ÁÅÔÓÑ ÎÁÍÎÏÇÏ ÍÅÎØÛÅ,

HÁÇÌÑÄÎÏÓÔÉ ÍÁÌÏ - ÏÛÉÂËÉ ÎÁÊÔÉ ÔÒÕÄÎÏ.

IU> Ô.Å. ÉÝÅÝØ × ÍÅÎØÛÅÍ ÏÂßÅÍÅ.

÷ÁÖÅÎ ÎÅ ÏÂߣÍ, Á ÎÁÇÌÑÄÎÏÓÔØ. òÁÎØÛÅ × ÐÉÓØÍÅÎÎÏÊ ÒÅÞÉ ÄÌÑ ËÒÁÔËÏÓÔÉ ÏÐÕÓËÁÌÉ ÚÎÁËÉ ÐÒÉÐÉÎÁÎÉÑ, ÐÒÏÂÅÌÙ É ÇÌÁÓÎÙÅ. äÕÍÁÅÛØ, ÌÅÇÞÅ ÂÙÌÏ ÞÉÔÁÔØ _ÔÁËÏÅ_: ðòóéêéóéìïðð÷ðëþôâìøHóôëíðëôHçôëóô

çÅÏÒÇÉÊ

Hello Dimmy.

04 Oct 05 10:20, you wrote to Harry Zhurov:

DT>>> çÄÅ-ÔÏ (× ÏËÏÌÏÁÄÓËÉÈ ËÒÕÇÁÈ) ÞÉÔÁÌ, ÞÔÏ ÐÒÏÇÒÁÍÍÉÓÔ ÐÒÅÖÄÅ DT>>> ×ÓÅÇÏ ÄÏÌÖÅÎ ÈÏÒÏÛÏ ×ÌÁÄÅÔØ ÒÏÄÎÙÍ ÅÓÔÅÓÔ×ÅÎÎÙÍ ÑÚÙËÏÍ É ÕÍÅÔØ DT>>> ÑÓÎÏ É ޣÔËÏ ×ÙÒÁÖÁÔØ Ó×ÏÉ ÍÙÓÌÉ.

HZ>> HÁÄÏ ÖÅ! á Ñ ÐÏÄÏÂÎÕÀ ×ÅÓÞØ ×ÓÔÒÅÞÁÌ Õ óÔÁÒÕÓÔÒÕÐÁ. :)

HÅ ÚÎÁÀ, ÎÅ ÚÎÁÀ.. ÞÔÏ-ÔÏ óÔÒÁÕÓÔÒÕÐÏ×ÓËÉÅ ËÎÉÖÅÎÃÉÉ ÍÅÎÑ ÓÉÌØÎÏ ÕÄÉ×ÉÌÉ ÐÏÌÎÏÊ ÎÅÞÅÔËÏÓÔØÀ ÉÚÌÏÖÅÎÉÑ É ÎÅÑÓÎÏÓÔØÀ ÍÙÓÌÉ :)

DT> äÕÍÁÀ, óÔÒÁÕÓÔÒÕÐ ÎÅÐÌÏÈÏ ÚÎÁÌ áÄÕ. ;) ðÏ ËÒÁÊÎÅÊ ÍÅÒÅ ÍÎÏÇÏ ÆÉÞ C++ DT> ÔÑÎÕÔÏ ÏÔÔÕÄÁ. HÅÄÁ×ÎÏ ÏÂÎÁÒÕÖÉÌ Åݣ ÏÄÎÕ: ÐÅÒÅÍÅÎÎÏÅ ÞÉÓÌÏ ÁÒÇÕÍÅÎÔÏ× DT> ÆÕÎËÃÉÉ ÞÅÒÅÚ ÚÁÄÁÎÉÅ ÚÎÁÞÅÎÉÊ ÐÏ ÕÍÏÌÞÁÎÉÀ ÐÁÒÁÍÅÔÒÁÍ.

äÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÜÌÌÉÐÓÉÓÁ ÕÖÅ ÄÏÂÒÁÌÓÑ ? ;) äÁ, ÐÏÐÒÏÂÕÊ óÔÒÁÕÓÔÒÕÐÁ ÚÁÞÉÔÙ×ÁÔØ íÅÊÅÒÓÏÍ ("effecticve c++ / more effective c++"), ÏÞÅÎØ ÈÏÒÏÛÏ ÐÏÍÏÇÁÅÔ ÉÚÂÅÖÁÔØ ÎÁÓÔÕÐÁÎÉÑ ÎÁ ÝÅÄÒÏ ÒÁÚÌÏÖÅÎÎÙÅ ÇÒÁÂÌÉ. ìÅÖÉÔ ÔÕÔ:
formatting link
Dmitry

Hello Dmitry.

Tue Oct 04 2005 20:07, Dmitry Lyokhin wrote to me: DT>>>> ÑÓÎÏ É ޣÔËÏ ×ÙÒÁÖÁÔØ Ó×ÏÉ ÍÙÓÌÉ.

HZ>>> HÁÄÏ ÖÅ! á Ñ ÐÏÄÏÂÎÕÀ ×ÅÓÞØ ×ÓÔÒÅÞÁÌ Õ óÔÁÒÕÓÔÒÕÐÁ. :)

DL> HÅ ÚÎÁÀ, ÎÅ ÚÎÁÀ.. ÞÔÏ-ÔÏ óÔÒÁÕÓÔÒÕÐÏ×ÓËÉÅ ËÎÉÖÅÎÃÉÉ ÍÅÎÑ ÓÉÌØÎÏ DL> ÕÄÉ×ÉÌÉ ÐÏÌÎÏÊ ÎÅÞÅÔËÏÓÔØÀ ÉÚÌÏÖÅÎÉÑ É ÎÅÑÓÎÏÓÔØÀ ÍÙÓÌÉ :)

ðÏÞÅÍÕ-ÔÏ Ñ ÎÅ ÕÄÉ×̣Î. ;)

DT>> äÕÍÁÀ, óÔÒÁÕÓÔÒÕÐ ÎÅÐÌÏÈÏ ÚÎÁÌ áÄÕ. ;) ðÏ ËÒÁÊÎÅÊ ÍÅÒÅ ÍÎÏÇÏ ÆÉÞ C++ DT>> ÔÑÎÕÔÏ ÏÔÔÕÄÁ. HÅÄÁ×ÎÏ ÏÂÎÁÒÕÖÉÌ Åݣ ÏÄÎÕ: ÐÅÒÅÍÅÎÎÏÅ ÞÉÓÌÏ ÁÒÇÕÍÅÎÔÏ× DT>> ÆÕÎËÃÉÉ ÞÅÒÅÚ ÚÁÄÁÎÉÅ ÚÎÁÞÅÎÉÊ ÐÏ ÕÍÏÌÞÁÎÉÀ ÐÁÒÁÍÅÔÒÁÍ.

DL> äÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÜÌÌÉÐÓÉÓÁ ÕÖÅ ÄÏÂÒÁÌÓÑ ? ;)

ëÁË Ñ ÐÏÎÑÌ, × C++ ÅÇÏ ÎÅ ÉÓÐÏÌØÚÕÀÔ ÄÌÑ ÜÔÏÊ ÃÅÌÉ (ÐÅÒÅÍÅÎÎÏÅ ÞÉÓÌÏ ÁÒÇÕÍÅÎÔÏ×)?

DL> äÁ, ÐÏÐÒÏÂÕÊ óÔÒÁÕÓÔÒÕÐÁ ÚÁÞÉÔÙ×ÁÔØ íÅÊÅÒÓÏÍ ("effecticve c++ / more DL> effective c++"),

ñ ÐÏËÁ ï'òÅÊÌÉ ÞÉÔÁÀ, "C++ in a Nutshell". ïÎ ÔÏÖÅ ÎÅ ÏÓÏÂÏ ×ÎÑÔÅÎ.

DL> ÏÞÅÎØ ÈÏÒÏÛÏ ÐÏÍÏÇÁÅÔ ÉÚÂÅÖÁÔØ ÎÁÓÔÕÐÁÎÉÑ ÎÁ ÝÅÄÒÏ DL> ÒÁÚÌÏÖÅÎÎÙÅ ÇÒÁÂÌÉ. ìÅÖÉÔ ÔÕÔ: DL>

formatting link
äÁ, ÓÉÍÐÁÔÉÞÎÁÑ ÓÔÒÁÎÉÞËÁ, ÎÏ ËÁÞÁÀÔÓÑ ÆÁÊÌÙ ÍÅÄÌÅÎÎÏ (Õ ÍÅÎÑ).

çÌÑÖÕ ÓÅÊÞÁÓ "C++ Coding Standards: 101 Rules, Guidelines, and Best Practices"

- ×ÏÔ ÔÕÔ ÓÔÉÌØ ÏÔÌÉÞÎÙÊ. ìÁËÏÎÉÞÎÏ, ÑÓÎÏ, ޣÔËÏ.

Dimmy.

Hello George.

Tue Oct 04 2005 13:14, George Shepelev wrote to me:

DT>> HÕ ÅÓÔØ ÔÁÍ ÎÅÐÒÉÑÔÎÙÅ ÆÉÞÉ ×ÒÏÄÅ ÐÒÉ×ÅÄÅÎÉÑ ÚÎÁÞÅÎÉÑ ÃÅÌÏÞÉÓÌÅÎÎÏÇÏ DT>> ×ÙÒÁÖÅÎÉÑ Ë ÔÉÐÕ int. á ×ÙÒÁÖÅÎÉÑ Ó ÐÌÁ×ÁÀÝÅÊ ÔÏÞËÏÊ - Ë ÔÉÐÕ double.

GS> ðÒÉޣÍ ×ÅÌÉÞÉÎÁ ÜÔÉÈ int É double - ÏÔÄÅÌØÎÙÊ ×ÏÐÒÏÓ, ÔÒÅÂÕÀÝÉÊ GS> ÓÐÅÃÉÁÌØÎÏÇÏ ÒÁÓÓÍÏÔÒÅÎÉÑ...

õÇÕ. á × áÄÅ ÍÏÖÎÏ ÏÐÉÓÁÔØ Ó×ÏÊ ÁÒÉÆÍÅÔÉÞÅÓËÉÊ ÔÉÐ, ÐÏÌÎÏÓÔØÀ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ, ÎÁÐÒÉÍÅÒ, ÔÏÞÎÏÓÔÉ É ÄÉÁÐÁÚÏÎÕ ÚÎÁÞÅÎÉÊ ÉÚÍÅÒÑÅÍÏÊ ×ÅÌÉÞÉÎÙ. á ËÏÍÐÉÌÑÔÏÒ ×ÙÂÅÒÅÔ ÐÒÅÄÓÔÁ×ÌÅÎÉÅ, ÍÁËÓÉÍÁÌØÎÏ ÜÆÆÅËÔÉ×ÎÏ ÒÅÁÌÉÚÕÀÝÅÅ ÜÔÏÔ ÔÉÐ ÎÁ ÄÁÎÎÏÍ ÖÅÌÅÚÅ. ðÒÉޣÍ ÁÒÉÆÍÅÔÉÞÅÓËÉÅ ÔÉÐÙ ÍÏÇÕÔ ÂÙÔØ ÎÅ ÔÏÌØËÏ ÃÅÌÙÅ É Ó ÐÌÁ×ÁÀÝÅÊ ÔÏÞËÏÊ, ÎÏ É Ó ÆÉËÓÉÒÏ×ÁÎÎÏÊ (ÃÅÌÙÅ ÍÁÓÛÔÁÂÉÒÏ×ÁÎÎÙÅ).

Dimmy.

Hello Dmitry.

Wed Oct 05 2005 07:06, I wrote to you:

DT> çÌÑÖÕ ÓÅÊÞÁÓ "C++ Coding Standards: 101 Rules, Guidelines, and Best DT> Practices" - ×ÏÔ ÔÕÔ ÓÔÉÌØ ÏÔÌÉÞÎÙÊ. ìÁËÏÎÉÞÎÏ, ÑÓÎÏ, ޣÔËÏ.

ëÓÔÁÔÉ, ×ÏÔ ÏÞÅÎØ ÐÒÁ×ÉÌØÎÁÑ ÍÙÓÌØ ÏÔÔÕÄÁ.

Focus on one thing at a time: Prefer to give each entity (variable, class, function, namespace, module, library) one well-defined responsibility. As an entity grows, its scope of responsibility naturally increases, but its responsibility should not diverge.

A good business idea, they say, can be explained in one sentence. Similarly, each program entity should have one clear purpose.

An entity with several disparate purposes is generally disproportionately harder to use, because it carries more than the sum of the intellectual overhead, complexity, and bugs of its parts. Such an entity is larger (often without good reason) and harder to use and reuse. Also, such an entity often offers crippled interfaces for any of its specific purposes because the partial overlap among various areas of functionality blurs the vision needed for crisply implementing each.

Entities with disparate responsibilities are typically hard to design and implement. "Multiple responsibilities" frequently implies "multiple personalities"a combinatorial number of possible behaviors and states. Prefer brief single-purpose functions (see also Item 39), small single-purpose classes, and cohesive modules with clean boundaries.

Prefer to build higher-level abstractions from smaller lower-level abstractions. Avoid collecting several low-level abstractions into a larger low-level conglomerate. Implementing a complex behavior out of several simple ones is easier than the reverse.

éÌÉ Åݣ:

KISS (Keep It Simple Software): Correct is better than fast. Simple is better than complex. Clear is better than cute. Safe is better than insecure.

It's hard to overstate the value of simple designs and clear code. Your code's maintainer will thank you for making it understandable - and often that will be your future self, trying to remember what you were thinking six months ago. Hence such classic wisdom as:

Programs must be written for people to read, and only incidentally for machines to execute.

Harold Abelson and Gerald Jay Sussman

Write programs for people first, computers second.

Steve McConnell

The cheapest, fastest and most reliable components of a computer system are those that aren't there.

Gordon Bell

Those missing components are also the most accurate (they never make mistakes), the most secure (they can't be broken into), and the easiest to design, document, test and maintain. The importance of a simple design can't be overemphasized.

Jon Bentley

Dimmy.

Tue, 04 Oct 2005 09:20:09 +0400 Dimmy Timchenko wrote to Harry Zhurov:

DT> Tue Oct 04 2005 10:37, Harry Zhurov wrote to me:

DT>>> çÄÅ-ÔÏ (× ÏËÏÌÏÁÄÓËÉÈ ËÒÕÇÁÈ) ÞÉÔÁÌ, ÞÔÏ ÐÒÏÇÒÁÍÍÉÓÔ ÐÒÅÖÄÅ ×ÓÅÇÏ DT>>> ÄÏÌÖÅÎ ÈÏÒÏÛÏ ×ÌÁÄÅÔØ ÒÏÄÎÙÍ ÅÓÔÅÓÔ×ÅÎÎÙÍ ÑÚÙËÏÍ É ÕÍÅÔØ ÑÓÎÏ É ޣÔËÏ DT>>> ×ÙÒÁÖÁÔØ Ó×ÏÉ ÍÙÓÌÉ.

HZ>> HÁÄÏ ÖÅ! á Ñ ÐÏÄÏÂÎÕÀ ×ÅÓÞØ ×ÓÔÒÅÞÁÌ Õ óÔÁÒÕÓÔÒÕÐÁ. :)

DT> äÕÍÁÀ, óÔÒÁÕÓÔÒÕÐ ÎÅÐÌÏÈÏ ÚÎÁÌ áÄÕ. ;) ðÏ ËÒÁÊÎÅÊ ÍÅÒÅ ÍÎÏÇÏ ÆÉÞ C++ DT> ÔÑÎÕÔÏ ÏÔÔÕÄÁ.

ïÔËÕÄÁ ÔÁËÁÑ Õ×ÅÒÅÎÎÏÓÔØ? ó++ É áÄÁ - ÒÏ×ÅÓÎÉËÉ. ó++ ÐÏÑ×ÉÌÓÑ ËÁË ÒÁÚ×ÉÔÉÅ ó Ó ÄÏÂÁ×ÌÅÎÎÙÍ Ë ÎÅÍÕ ÉÚ óÉÍÕÌÙ ÐÏÎÑÔÉÑ ËÌÁÓÓÁ. áÄÙ ÔÕÔ É ÂÌÉÚËÏ ÎÅÔ.

DT> HÅÄÁ×ÎÏ ÏÂÎÁÒÕÖÉÌ Åݣ ÏÄÎÕ: ÐÅÒÅÍÅÎÎÏÅ ÞÉÓÌÏ ÁÒÇÕÍÅÎÔÏ× ÆÕÎËÃÉÉ ÞÅÒÅÚ DT> ÚÁÄÁÎÉÅ ÚÎÁÞÅÎÉÊ ÐÏ ÕÍÏÌÞÁÎÉÀ ÐÁÒÁÍÅÔÒÁÍ.

ôÏ, ÞÔÏ ÔÙ ×ÓÔÒÅÔÉÌ ÚÎÁËÏÍÏÅ ÓÒÅÄÓÔ×Ï, ÎÅ ÏÚÎÁÞÁÅÔ, ÞÔÏ ÏÎÏ ×ÚÑÔÏ ÉÚ áÄÙ. ë ÓÏÖÁÌÅÎÉÀ, ÐÏÄ ÒÕËÏÊ ÎÅÔ "C++ E&D", ÓÅÊÞÁÓ ÏÐÒÅÄÅÌÅÎÎÏ ÕÔ×ÅÒÖÄÁÔØ ÎÉÞÅÇÏ ÎÅ ÍÏÇÕ. äÏÍÁ ÐÏÓÍÏÔÒÀ (ÅÓÌÉ ÎÅ ÚÁÂÕÄÕ).

P.S. îÅ ÎÁÄÏÅÌÏ ÅÝÅ ÐÒÏ áÄÕ ... ? îÅÔÕ ÅÅ. é ÎÅ ÂÕÄÅÔ ÓËÏÒÅÅ ×ÓÅÇÏ. ÷Ï ×ÓÑËÏÍ ÓÌÕÞÁÅ × ÔÅÈ ÍÁÓÛÔÁÂÁÈ, ËÁË ó É ó++. ï ÐÒÉÞÉÎÁÈ ÜÔÏÇÏ ÍÏÖÅÛØ ÄÏÄÕÍÁÔØÓÑ ÓÁÍ (ÐÏÄÏÚÒÅ×ÁÀ, ÞÔÏ ÕÖÅ ÄÏÄÕÍÁÌÓÑ).

P.P.S. ÷ÍÅÓÔÏ ÜÔÏÇÏ ÏÞÅÎØ ÓÏ×ÅÔÕÀ ÐÏÞÉÔÁÔØ ÎÁ ÄÏÓÕÇÅ "äÉÚÁÊÎ É Ü×ÏÌÀÃÉÑ ó++". ëÎÉÖËÁ ÎÅÂÏÌØÛÁÑ, ÎÏ ÏÞÅÎØ ÚÁÎÉÍÁÔÅÌØÎÁÑ. ðÏÓÌÅ ÎÅÅ ÓÔÁÎÏ×ÉÔÓÑ ÐÏÎÑÔÎÙÍ ÏÔËÕÄÁ ÞÔÏ ×ÚÑÌÏÓØ É ÐÏÞÅÍÕ ÏÎÏ ÔÁË, Á ÎÅ ÉÎÁÞÅ. ÷ÏÐÒÏÓÏ× ÓÒÁÚÕ ÕÂÁ×ÉÔÓÑ ÎÁ ÐÏÒÑÄÏË É ÌÁÖÁÔØ ó++ ÂÕÄÅÛØ ÍÅÎØÛÅ - ÜÔÏ ÔÏÞÎÏ. ôÁÍ ÞÅÔËÏ ×ÉÄÎÏ, ËÁË ÒÁÚ×É×ÁÌÓÑ É ÒÏÓ ó++ - ÐÏÄÏÂÎÏ ÖÉ×ÏÍÕ ÏÒÇÁÎÉÚÍÕ. ðÏÜÔÏÍÕ É ÑÚÙË ÖÉ×ÏÊ. ÷ ÏÔÌÉÞÉÅ ÏÔ áÄÙ, ËÏÔÏÒÁÑ ÐÒÉ ×ÓÅÊ Ó×ÏÅÊ ÁËÁÄÅÍÉÞÎÏÊ ÓÔÒÏÊÎÏÓÔÉ (É × ÇÌÁ×ÎÏÊ ÓÔÅÐÅÎÉ ÉÚ-ÚÁ ÎÅÅ) ÍÅÒÔ×Á.

÷ ÚÁËÌÀÞÅÎÉÅ ÃÉÔÁÔÁ ÉÚ "äÉÚÁÊÎ É Ü×ÏÌÀÃÉÑ ó++" (Í.Â. ÜÔÏ ÔÅÂÑ ÚÁÉÎÔÅÒÅÓÕÅÔ):

"... ñ ÎÅ ÈÏÞÕ ÎÁ×ÑÚÙ×ÁÔØ ÅÄÉÎÙÊ ÓÔÉÌØ ÐÒÏÅËÔÉÒÏ×ÁÎÉÑ ÐÏÓÒÅÄÓÔ×ÏÍ ÕÚËÏ ÏÐÒÅÄẠ̊ÎÎÏÇÏ ÑÚÙËÁ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ. íÙÓÌÉ É ÄÅÊÓÔ×ÉÑ ÌÀÄÅÊ ÎÁÓÔÏÌØËÏ ÉÎÄÉ×ÉÄÕÁÌØÎÙ, ÞÔÏ ÌÀÂÁÑ ÐÏÐÙÔËÁ ÐÒÉ×ÅÓÔÉ ×ÓÅÈ Ë ÏÂÝÅÍÕ ÚÎÁÍÅÎÁÔÅÌÀ ÐÒÉÎÅӣÔ ÂÏÌØÛÅ ×ÒÅÄÁ ÞÅÍ ÐÏÌØÚÙ. ðÏÜÔÏÍÕ ó++ ÓÏÚÎÁÔÅÌØÎÏ ÓÐÒÏÅËÔÉÒÏ×ÁÎ ÔÁË, ÞÔÏÂÙ ÐÏÄÄÅÒÖÁÔØ ÒÁÚÌÉÞÎÙÅ ÓÔÉÌÉ, Á ÎÅ ÐÏËÁÚÁÔØ ÅÄÉÎÓÔ×ÅÎÎÙÊ "ÉÓÔÉÎÎÙÊ ÐÕÔØ"".

Tue, 04 Oct 2005 19:07:21 +0400 Dmitry Lyokhin wrote to Dimmy Timchenko:

DT>> äÕÍÁÀ, óÔÒÁÕÓÔÒÕÐ ÎÅÐÌÏÈÏ ÚÎÁÌ áÄÕ. ;) ðÏ ËÒÁÊÎÅÊ ÍÅÒÅ ÍÎÏÇÏ ÆÉÞ C++ DT>> ÔÑÎÕÔÏ ÏÔÔÕÄÁ. HÅÄÁ×ÎÏ ÏÂÎÁÒÕÖÉÌ Åݣ ÏÄÎÕ: ÐÅÒÅÍÅÎÎÏÅ ÞÉÓÌÏ ÁÒÇÕÍÅÎÔÏ× DT>> ÆÕÎËÃÉÉ ÞÅÒÅÚ ÚÁÄÁÎÉÅ ÚÎÁÞÅÎÉÊ ÐÏ ÕÍÏÌÞÁÎÉÀ ÐÁÒÁÍÅÔÒÁÍ.

DL> äÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÜÌÌÉÐÓÉÓÁ ÕÖÅ ÄÏÂÒÁÌÓÑ ? ;)

îÅ, ÐÏ ÈÏÄÕ, ÏÎ ÉÍÅÅÔ × ×ÉÄÕ ÔÏ, ÞÔÏ ÍÏÖÎÏ ÚÁÄÁ×ÁÔØ ÒÕËÁÍÉ ÐÅÒÅÍÅÎÎÏÅ ÞÉÓÌÏ ÐÁÒÁÍÅÔÒÏ×, Á ÏÓÔÁÌØÎÙÅ ÐÏ ÕÍÏÌÞÁÎÉÀ.

Про "факт" или "не факт", можно говорить когда есть конкретная задача. Вы же привели абстрактную задачу - есть N каналов, входные частоты f, меняются по какому-то закону f(t) их нужно обработать и выдать сигнал F и нужно все это сделать на некотором кристалле X - при том что N, f(t), F и X могут быть какие угодно. И утверждаете, что на ассемблере, эта задача решится, а на Си нет... С таким же успехом можно утверждать обратное:-) Хорошо хоть из соседних писем видно что линий у вас 4 или 8. По мне так нужно решать конкретные задачи, а не в целом и на все случаи жизни...

А почему вы утверждаете что "трюки" на асм-е - это изящный способ, а "трюки" на Си - нет? Что вы вообще в это понятие вкладываете - "трюки"?

Я вообще без предрассудков, надо - пишу вставку или модуль на асме, но если можно все сделать на чистом Си - оставляю на Си..... Но утверждать что это надо обязательно писать на Си, а это обязательно на асм-е не возьмусь никогда. Это все спор ради спора....

Если вы прекрасно владеете ассемблером, то никто вас не тянет переходить на Си. Но если вы не понимаете Си (что я заметил из соседних писем), то и пользоваться им и рассуждать о его "недостатках" вам не стоит.

Был у нас в конторе один товарищ, долго не задержался, т.к. начал решать задачу с изучения CPU и его асм-а, когда заготовка проекта писанного на Си уже работала и ему оставалось только дописать кусок работающий с внешней периферией. Начальство видит - время идет результата нет.... вывод - человек бездельничает (с точки зрения нач.) Так что такое упорство - типа "ЯП X рулез и ничего нет круче" (вместо X можно подставить асм, Си, Си++, Паскаль, VB, Ада

- по вкусу) не есть вещь полезная в реальной жизни.

Во еще могу привести контрпример для "дерганья ножками" (мой "любимый" IAR Си для MSP430) Можете объяснить где здесь "Есть проигрыш."? =============================================== 24 /******************************************************************* 25 Функция I2CBusSTART выполняет условие START на шине I2C. 26 *******************************************************************/ 27 void I2CBusSTART(void) \ 0000 I2CBusSTART: 28 {// Begin I2CBusSTART 29 30 // 1. Записать в SDA 1. \ 0000 E2D31900 BIS.B #2,&25 31 P3OUT |= (0x0002); 32 33 // 2. Подождать установки данных на SDA 34 // Ждем время Tsu_dat 35 DELAY(Tsu_dat); 36 37 // 3. Записать в SCL 1. \ 0004 F2D21900 BIS.B #8,&25 38 P3OUT |= (0x0008); 39 40 // 4. Подождать время установки условия START 41 // Ждем время Tsu_sta 42 DELAY(Tsu_sta); 43 44 // 5. Записать в SDA 0. 45 // Сбрасываем линию SDA в 0. \ 0008 E2C31900 BIC.B #2,&25 46 P3OUT &= ~(0x0002); 47 48 // 6. Подождать время удержания условия START. 49 // Ждем время Thd_sta. 50 DELAY(Thd_sta); 51 52 // 7. Записать в SCL 0. 53 // Сбрасываем линию SCL в 0. \ 000C F2C21900 BIC.B #8,&25 54 P3OUT &= ~(0x0008); 55 \ 0010 3041 RET 56 }// End I2CBusSTART =============================================== Небольшой комментарий: Макрос DELAY(t) - пустой. Поскольку все крутится от внутреннего генератора MSP430, то перед обменом по I2C я снижаю его частоту так чтобы программное "дерганье ногами" обошлось без дополнительных задержек. (зависит от характеристик микросхем-slave-ов).

Опять же все зависит от того насколько качественно реализована оптимизация в компиляторе. Кто например мешает вложить ваши любимые "трюки" в компилятор, что бы код получался не тупым разворачиванием конструкций, а применением соответствующих "изящных решений" в местах где это возможно.

Так что уместнее было бы говорить не "Есть проигрыш", а "Бывает проигрыш":-)

ðÒÉ×ÅÔ, *Dimmy*!

/ÓÒÅÄÁ, 05 ÏËÔÑÂÒÑ 2005/ *Dimmy Timchenko* ÐÉÓÁÌ(Á) Ë *George Shepelev* ÐÏ ÐÏ×ÏÄÕ *WinAvr:*

[ËÕÓØ] DT> õÇÕ. á × áÄÅ ÍÏÖÎÏ ÏÐÉÓÁÔØ Ó×ÏÊ ÁÒÉÆÍÅÔÉÞÅÓËÉÊ ÔÉÐ, ÐÏÌÎÏÓÔØÀ DT> ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ, ÎÁÐÒÉÍÅÒ, ÔÏÞÎÏÓÔÉ É ÄÉÁÐÁÚÏÎÕ ÚÎÁÞÅÎÉÊ ÉÚÍÅÒÑÅÍÏÊ DT> ×ÅÌÉÞÉÎÙ. á ËÏÍÐÉÌÑÔÏÒ ×ÙÂÅÒÅÔ ÐÒÅÄÓÔÁ×ÌÅÎÉÅ, ÍÁËÓÉÍÁÌØÎÏ ÜÆÆÅËÔÉ×ÎÏ DT> ÒÅÁÌÉÚÕÀÝÅÅ ÜÔÏÔ ÔÉÐ ÎÁ ÄÁÎÎÏÍ ÖÅÌÅÚÅ. ðÒÉޣÍ ÁÒÉÆÍÅÔÉÞÅÓËÉÅ ÔÉÐÙ DT> ÍÏÇÕÔ ÂÙÔØ ÎÅ ÔÏÌØËÏ ÃÅÌÙÅ É Ó ÐÌÁ×ÁÀÝÅÊ ÔÏÞËÏÊ, ÎÏ É Ó ÆÉËÓÉÒÏ×ÁÎÎÏÊ DT> (ÃÅÌÙÅ ÍÁÓÛÔÁÂÉÒÏ×ÁÎÎÙÅ). ÷ C++ ÔÏÖÅ. ðÒÁ×ÄÁ ÐÒÉģÔÓÑ ÄÅÌÁÔØ ×ӣ "ÒÕÞËÁÍÉ", É ÍÏÇÕÔ ×ÓÐÌÙÔØ ÏÐÒÅÄẠ̊ÎÎÙÅ ÐÏÄ×ÏÄÎÙÅ ËÁÍÎÉ.

Leha, ÔÙ Åݣ ÚÄÅÓØ ÓÉÄÉÛØ?

÷ÔÏÒÎÉË ïËÔÑÂÒØ 04 2005 07:45, Leha Bishletov wrote to George Shepelev:

MB>>>>> ëpÏÍÅ ÔÏÇÏ, ÂÏÎyÓÏÍ ÂyÄÅÔ ÈÏÔØ ËÁËÁÑ-ÔÏ ÐÅpÅÎÏÓÉÍÏÓÔØ GS>>>> ÷Ï-×Ï, "ÈÏÔØ ËÁËÁÑ-ÔÏ" ;))) MB>>> õ ÁÓÍÏ× - ÎÅ ÂyÄÅÔ ×ÏÏÂÝÅ ÎÉËÁËÏÊ. GS>> ïÛÉÂÁÅÛØÓÑ, Ñ ÕÖÅ ÇÏ×ÏÒÉÌ, ÞÔÏ ÎÅ ÒÁÚ ÐÅÒÅÎÏÓÉÌ ÁÌÇÏÒÉÔÍÙ, GS>> ÒÅÁÌÉÚÏ×ÁÎÎÙÅ ÎÁ ÁÓÍÅ Ó ÏÄÎÏÇÏ ÓÅÍÅÊÓÔ×Á ÎÁ ÄÒÕÇÏÅ. ðÒÉޣÍ GS>> ÐÒÏÃÅÓÓÏÒÙ ÏÔÌÉÞÁÌÉÓØ _ÏÞÅÎØ_ ÓÕÝÅÓÔ×ÅÎÎÏ. LB> ìÉÂÏ Ô×ÏÊ "ÐÅÒÅÎÏÓ" ÏËÁÚÁÌÓÑ ÒÁ×ÎÏÓÉÌÅÎ ÎÁÐÉÓÁÎÉÀ ÚÁÎÏ×Ï,

HÅÔ, ÓÌÅÇËÁ "ÐÏÄÒÉÈÔÏ×ÁÌ" ËÏÄ. üÔÏ ÄÅÌÁÅÔÓÑ _ÇÏÒÁÚÄÏ_ ÂÙÓÔÒÅÅ, ÞÅÍ ÐÉÓÁÔØ Ó ÎÕÌÑ.

LB> ÌÉÂÏ ÔÅÂÅ ÎÅ ÓÔÏÉÔ ÇÏ×ÏÒÉÔØ ÐÒÏ ÂÙÓÔÒÏÄÅÊÓÔ×ÉÅ ÐÏÌÕÞÅÎÏÇÏ ÒÅÚÕÌØÔÁÔÁ,

ïÞÅÎØ ÈÏÒÏÛÅÅ ÂÙÓÔÒÏÄÅÊÓÔ×ÉÅ.

LB> ÄÁÖÅ × ÓÒÁ×ÎÅÎÉÉ Ó ó.

ïÓÏÂÅÎÎÏ × ÓÒÁ×ÎÅÎÉÉ Ó C ;)

çÅÏÒÇÉÊ

Hello Andrey.

Wed Oct 05 2005 12:10, Andrey Solomatov wrote to me:

DT>> õÇÕ. á × áÄÅ ÍÏÖÎÏ ÏÐÉÓÁÔØ Ó×ÏÊ ÁÒÉÆÍÅÔÉÞÅÓËÉÊ ÔÉÐ, ÐÏÌÎÏÓÔØÀ DT>> ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ, ÎÁÐÒÉÍÅÒ, ÔÏÞÎÏÓÔÉ É ÄÉÁÐÁÚÏÎÕ ÚÎÁÞÅÎÉÊ ÉÚÍÅÒÑÅÍÏÊ DT>> ×ÅÌÉÞÉÎÙ. á ËÏÍÐÉÌÑÔÏÒ ×ÙÂÅÒÅÔ ÐÒÅÄÓÔÁ×ÌÅÎÉÅ, ÍÁËÓÉÍÁÌØÎÏ ÜÆÆÅËÔÉ×ÎÏ DT>> ÒÅÁÌÉÚÕÀÝÅÅ ÜÔÏÔ ÔÉÐ ÎÁ ÄÁÎÎÏÍ ÖÅÌÅÚÅ.

AS> ÷ C++ ÔÏÖÅ. AS> ðÒÁ×ÄÁ ÐÒÉģÔÓÑ ÄÅÌÁÔØ ×ӣ "ÒÕÞËÁÍÉ",

úÄÒÁÓÔÉ. òÕÞËÁÍÉ ÍÏÖÎÏ É ÎÁ ÁÓÓÅÍÂÌÅÒÅ. ;) ðÒÉÑÔÎÏÓÔØ ÉÍÅÎÎÏ × ÔÏÍ, ÞÔÏ ÔÙ ÐÒÏÓÔÏ ÐÉÛÅÛØ, ÎÁÐÒÉÍÅÒ:

type Temperature is delta 0.01 range -100..100;

Dimmy.

Hello Harry.

Wed Oct 05 2005 11:01, Harry Zhurov wrote to me:

DT>> äÕÍÁÀ, óÔÒÁÕÓÔÒÕÐ ÎÅÐÌÏÈÏ ÚÎÁÌ áÄÕ. ;) ðÏ ËÒÁÊÎÅÊ ÍÅÒÅ ÍÎÏÇÏ ÆÉÞ C++ DT>> ÔÑÎÕÔÏ ÏÔÔÕÄÁ.

HZ> ïÔËÕÄÁ ÔÁËÁÑ Õ×ÅÒÅÎÎÏÓÔØ? ó++ É áÄÁ - ÒÏ×ÅÓÎÉËÉ.

ðÅÒ×ÙÊ _ÓÔÁÎÄÁÒÔ_ áÄÙ ÐÏÑ×ÉÌÓÑ × 83-Í ÇÏÄÕ (áÄÁ-83). ï C++ ÌÉÞÎÏ Ñ ÕÓÌÙÛÁÌ ÔÏÌØËÏ × 90-È. íÏÖÅÔ, ËÏÎÅÞÎÏ, Ñ ÐÒÏÓÔÏ ÎÅ × ËÕÒÓÅ.

HZ> ó++ ÐÏÑ×ÉÌÓÑ ËÁË ÒÁÚ×ÉÔÉÅ ó Ó ÄÏÂÁ×ÌÅÎÎÙÍ Ë ÎÅÍÕ ÉÚ óÉÍÕÌÙ ÐÏÎÑÔÉÑ HZ> ËÌÁÓÓÁ. áÄÙ ÔÕÔ É ÂÌÉÚËÏ ÎÅÔ.

÷ ÎÁÞÁÌÅ, ÍÏÖÅÔ, É ÔÁË. HÏ ÐÏÓÌÅ ÜÔÏÇÏ ÓÔÏÌØËÏ ÐÁÔÞÅÊ ÂÙÌÏ...

HZ> P.S. HÅ ÎÁÄÏÅÌÏ ÅÝÅ ÐÒÏ áÄÕ ... ?

HÅ-Á. :)

Dimmy.

Hello Harry.

05 Oct 05 11:01, Harry Zhurov wrote to me:

DL>> äÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÜÌÌÉÐÓÉÓÁ ÕÖÅ ÄÏÂÒÁÌÓÑ ? ;)

HZ> HÅ, ÐÏ ÈÏÄÕ, ÏÎ ÉÍÅÅÔ × ×ÉÄÕ ÔÏ, ÞÔÏ ÍÏÖÎÏ ÚÁÄÁ×ÁÔØ ÒÕËÁÍÉ HZ> ÐÅÒÅÍÅÎÎÏÅ ÞÉÓÌÏ ÐÁÒÁÍÅÔÒÏ×, Á ÏÓÔÁÌØÎÙÅ ÐÏ ÕÍÏÌÞÁÎÉÀ.

äÁ ÛÕÞÕ Ñ, ÛÕÞÕ :)

Dmitry

Hello Harry.

05 Oct 05 11:01, Harry Zhurov wrote to Dimmy Timchenko:

HZ> P.P.S. ÷ÍÅÓÔÏ ÜÔÏÇÏ ÏÞÅÎØ ÓÏ×ÅÔÕÀ ÐÏÞÉÔÁÔØ ÎÁ ÄÏÓÕÇÅ "äÉÚÁÊÎ É HZ> Ü×ÏÌÀÃÉÑ ó++". ëÎÉÖËÁ ÎÅÂÏÌØÛÁÑ, ÎÏ ÏÞÅÎØ ÚÁÎÉÍÁÔÅÌØÎÁÑ.

ëÏÔÏÒÁÑ ÎÅÆÏÒÍÁÌØÎÏ ÎÁÚÙ×ÙÅÔÓÑ "ËÁË Ñ ÒÏÖÁÌ ÅÖÉËÏ×" :)

Dmitry

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Andrey Solomatov on Wed, 05 Oct 2005 15:42:06

+0400:

DT>>> Угу. А в Аде можно описать свой арифметический тип, DT>>> полностью соответствующий, например, точности и диапазону DT>>> значений измеряемой величины. А компилятор выберет DT>>> представление, максимально эффективно реализующее этот тип DT>>> на данном железе.

AS>> В C++ тоже. AS>> Правда придётся делать всё "ручками",

DT> Здрасти. Ручками можно и на ассемблере. ;) Приятность именно DT> в том, что ты просто пишешь, например:

DT> type Temperature is delta 0.01 range -100..100;

А во что скомпилируется работа с таким типом? А если в одном выражении с другими такими же?

dima

formatting link

Hi Dimmy, hope you are having a nice day!

05 ïËÔ 05, Dimmy Timchenko wrote to Andrey Solomatov:

AS>> ÷ C++ ÔÏÖÅ. AS>> ðÒÁ×ÄÁ ÐÒÉģÔÓÑ ÄÅÌÁÔØ ×ӣ "ÒÕÞËÁÍÉ", DT> úÄÒÁÓÔÉ. òÕÞËÁÍÉ ÍÏÖÎÏ É ÎÁ ÁÓÓÅÍÂÌÅÒÅ. ;) ðÒÉÑÔÎÏÓÔØ ÉÍÅÎÎÏ × ÔÏÍ, DT> ÞÔÏ ÔÙ ÐÒÏÓÔÏ ÐÉÛÅÛØ, ÎÁÐÒÉÍÅÒ:

DT> type Temperature is delta 0.01 range -100..100;

÷ ó++ Ñ _Ñ×ÎÏ_ ÏÐÒÅÄÅÌÑÀ ÐÏ×ÅÄÅÎÉÅ ËÏÍÐÉÌÑÔÏÒÁ ÄÌÑ ÒÁÂÏÔÙ Ó ÎÏ×ÙÍ ÔÉÐÏÍ. ñ ÕËÁÚÙ×ÁÀ _ËÁË_ (Ô.Å. ËÁËÉÍ ÁÌÇÏÒÉÔÍÏÍ) ÏÂÒÁÂÁÙÔ×ÁÀÔÓÑ ÔÅ ÖÅ ×ÙÈÏÄÙ ÚÁ ÄÉÁÐÁÚÏÎ ÉÌÉ ÇÒÁÎÕÌÑÃÉÑ ÚÎÁÞÅÎÉÊ. á ÔÏ, ÞÔÏ ÔÙ ÐÒÉ×ÅÌ ×ÙÛÅ, ÞÅÒÎÙÊ ÑÝÉË, ÚÁ×ÉÓÑÝÉÊ ÏÔ ËÏÍÐÉÌÔÏÒÁ É/ÉÌÉ ÐÌÁÔÆÏÒÍÙ. üÔÏ ÎÅ ×ÓÅÇÄÁ ÈÏÒÏÛÏ (ÄÁÖÅ ÞÁÝÅ ÐÌÏÈÏ).

WBR, AVB

Hello Dmitry.

Wed Oct 05 2005 21:05, Dmitry Orlov wrote to me:

DT>> úÄÒÁÓÔÉ. òÕÞËÁÍÉ ÍÏÖÎÏ É ÎÁ ÁÓÓÅÍÂÌÅÒÅ. ;) ðÒÉÑÔÎÏÓÔØ ÉÍÅÎÎÏ DT>> × ÔÏÍ, ÞÔÏ ÔÙ ÐÒÏÓÔÏ ÐÉÛÅÛØ, ÎÁÐÒÉÍÅÒ:

DT>> type Temperature is delta 0.01 range -100..100;

DO> á ×Ï ÞÔÏ ÓËÏÍÐÉÌÉÒÕÅÔÓÑ ÒÁÂÏÔÁ Ó ÔÁËÉÍ ÔÉÐÏÍ?

÷ ÃÅÌÏÅ ÍÁÓÛÔÁÂÉÒÏ×ÁÎÎÏÅ (fixed point) É × ÃÅÌÏÞÉÓÌÅÎÎÕÀ ÁÒÉÆÍÅÔÉËÕ.

DO> á ÅÓÌÉ × ÏÄÎÏÍ ×ÙÒÁÖÅÎÉÉ Ó ÄÒÕÇÉÍÉ ÔÁËÉÍÉ ÖÅ?

÷ ÏÄÎÏÍ ×ÙÒÁÖÅÎÉÉ ÒÁÚÎÙÅ (ÎÅ ÐÒÏÉÚ×ÏÄÎÙÅ - derived) ÔÉÐÙ ÔÁË ÐÒÏÓÔÏ ÓÏÞÅÔÁÔØ ÎÅÌØÚÑ. éÌÉ ÞÅÒÅÚ Ñ×ÎÏÅ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÔÉÐÏ×, ÉÌÉ ÞÅÒÅÚ ÐÅÒÅÇÒÕÚËÕ ÏÐÅÒÁÔÏÒÏ×. èÏÔÑ, ËÁÖÅÔÓÑ, ÍÏÖÎÏ ÕÍÎÏÖÁÔØ É ÄÅÌÉÔØ ÎÁ ÂÅÚÒÁÚÍÅÒÎÙÅ ÞÉÓÌÁ. HÏ ÓËÌÁÄÙ×ÁÔØ ×ÏÌØÔÙ Ó ÓÁÎÔÉÍÅÔÒÁÍÉ ÔÅÂÅ ÎÅ ÄÁÄÕÔ. :)

Dimmy.

Hello Alexey.

Wed Oct 05 2005 22:38, Alexey V Bugrov wrote to me:

DT>> type Temperature is delta 0.01 range -100..100;

AVB> ÷ ó++ Ñ _Ñ×ÎÏ_ ÏÐÒÅÄÅÌÑÀ ÐÏ×ÅÄÅÎÉÅ ËÏÍÐÉÌÑÔÏÒÁ ÄÌÑ ÒÁÂÏÔÙ Ó ÎÏ×ÙÍ ÔÉÐÏÍ. AVB> ñ AVB> ÕËÁÚÙ×ÁÀ _ËÁË_ (Ô.Å. ËÁËÉÍ ÁÌÇÏÒÉÔÍÏÍ) ÏÂÒÁÂÁÙÔ×ÁÀÔÓÑ ÔÅ ÖÅ ×ÙÈÏÄÙ ÚÁ AVB> ÄÉÁÐÁÚÏÎ ÉÌÉ ÇÒÁÎÕÌÑÃÉÑ ÚÎÁÞÅÎÉÊ.

ôÕÔ ÔÙ ÔÏÖÅ ÍÏÖÅÛØ ×ӣ ÏÐÒÅÄÅÌÉÔØ É ÐÅÒÅÏÐÒÅÄÅÌÉÔØ. çÌÁ×ÎÏÅ, ÞÔÏ ÂÁÚÏ×ÏÊ ÅÄÉÎÉÃÅÊ ÁÂÓÔÒÁËÃÉÉ Ñ×ÌÑÅÔÓÑ ôéð: ÍÎÏÖÅÓÔ×Ï ÚÎÁÞÅÎÉÊ É ÍÎÏÖÅÓÔ×Ï ÏÐÅÒÁÃÉÊ ÎÁÄ ÎÉÍÉ. á ÎÅ ËÌÁÓÓ.

AVB> á ÔÏ, ÞÔÏ ÔÙ ÐÒÉ×ÅÌ ×ÙÛÅ, ÞÅÒÎÙÊ ÑÝÉË, ÚÁ×ÉÓÑÝÉÊ ÏÔ ËÏÍÐÉÌÔÏÒÁ É/ÉÌÉ AVB> ÐÌÁÔÆÏÒÍÙ.

HÅ ÔÁËÏÊ ÕÖ ÏÎ ޣÒÎÙÊ. :) çÁÒÁÎÔÉÒÕÅÔÓÑ, ÞÔÏ ÔÏÞÎÏÓÔØ É "×ÍÅÓÔÉÍÏÓÔØ" ÂÕÄÕÔ ÎÅ ÈÕÖÅ ÚÁÔÒÅÂÏ×ÁÎÎÏÊ. ëÏÎÅÞÎÏ, ÞÔÏÂÙ ÎÅ ÐÏÔÅÒÑÔØ ÜÆÆÅËÔÉ×ÎÏÓÔØ, ÎÁÄÏ ÚÎÁÔØ ÒÁÚÍÅÒÎÏÓÔØ ÂÁÚÏ×ÙÈ ÔÉÐÏ×. ÷ÐÒÏÞÅÍ, ÕÊÍÕ ÐÁÒÁÍÅÔÒÏ× ÔÉÐÁ ÉÌÉ ÏÂßÅËÔÁ ÍÏÖÎÏ ÐÒÏÓÔÏ ÐÏÓÍÏÔÒÅÔØ Ó ÐÏÍÏÝØÀ ÁÔÒÉÂÕÔÏ× (×ÓÔÒÏÅÎÎÙÈ ÆÕÎËÃÉÊ ×ÒÅÍÅÎÉ ËÏÍÐÉÌÑÃÉÉ). éÈ ÔÁÍ ÄÅÓÑÔËÉ. ÷ÐÌÏÔØ ÄÏ ASCII-ÐÒÅÄÓÔÁ×ÌÅÎÉÑ ÉÍÅÎÉ É ÚÎÁÞÅÎÉÑ. ÷ C ÖÅ ÅÄÉÎÓÔ×ÅÎÎÁÑ ÐÏÄÏÂÎÁÑ ÓÕÝÎÏÓÔØ - sizeof. ÷ ++, ×ÒÏÄÅ, ÐÏÑ×ÉÌÉÓØ Åݣ, ÎÏ Ó×ÑÚÁÎÎÙÅ ÉÓËÌÀÞÉÔÅÌØÎÏ Ó ËÌÁÓÓÁÍÉ.

Dimmy.

ðÒÉ×ÅÔ, *Dimmy*!

/ÓÒÅÄÁ, 05 ÏËÔÑÂÒÑ 2005/ *Dimmy Timchenko* ÐÉÓÁÌ(Á) Ë *Andrey Solomatov* ÐÏ ÐÏ×ÏÄÕ *WinAvr:*

[ËÕÓØ]

AS>> ÷ C++ ÔÏÖÅ. AS>> ðÒÁ×ÄÁ ÐÒÉģÔÓÑ ÄÅÌÁÔØ ×ӣ "ÒÕÞËÁÍÉ",

DT> úÄÒÁÓÔÉ. òÕÞËÁÍÉ ÍÏÖÎÏ É ÎÁ ÁÓÓÅÍÂÌÅÒÅ. ;)

îÁ ÁÓÍÅ ÔÁËÏÊ ÐÒÉÞÔÎÏÓÔÉ ÎÅ ÐÏÌÕÞÉÛØ.

DT> ðÒÉÑÔÎÏÓÔØ ÉÍÅÎÎÏ × ÔÏÍ, ÞÔÏ ÔÙ ÐÒÏÓÔÏ ÐÉÛÅÛØ, ÎÁÐÒÉÍÅÒ: DT> type Temperature is delta 0.01 range -100..100;

üÔÏ ÐÒÏÓÔÏ ÐÏÔÏÍÕ, ÞÔÏ ËÔÏ-ÔÏ ÕÖÅ ÒÅÁÌÉÚÏ×ÁÌ × ËÏÍÐÉÌÅÒÅ áÄÙ ÁÎÁÌÏÇÉÞÎÕÀ ÂÉÂÌÉÏÔÅËÕ. ÷ óÉ ÄÌÑ ËÁËÏÇÏ-ÔÏ DSP ÔÏÖÅ ×ÉÄÅÌ ÒÅÁÌÉÚÁÃÉÀ ÒÁÂÏÔÙ Ó fractional - ÔÁËÏÅ-ÖÅ ÞÉÓÌÏ, ÎÏ ÄÅÓÑÔÉÞÎÁÑ ÔÏÞËÁ ÏÐÒÅÄÅÌÑÅÔÓÑ *ÐÅÒÅÄ* ÓÔÁÒÛÉÍ ÒÁÚÒÑÄÏÍ. óÏÂÓÔ×ÅÎÎÏ ÇÏ×ÏÒÑ - ó++ ×Ï ÍÎÏÇÏÍ ÉÚÏÍÏÒÆÅÎ áÄÅ - ÔÅ-ÖÅ ËÌÁÓÓÙ ÓÏÏÔ×ÅÔÓÔ×ÕÀÔ ÍÏÄÕÌÑÍ (ÅÓÌÉ Ñ ÐÒÁ×ÉÌØÎÏ ÐÏÍÎÀ áÄÕ).

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required