research topics csc 3990. parallel computing & compilers csc 3990

18
Research Topics CSC 3990

Upload: drusilla-murphy

Post on 04-Jan-2016

216 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Research Topics CSC 3990. Parallel Computing & Compilers CSC 3990

Research Topics

CSC 3990

Page 2: Research Topics CSC 3990. Parallel Computing & Compilers CSC 3990

Parallel Computing & Compilers

CSC 3990

Page 3: Research Topics CSC 3990. Parallel Computing & Compilers CSC 3990

What is a Compiler?

• Compiler– Converts source code into machine code– Automatic– Relieve programmer from having to know

about machine (processor)

Page 4: Research Topics CSC 3990. Parallel Computing & Compilers CSC 3990

What is a Parallel Compiler?

• Parallel Compiler– Converts source code into machine code to

run on a parallel computer– Centralized shared memory computer or

supercomputer– Distributed computer– Anything where a single program will run on

more than one processor

Page 5: Research Topics CSC 3990. Parallel Computing & Compilers CSC 3990

Compiler Structure

source code

intermediate code

compiler front-end

machine code

loop optimizationregister allocationcode generationcode scheduling

Page 6: Research Topics CSC 3990. Parallel Computing & Compilers CSC 3990

Phases of a CompilerSource program

Lexical Analyzer (Scanner)

Tokens

Syntax Analyzer (Parser)

Parse tree

Semantic Analyzer

Abstract Syntax Tree w/ Attributes

Intermediate-code Optimizer

Optimized Intermediate Code

Target-code Generator

Target machine code

Intermediate-code Generator

Non-optimized Intermediate Code

Page 7: Research Topics CSC 3990. Parallel Computing & Compilers CSC 3990

Nanocompiler – an initial visionSource code

Front end

Machine requirements analysis

Machine description generation

Back end

processor

Executable code

Processor generator

Dynamic profiler

• Machine description generated from IR

• Processor generated from machine description

• Executable runs on generated processor

• Dynamic profiler feeds back to analyzer

• Processor reconfigured at run-time

Page 8: Research Topics CSC 3990. Parallel Computing & Compilers CSC 3990

Example: Loop Unrolling

• Loops are popular places for identifying “parallelism”

• Can separate iterations of the same loop execute at the same time?

• If so, how can the code be modified… automatically… to make that happen?

for (i=0; i<100; i++)

A[i] = B[i] * C[i];

Page 9: Research Topics CSC 3990. Parallel Computing & Compilers CSC 3990

Natural Language Processing

CSC 3990

Page 10: Research Topics CSC 3990. Parallel Computing & Compilers CSC 3990

What is NLP?

• Natural Language Processing (NLP)– Computers use (analyze, understand,

generate) natural language– A somewhat applied field

• Computational Linguistics (CL)– Computational aspects of the human

language faculty– More theoretical

Page 11: Research Topics CSC 3990. Parallel Computing & Compilers CSC 3990

Why Study NLP?

• Human language interesting & challenging– NLP offers insights into language

• Language is the medium of the web

• Interdisciplinary: Ling, CS, psych, math

• Help in communication– With computers (ASR, TTS)– With other humans (MT)

• Ambitious yet practical

Page 12: Research Topics CSC 3990. Parallel Computing & Compilers CSC 3990

Goals of NLP

• Scientific Goal– Identify the computational machinery

needed for an agent to exhibit various forms of linguistic behavior

• Engineering Goal– Design, implement, and test systems

that process natural languages for practical applications

Page 13: Research Topics CSC 3990. Parallel Computing & Compilers CSC 3990

Applications

• speech processing: get flight information or book a hotel over the phone

• information extraction: discover names of people and events they participate in, from a document

• machine translation: translate a document from one human language into another

• question answering: find answers to natural language questions in a text collection or database

• summarization: generate a short biography of Noam Chomsky from one or more news articles

Page 14: Research Topics CSC 3990. Parallel Computing & Compilers CSC 3990

General Themes

• Ambiguity of Language

• Language as a formal system

• Rule-based vs. Statistical Methods

• The need for efficiency

Page 15: Research Topics CSC 3990. Parallel Computing & Compilers CSC 3990

Topic Ideas

1.Textual Analysis – readability

2.Plagiarism Detection – candidate selection

3.Intelligent Agents – machine interaction

Page 16: Research Topics CSC 3990. Parallel Computing & Compilers CSC 3990

Textual Analysis - Readability

• Text Input• Analyze text & estimate “readability”

– Grade level of writing– Consistency of writing– Appropriateness for certain educ. level

• Output results• Research question: How can computer

analyze text and measure readability?• Opportunities for hands-out research

Page 17: Research Topics CSC 3990. Parallel Computing & Compilers CSC 3990

Plagiarism Detection

• Text Input• Analyze text & locate “candidates”

– Find one or more passages that might be plagiarized– Algorithm tries to do what a teacher does– Search on Internet for candidate matches

• Output results• Research question: What algorithms work like

humans when finding plagiarism?• Experimental CS research

Page 18: Research Topics CSC 3990. Parallel Computing & Compilers CSC 3990

Intelligent Agents

• Example: ELIZA• AIML: Artificial Intelligence Modeling Lang.• Human types something• Computer parses, “understands”, and generates

response• Response is viewed by human• Research question: How can computers

“understand” and “generate” human writing?• Also good area for experimentation