Click here to Skip to main content
13,146,742 members (80,055 online)
Click here to Skip to main content
Add your own
alternative version


41 bookmarked
Posted 30 Mar 2015

Some Programming Approaches to "Neuro-Linguistic Programming"

Rate this:
Please Sign up or sign in to vote.
Computer Languages as the Basis of the Second Semiotic Anthropology

Harry Potter, Aphorisms, Quick Answers and Spells

The Force can have a strong influence on the weak-minded.
Obi-Wan Kenobi, Star Wars,
quoted from "Mind trick, Wookieepedia"

  1. Introduction
  2. Keyword Methods
  3. Terminological Methods
  4. Paradigm Methods
  5. Syntactic Methods
  6. Visual Methods
  7. Demo Neuro-Conditioning Application
  8. Mitigation of Neuro-Conditioning Attacks
  9. Credits
  10. Conclusions

1 Introduction

The title of this article can cause some perplexity in a number of readers. The most naive ones could see some sign of tautology (programming-programming), and the discerning ones, just the opposite, could note that the two different terms "programming" are set close together just formally, due to the figurative or pretended meaning of the second occurrence. Indeed, "neuro-linguistic programming" (NLP), in the balance of scientific evidence, is "revealed to be a largely discredited pseudoscience" ( Nevertheless, I used the term "NLP" just as a convenient name for the wider set of phenomena which can be characterized as conscious and purposeful shaping of behavior and thinking of human beings, using psychological and technological approaches, leveraging the categories of "the unconscious" in the affected subjects. Perhaps the parallels between computer programming and "programming the mind" are even much deeper than the authors of NLP Richard Bandler and John Grinder (apparently, quite poorly familiar with the first and main meaning of the word "programming") were able to imagine.

In fact, there is nothing new in using programming technology for such purposes.

One of the most notable examples is one well-known esoteric programming language. Its name is explicitly suggestive of the process of affecting human mind. By the way, those readers not enough familiar with Latin to understand the meaning of the "Harry Potter" epigraphs to the article, can use the change to get it at this moment.

This language and technology is just one example of the achievements in a narrower field, which can be named Software Aided Neural Conditioning (SANC). Other names and abbreviation for the same or close directions of research have been suggested at different times by different academic groups:
Software Aided Neural Shaping (SANS),
Software Aided Mental Conditioning (SAMC),
Computer Aided Mental Shaping (CAMS).

I'll continue to use the term "SANC" as the one most precisely describing the topic of our discussion. Unfortunately, these days, SANC-based manipulation is actively used in business and politics. The software engineering community is used as a main target of manipulation ("programming of mind"), while small part of it, unfortunately, found it acceptable to become an ally of the forces interested in such manipulation. I'll try to describe some fundamentally important techniques, which should help to detect manipulation and, ultimately, develop the strategy of fighting back.

Now, I'll start to introduce the computer programming approaches by pointing out the key methods.

2 Keyword Methods

To illustrate the approach of this specialized class of methods (which could be considered as a part of the next class "terminological methods") let's discuss intriguing peculiarities of Forth programming language. The not-so-hidden power of one of its keywords was revealed by my friend, physicist and engineer, presently senior researcher of Chalmers University, Sweden, A. V. Danilov, one of the deepest thinkers I ever met. His discovery of the phenomenon described below brilliantly justifies my assessment.

He paid attention that the most widely used reserved word of Forth is its stack operator DUP ( What is that supposed to mean? Duplicate? Not so easy. Some very basic study immediately reveals that Forth is heavily based on stack structure and, not surprisingly, well-known Reverse Polish notation (RPN). It leads us to taking Polish language into consideration, which almost immediately brings our attention to the Polish word "dupa", the one of fundamental importance in this language. What does it mean? Etymologically, it descends from the word "dziupla" ("tree hollow"), but everyone familiar with some Slavic languages will immediately recognize its meaning, more exactly, two close meanings related to the very important part of the human body, one meaning in the sense of the "hollow", and another one referring to the interface allowing people to sit. Not too surprisingly, this mean the part of the body of a software engineer, by far, most important for software development work.

More importantly, the "hollow" meaning of this word has, in everyday practice, even deeper (pun unintended) metaphorical sense, again, well known in all Slavic languages. It refers to eschatological experience related, for example, to the depressive forefeeling of the approaching deadlines.

This way, Forth practice predominantly shapes the behavior of extreme patience, long working hours, slow meticulous work, yet making the followers relatively easily affected by depression and low activity. Another application of DUP is reDUPlication, but this is related to a different topic, mitigation of SANC attacks; I'll discuss it in a separate section.

Let's consider some very different example. Let's consider "begin" and "end" of the line Algol-Pascal-Ada and the like. Apparently, having entered the word "begin", the developers is left in unbalanced state with the tendency to resolve it by entering the word "end" quickly enough. This strongly stimulates doing the work in smaller well-defined chunks.

Interestingly, such syntactic elements of program block as parentheses, such as "{ }" don't create the effect described above, even in cases where the role of these parentheses is exactly the same. It reveals the fact that the effect has pure neuro-linguistic nature.

3 Terminological Methods

As I already mentioned in the previous section, keyword methods make just a specialized subclass of the class of terminological methods. The only reason to describe them in a separate section is its unprecedented practical importance. In programming, it finds its expression in the methods of manipulative term coining targeting primarily the readers of software literature.

Most typical purpose of such techniques is creation of hype and distraction of engineers from productive work and efficient working communications.

However, much less usual and the most dangerous exploit is the terminological attack on developers aimed to paralyze the process of decision making.

I already wrote a lot on the widely used term "overloading" which I characterized as "bad", until I clearly recognized that it was the purposeful act aimed at OOP discrediting. Everyone familiar with the problem understands that the term is used to describe the feature which does not require a distinct term, because it merely the lack of certain limitation for method/function names: identical names can be used for different methods which can be recognized by the compiler by the combination of the name and the signature. Naturally, nothing is "overloaded", because nothing is "loaded". Apparently, the term was coined with only one goal: to make is similar to the really essential OOP term "override" and mess up the developer's mind. I must admit, this attack brilliantly proved its efficiency.

Another funny term is race condition. When I first learned the subject, the explanation of the phenomena as "incorrect dependency on the order of execution" helped me to grasp the idea immediately. Later on, new "term" was coined with apparent purpose of bringing the subject to the attention of the experts in the fields where people happened to read the Wikipedia article on the topic referenced above are less likely to understand it correctly.

The list of such examples can be continued. "L-value", "software reuse", "cloud computing", "agile software development", "computer virus", "information security", "service contract" are all more than suspicious. Please see the referenced articles for more detailed information.

4 Paradigm Methods

The name for this class of method is a subject of ongoing discussion reflects not the technology of neural conditioning attack, but its goals. These methods are aimed to program misleading or destructive software paradigms into the engineers' minds. The technologies such in the attacks are quite diverse. They include pseudo-logical speculations, argumentum ad populum ("Twenty trillion flies can't be wrong"), argumentum ad verecundiam as well as different means of propaganda.

For example, let's consider some typical arguments against the use of goto statement:

  • Isaac Newton invented calculus and three Newton's laws; he never used goto statement.
  • Tom Parr was said to have leaved 152 years; during his whole life, he never used goto statement.
  • A hamster said to be "Most Intelligent Hamster of the World" never used goto statement.
  • 99.9% of children under the age of 7 with perfect body index and cholesterol balance never used goto statement.
  • 2.5 years old child sunk in the family pool after he was told to "go to…" by his mother.
  • School shooting in Austin, TX. The young killer of 11 classmates told police "I killed them because they would always tell me to go to…"
  • Famous software developer fell dead at 96, after he tried to use goto statement for the first time after many years of abstaining.
  • Crusades were the result of a number of go to statements. The estimated death toll was about 12 million people.

For more detail on goto, please go to the section on neuro-conditioning attack mitigation.

Now, let's consider some typical arguments in favor of some paradigm, for example, a design pattern.

  • None of the sacrifice of infant mortality utilized dependency injection.
  • No more than 0.001% (estimated) people killed in car accidents have been using dependency injection immediately before the collision.
  • Britain scientists found that in most cases of infection with sexually transmitted disease (STD) partners did not inject dependency.
  • The first well-known attempt of dependency injection was a 1667 attempt to inject a solution of opium into a dog, which supposedly resulted in the substance dependence. Later on, the hypodermic needle and syringe in its current form was invented by the French scientist Charles Pravaz in 1851. After this invention, population of France grew by 71%.
  • One of the most world-famous serial killers, British doctor Harold Shipman, never prescribed and never administered dependency injection.

5 Syntactic Methods

I have only one pure syntactic example.

This is the syntactic choice between "separator, not terminator" and "terminator, not separator" in different programming languages. The classic example of the difference between the two is the use of ';' as a separator in Pascal, and as a terminator in Ada, C and the like.

Apparently, terminator approach develops aggressive, powerful behavior, the ability to finish things decisively (please see the article referenced above). The pure programming maintenance value of terminator approach is obvious: it allows swapping some lines inside the program block without adjusting the terminator character, because it always present at the end of the statement. Such feature forms the active behavior, the behavior of the master, the decision-making skills.

In contrast, despite of the pacifying nature of separator approach, the need for adjusting of the position of the separator (it is not placed at the end of the last statement of a block, and, in certain apparent cases, it is not allowed to be there) develops modest behavior, hesitation, the tendency "to leave things as they are". Overall, despite of the value of the calm development, it has adverse effect on the personal productivity. Undoubtedly, this was the major reason of the decline of very powerful and efficient Object Pascal and Delphi, after it was majorly replaced with C# which uses the terminator approach.

Another variant of the powerful terminator approach is the optional comma after the last element of the lists, enumeration types and the like, the relatively new feature which was also introduced in C#. What is the "SANC importance" of this decision? Again, let's look beyond just the productivity feature and convenience (easier to swap the elements). From the first glance, it leaves the impression of incompleteness, uncertainty, which can cause adverse consequences in the field. If someone thinks this way, my advice would be: think again. In reality, it means something nearly opposite: by adding the last ',', the developer expressed the readiness to maintain the code and sends the clear message: "I'll be back!" Again, the seemingly pure syntactic terminator approach develops terminator's behavior.

6 Visual Methods

One of the apparent, but poorly known gateways of application of visual methods of neural conditioning is the manipulation if visual images rendered in the source code of open-source software, which allows to affecting the behavior and mind in the software engineers using such software.

To illustrate the idea of some simple techniques, let's consider this fragment of code:

const bool YES = true;

bool[] consensus = new bool[] {

    YES,        YES,     YES,YES,     YES,  
    YES,YES,    YES,  YES,      YES,  YES,
    YES, YES,   YES,  YES,      YES,  YES,
    YES,  YES,  YES,  YES,      YES,  YES,
    YES,   YES, YES,  YES,      YES,  YES,
    YES,    YES,YES,  YES,      YES,
    YES,        YES,     YES,YES,     YES,


It is apparent that the object consensus is the array of 39 Boolean values of true. To see what message is conducted by this fragment on unconscious level, it's enough to look at this fragment at some distance with slightly narrowed eyes. Such experience induces dissociative identity disorder in the developers and suppresses the ability to make free choice. This is one of the major visual methods of manipulations with voting system and is widely utilized in politics.

However, the most known is the application of cognitive illusions, notoriously efficient and the most difficult to withstand. The principles of such illusions are well-known, but I want to demonstrate one of the least obvious examples. Please look at the picture on top of the article. From the first glance, it seems apparent that upper horizontal line is distinctly longer than the lower one. I recommend printing out the article and measuring the lengths of the lines with the ruler. The result of comparison may surprise you.

This simple example demonstrated on a static image can give an idea how powerful could be the methods leveraging motion pictures. Now, it's time to examine this power closely, on a manageable but fully-fledged software application which we can easily analyze.

7 Demo Neuro-Conditioning Application

First of all, safety warning: before experimenting with the demo application "Enlightenment" I provided for illustration of the visual method of SANC, the following safety precautions should be taken: remove from the screen all children with the ages above four months and below 2.71 years, women having pregnant children, and people suffering from the symptoms of IRCD (Issue Reporting Compulsory Disorder).

I developed this application with the safest possible effect. This is what it does: it helps to boost creative abilities of a person participating in the experiment dramatically.

As this is a Web application, it can be immediately viewed here. Alternatively, fill free to download the source code (please see the link on the top of the present article) and experiment with it.

For best results, the browser should better be used in full screen mode. Actually, viewing it on a part of the screen with ratio aspect ratio 1:1 with maximum possible size is quite enough. The graphical show should be viewed at closest possible distance as soon as it feels comfortable. It's really important to start the experiment being reasonably well relaxed, and with the peace of mind. The idea is to stare at screen, trying to focus on graphic while ignoring appearing and disappearing text messages. Typical minimum time needed to achieve the desired effect is about 2 min. The improved change in mind is usually directly perceived immediately after some threshold, which is passed immediately or soon after the aforementioned minimal period of time.

Usually, one successful session creates the effect of highly improved creative abilities which lasts about 42 days, on average. If you experience no effect, it means that this is the rare cases when you are already on the peak of your creative potential.

Good luck!

8 Mitigation of Neuro-Conditioning Attacks

First and foremost, two forms of reDUPlication are used: shm-reduplication and m-reduplication.

First type of reduplication, shm-reduplication is known to be "borrowed from Yiddish and Central Asian cultures" is the most widespread. Its power is based on strong expression of skepticism.

The second type of reduplication is less known in English-speaking world and is often described as Turkish. This is not quite accurate. First, not only M-reduplication is a well-known feature of all Turkic languages, it also clearly understood and mocked by nearly all their neighbors, some of those using it natively. Second, the semantic meaning of m-reduplication could be more accurate. The Turkish example "tabak mabak then means "plates, dishes and such" shown in the article referenced above is very good, but "and such" often has additional tint of meaning, "and other non-essential detail".

The model dialog shown below demonstrates the use of both kinds of reduplication as a chain of challenge-response acts of communications, denoted as "C:" and "R:", correspondently:

C: The benefits of contravariance…
R: Contravariance-shmantavariance…
C: Without multiple inheritance…
R: Inheritance-minheritance…
C: Loose coupling…
R: Loose-shmoose… coupling-moupling…
C: You need to use dependency injection pattern.
R: Patterns-matterns…

Another powerful approach to the mitigation is the extensive use of goto statement.

No wonder, famous manipulator Edsger Dijkstra recognized the power of this counter-attack method in his widely known CACM letter of 1968, Go To Statement Considered Harmful. It's worth noting that CACM is the well-known Institute for "Computer-Aided Cognitive Manipulation".

This statement acts on the level of keyword methods. It's neuro-linguistic potential is explained by the fact that, in many cultures, the use of "go to" suggests negative emotional response of active aggressive denial, often used as an euphemism of some obscene expressions semantically close to "go to hell", or the like.

Remember: your main goal is to send the opponent and KISS good bye.

9 Credits

On my request for the expert's advice, CodeProject member Maciej Los confirmed my understanding of the subtleties of Polish tong and body parts, I mean, confirmed the usage of Polish words used in the article which refer to the body parts most useful in software development, as well as figurative (eschatological or otherwise negative) meanings of the word dupa. It happened at the last moment. According to Maciej, the reason was that he lately had "dupa with Internet connection"; and this expression itself tells the tale.

Besides, Maciej was the first reader who commented on the most important idea of the whole article, which I'll try to summarize in the next and last section.

Thank you, Maciej!

10 Conclusions

As I think the reader is programmed enough by this moment, I'll try to draw some conclusions. The manipulators are everywhere between us, trying to control the whole software development community, so the engineers is the most vulnerable group of people. Careful understanding of the mechanisms of neural conditioning is critically important for individual protection.

Dear Colleagues!

On this nice spring day, I wish you the best of your creative potential, great spring mood and best achievements in your work. Don't be weak-minded.

Don't get programmed, use your own brain.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Sergey Alexandrovich Kryukov
United States United States
No Biography provided

You may also be interested in...


Comments and Discussions

QuestionOMG not just me! Pin
David Nist4-Apr-17 7:43
memberDavid Nist4-Apr-17 7:43 
Answer[WARNING!] It could be a relative of "Black Line of Death"! Report to SCP as soon as possible! Pin
Sergey Alexandrovich Kryukov4-Apr-17 8:11
memberSergey Alexandrovich Kryukov4-Apr-17 8:11 
PraiseThe man that wrote the program that has generated this article is brilliant... Pin
Member 112958013-Apr-17 22:39
memberMember 112958013-Apr-17 22:39 
AnswerRe: The man that wrote the program that has generated this article is brilliant... Pin
Sergey Alexandrovich Kryukov4-Apr-17 4:37
memberSergey Alexandrovich Kryukov4-Apr-17 4:37 
GeneralMy vote of 5 Pin
chaz-chance3-Apr-17 3:20
memberchaz-chance3-Apr-17 3:20 
AnswerRe: My vote of 5 Pin
Sergey Alexandrovich Kryukov3-Apr-17 3:43
memberSergey Alexandrovich Kryukov3-Apr-17 3:43 
GeneralMy vote of 5 Pin
Dmitriy Gakh5-Apr-16 6:35
professionalDmitriy Gakh5-Apr-16 6:35 
GeneralRe: My vote of 5 Pin
Sergey Alexandrovich Kryukov5-Apr-16 7:01
mvpSergey Alexandrovich Kryukov5-Apr-16 7:01 
GeneralMy vote of 2 Pin
Ordisoftware20-Sep-16 0:14
memberOrdisoftware20-Sep-16 0:14 
GeneralRe: My vote of 2 Pin
Sergey Alexandrovich Kryukov1-Apr-16 3:31
mvpSergey Alexandrovich Kryukov1-Apr-16 3:31 
Question:omg: Pin
brownbird91531-Mar-16 21:54
memberbrownbird91531-Mar-16 21:54 
AnswerIt's by my friend Pin
Sergey Alexandrovich Kryukov1-Apr-16 3:33
mvpSergey Alexandrovich Kryukov1-Apr-16 3:33 
QuestionMy Vote 5 Pin
KARTHIK Bangalore7-Apr-15 23:20
mvpKARTHIK Bangalore7-Apr-15 23:20 
AnswerRe: My Vote 5 Pin
Sergey Alexandrovich Kryukov8-Apr-15 4:05
mvpSergey Alexandrovich Kryukov8-Apr-15 4:05 
GeneralMy 5 Pin
Rajesh waran1-Apr-15 20:31
professionalRajesh waran1-Apr-15 20:31 
GeneralMy vote of 5 Pin
Maciej Los1-Apr-15 8:57
protectorMaciej Los1-Apr-15 8:57 
GeneralMy credits Pin
Sergey Alexandrovich Kryukov1-Apr-15 12:20
mvpSergey Alexandrovich Kryukov1-Apr-15 12:20 
GeneralRe: My credits Pin
Maciej Los2-Apr-15 0:13
protectorMaciej Los2-Apr-15 0:13 
GeneralRe: My credits Pin
Sergey Alexandrovich Kryukov2-Apr-15 3:56
mvpSergey Alexandrovich Kryukov2-Apr-15 3:56 
GeneralNew one Pin
Sergey Alexandrovich Kryukov31-Mar-16 20:44
mvpSergey Alexandrovich Kryukov31-Mar-16 20:44 
GeneralMy vote of 5 Pin
Kornfeld Eliyahu Peter1-Apr-15 7:02
mvpKornfeld Eliyahu Peter1-Apr-15 7:02 
GeneralIt's great Pin
Sergey Alexandrovich Kryukov1-Apr-15 7:16
mvpSergey Alexandrovich Kryukov1-Apr-15 7:16 
QuestionMy brain hurts Pin
Richard MacCutchan1-Apr-15 6:23
protectorRichard MacCutchan1-Apr-15 6:23 
AnswerYour brain will get to normal soon Pin
Sergey Alexandrovich Kryukov1-Apr-15 7:07
mvpSergey Alexandrovich Kryukov1-Apr-15 7:07 
GeneralRe: Your brain will get to normal soon Pin
Richard MacCutchan1-Apr-15 7:20
protectorRichard MacCutchan1-Apr-15 7:20 
Generalwarranty Pin
Sergey Alexandrovich Kryukov1-Apr-15 7:25
mvpSergey Alexandrovich Kryukov1-Apr-15 7:25 
GeneralMy vote of 5 Pin
ProgramFOX1-Apr-15 5:18
memberProgramFOX1-Apr-15 5:18 
GeneralRe: My vote of 5 Pin
Sergey Alexandrovich Kryukov1-Apr-15 5:41
mvpSergey Alexandrovich Kryukov1-Apr-15 5:41 
QuestionHigh 5 Pin
Herman Bakker1-Apr-15 1:06
memberHerman Bakker1-Apr-15 1:06 
GeneralMy vote of 5 Pin
Dave Kreskowiak31-Mar-15 15:58
mvpDave Kreskowiak31-Mar-15 15:58 
GeneralRe: My vote of 5 Pin
Sergey Alexandrovich Kryukov31-Mar-15 16:41
mvpSergey Alexandrovich Kryukov31-Mar-15 16:41 
QuestionMy 5! Pin
CPallini31-Mar-15 5:44
mvpCPallini31-Mar-15 5:44 
AnswerRe: My 5! Pin
Sergey Alexandrovich Kryukov31-Mar-15 6:09
mvpSergey Alexandrovich Kryukov31-Mar-15 6:09 
AnswerNew one, now physics Pin
Sergey Alexandrovich Kryukov31-Mar-16 20:43
mvpSergey Alexandrovich Kryukov31-Mar-16 20:43 
GeneralMy vote of 5 Pin
Raul Iloc31-Mar-15 2:52
mvpRaul Iloc31-Mar-15 2:52 
GeneralRe: My vote of 5 Pin
Sergey Alexandrovich Kryukov31-Mar-15 3:31
mvpSergey Alexandrovich Kryukov31-Mar-15 3:31 
GeneralBrilliant :-) Pin
Espen Harlinn31-Mar-15 2:02
mentorEspen Harlinn31-Mar-15 2:02 
GeneralRe: Brilliant :-) Pin
Sergey Alexandrovich Kryukov31-Mar-15 3:31
mvpSergey Alexandrovich Kryukov31-Mar-15 3:31 
GeneralRe: Brilliant :-) Pin
Espen Harlinn3-Apr-15 16:10
mentorEspen Harlinn3-Apr-15 16:10 
GeneralRe: Brilliant :-) Pin
Sergey Alexandrovich Kryukov31-Mar-16 20:33
mvpSergey Alexandrovich Kryukov31-Mar-16 20:33 
GeneralRe: Brilliant :-) Pin
Sergey Alexandrovich Kryukov31-Mar-16 20:38
mvpSergey Alexandrovich Kryukov31-Mar-16 20:38 
QuestionMy vote of 5 Pin
BillWoodruff31-Mar-15 0:23
mvpBillWoodruff31-Mar-15 0:23 
AnswerRe: My vote of 5 Pin
Sergey Alexandrovich Kryukov31-Mar-15 1:20
mvpSergey Alexandrovich Kryukov31-Mar-15 1:20 
General5ed! Pin
Peter Leow30-Mar-15 23:31
mvpPeter Leow30-Mar-15 23:31 
GeneralRe: 5ed! Pin
Sergey Alexandrovich Kryukov31-Mar-15 0:07
mvpSergey Alexandrovich Kryukov31-Mar-15 0:07 
GeneralMy vote of 5 Pin
CHill6030-Mar-15 22:09
protectorCHill6030-Mar-15 22:09 
GeneralRe: My vote of 5 Pin
Sergey Alexandrovich Kryukov30-Mar-15 23:07
mvpSergey Alexandrovich Kryukov30-Mar-15 23:07 
QuestionMy vote of 5 Pin
Pete O'Hanlon30-Mar-15 19:54
protectorPete O'Hanlon30-Mar-15 19:54 
AnswerRe: My vote of 5 Pin
Sergey Alexandrovich Kryukov30-Mar-15 23:09
mvpSergey Alexandrovich Kryukov30-Mar-15 23:09 
QuestionMy vote of 5 Pin
Abhinav S30-Mar-15 18:42
mvpAbhinav S30-Mar-15 18:42 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.170915.1 | Last Updated 1 Apr 2017
Article Copyright 2015 by Sergey Alexandrovich Kryukov
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid